From 8b531c04a2e51e588079788e7f49f76ade39664d Mon Sep 17 00:00:00 2001 From: Matthew Barbour Date: Sat, 15 Jun 2019 12:15:47 -0500 Subject: [PATCH] removed SQLERROR escape from cron uploader, not necessary now that it is individualizing transactions. Change cron uploader to use constants for dir and config names --- ext/cron_uploader/main.php | 58 ++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/ext/cron_uploader/main.php b/ext/cron_uploader/main.php index 1c12b05f..7b5f7061 100644 --- a/ext/cron_uploader/main.php +++ b/ext/cron_uploader/main.php @@ -15,6 +15,14 @@ class CronUploader extends Extension // TODO: Change logging to MySQL + display log at /cron_upload // TODO: Move stuff to theme.php + const QUEUE_DIR = "queue"; + const UPLOADED_DIR = "uploaded"; + const FAILED_DIR = "failed_to_upload"; + + const CONFIG_KEY = "cron_uploader_key"; + const CONFIG_COUNT = "cron_uploader_count"; + const CONFIG_DIR = "cron_uploader_dir"; + /** * Lists all log events this session * @var string @@ -78,9 +86,9 @@ class CronUploader extends Extension $this->set_dir(); // Determines path to cron_uploader_dir - $queue_dir = $this->root_dir . "/queue"; - $uploaded_dir = $this->root_dir . "/uploaded"; - $failed_dir = $this->root_dir . "/failed_to_upload"; + $queue_dir = $this->root_dir . "/" . self::QUEUE_DIR; + $uploaded_dir = $this->root_dir . "/" . self::UPLOADED_DIR; + $failed_dir = $this->root_dir . "/" . self::FAILED_DIR; $queue_dirinfo = $this->scan_dir($queue_dir); $uploaded_dirinfo = $this->scan_dir($uploaded_dir); @@ -157,14 +165,14 @@ class CronUploader extends Extension { global $config; // Set default values - $config->set_default_int('cron_uploader_count', 1); + $config->set_default_int(self::CONFIG_COUNT, 1); $this->set_dir(); - $this->upload_key = $config->get_string("cron_uploader_key", ""); + $this->upload_key = $config->get_string(self::CONFIG_KEY, ""); if (empty($this->upload_key)) { $this->upload_key = $this->generate_key(); - $config->set_string('cron_uploader_key', $this->upload_key); + $config->set_string(self::CONFIG_KEY, $this->upload_key); } } @@ -178,10 +186,10 @@ class CronUploader extends Extension $sb = new SetupBlock("Cron Uploader"); $sb->add_label("Settings
"); - $sb->add_int_option("cron_uploader_count", "How many to upload each time"); - $sb->add_text_option("cron_uploader_dir", "
Set Cron Uploader root directory
"); + $sb->add_int_option(self::CONFIG_COUNT, "How many to upload each time"); + $sb->add_text_option(self::CONFIG_DIR, "
Set Cron Uploader root directory
"); - $sb->add_label("
Cron Command:
+ $sb->add_label("
Cron Command:
Create a cron job with the command above.
Read the documentation if you're not sure what to do."); @@ -212,23 +220,23 @@ class CronUploader extends Extension global $config; // Determine directory (none = default) - $dir = $config->get_string("cron_uploader_dir", ""); + $dir = $config->get_string(self::CONFIG_DIR, ""); // Sets new default dir if not in config yet/anymore if ($dir == "") { $dir = data_path("cron_uploader"); - $config->set_string('cron_uploader_dir', $dir); + $config->set_string(self::CONFIG_DIR, $dir); } // Make the directory if it doesn't exist yet - if (!is_dir($dir . "/queue/")) { - mkdir($dir . "/queue/", 0775, true); + if (!is_dir($dir . "/" . self::QUEUE_DIR . "/")) { + mkdir($dir . "/" . self::QUEUE_DIR . "/", 0775, true); } - if (!is_dir($dir . "/uploaded/")) { - mkdir($dir . "/uploaded/", 0775, true); + if (!is_dir($dir . "/" . self::UPLOADED_DIR . "/")) { + mkdir($dir . "/" . self::UPLOADED_DIR . "/", 0775, true); } - if (!is_dir($dir . "/failed_to_upload/")) { - mkdir($dir . "/failed_to_upload/", 0775, true); + if (!is_dir($dir . "/" . self::FAILED_DIR . "/")) { + mkdir($dir . "/" . self::FAILED_DIR . "/", 0775, true); } $this->root_dir = $dir; @@ -270,7 +278,7 @@ class CronUploader extends Extension // Gets amount of imgs to upload if ($upload_count == 0) { - $upload_count = $config->get_int("cron_uploader_count", 1); + $upload_count = $config->get_int(self::CONFIG_COUNT, 1); } // Throw exception if there's nothing in the queue @@ -287,8 +295,6 @@ class CronUploader extends Extension $added = 0; $failed = 0; - $failedItems = []; - // Upload the file(s) for ($i = 0; $i < $upload_count && sizeof($this->image_queue) > 0; $i++) { $img = array_pop($this->image_queue); @@ -308,11 +314,7 @@ class CronUploader extends Extension $this->move_uploaded($img[0], $img[1], $output_subdir, true); $msgNumber = $this->add_upload_info("(" . gettype($e) . ") " . $e->getMessage()); $msgNumber = $this->add_upload_info($e->getTraceAsString()); - if (strpos($e->getMessage(), 'SQLSTATE') !== false) { - // Postgres invalidates the transaction if there is an SQL error, - // so all subsequence transactions will fail. - break; - } + try { $database->rollback(); } catch (Exception $e) { @@ -345,10 +347,10 @@ class CronUploader extends Extension // Determine which dir to move to if ($corrupt) { // Move to corrupt dir - $newDir .= "/failed_to_upload/" . $output_subdir . $relativeDir; + $newDir .= "/" . self::FAILED_DIR . "/" . $output_subdir . $relativeDir; $info = "ERROR: Image was not uploaded."; } else { - $newDir .= "/uploaded/" . $output_subdir . $relativeDir; + $newDir .= "/" . self::UPLOADED_DIR . "/" . $output_subdir . $relativeDir; $info = "Image successfully uploaded. "; } $newDir = str_replace("//", "/", $newDir . "/"); @@ -396,7 +398,7 @@ class CronUploader extends Extension private function generate_image_queue(): void { - $base = $this->root_dir . "/queue"; + $base = $this->root_dir . "/" . self::QUEUE_DIR; if (!is_dir($base)) { $this->add_upload_info("Image Queue Directory could not be found at \"$base\".");