diff options
Diffstat (limited to 'modules/exif/helpers')
-rw-r--r-- | modules/exif/helpers/exif.php | 2 | ||||
-rw-r--r-- | modules/exif/helpers/exif_event.php | 6 | ||||
-rw-r--r-- | modules/exif/helpers/exif_installer.php | 2 | ||||
-rw-r--r-- | modules/exif/helpers/exif_task.php | 16 |
4 files changed, 15 insertions, 11 deletions
diff --git a/modules/exif/helpers/exif.php b/modules/exif/helpers/exif.php index 20ecd0cb..83540622 100644 --- a/modules/exif/helpers/exif.php +++ b/modules/exif/helpers/exif.php @@ -164,7 +164,7 @@ class exif_Core { if ($remaining) { site_status::warning( t('Your Exif index needs to be updated. <a href="%url" class="gDialogLink">Fix this now</a>', - array("url" => url::site("admin/maintenance/start/exif_task::update_index?csrf=__CSRF__"))), + array("url" => html::mark_clean(url::site("admin/maintenance/start/exif_task::update_index?csrf=__CSRF__")))), "exif_index_out_of_date"); } } diff --git a/modules/exif/helpers/exif_event.php b/modules/exif/helpers/exif_event.php index f5677653..826ec959 100644 --- a/modules/exif/helpers/exif_event.php +++ b/modules/exif/helpers/exif_event.php @@ -19,10 +19,12 @@ */ class exif_event_Core { static function item_created($item) { - exif::extract($item); + if (!$item->is_album()) { + exif::extract($item); + } } - static function item_before_delete($item) { + static function item_deleted($item) { Database::instance()->delete("exif_records", array("item_id" => $item->id)); } } diff --git a/modules/exif/helpers/exif_installer.php b/modules/exif/helpers/exif_installer.php index 0233f2bb..66226061 100644 --- a/modules/exif/helpers/exif_installer.php +++ b/modules/exif/helpers/exif_installer.php @@ -28,7 +28,7 @@ class exif_installer { `dirty` BOOLEAN default 1, PRIMARY KEY (`id`), KEY(`item_id`)) - ENGINE=InnoDB DEFAULT CHARSET=utf8;"); + DEFAULT CHARSET=utf8;"); module::set_version("exif", 1); } diff --git a/modules/exif/helpers/exif_task.php b/modules/exif/helpers/exif_task.php index f3e77975..7c4c97c4 100644 --- a/modules/exif/helpers/exif_task.php +++ b/modules/exif/helpers/exif_task.php @@ -42,7 +42,6 @@ class exif_task_Core { $completed = $task->get("completed", 0); $start = microtime(true); - $message = array(); foreach (ORM::factory("item") ->join("exif_records", "items.id", "exif_records.item_id", "left") ->where("type", "photo") @@ -51,17 +50,20 @@ class exif_task_Core { ->orwhere("exif_records.dirty", 1) ->close_paren() ->find_all() as $item) { - if (microtime(true) - $start > 1.5) { - break; + // The query above can take a long time, so start the timer after its done + // to give ourselves a little time to actually process rows. + if (!isset($start)) { + $start = microtime(true); } - $completed++; exif::extract($item); - $message[] = t("Updated Exif meta data for '%title'", - array("title" => p::purify($item->title))); + $completed++; + + if (microtime(true) - $start > 1.5) { + break; + } } - $task->log($message); list ($remaining, $total, $percent) = exif::stats(); $task->set("completed", $completed); if ($remaining == 0 || !($remaining + $completed)) { |