diff --git a/phototrack/phototrack.php b/phototrack/phototrack.php index 0ede2a1c..97fde076 100644 --- a/phototrack/phototrack.php +++ b/phototrack/phototrack.php @@ -102,8 +102,8 @@ function phototrack_photo_use($photo, $table, $field, $id) { } } -function phototrack_check_field_url($a, $table, $field, $id, $url) { - Logger::info('@@@ phototrack_check_field_url table ' . $table . ' field ' . $field . ' id ' . $id . ' url ' . $url); +function phototrack_check_field_url($a, $table, $id_field, $field, $id, $url) { + Logger::info('@@@ phototrack_check_field_url table ' . $table . ' id_field ' . $id_field . ' field ' . $field . ' id ' . $id . ' url ' . $url); $baseurl = DI::baseUrl()->get(true); if (strpos($url, $baseurl) === FALSE) { return; @@ -126,35 +126,32 @@ function phototrack_check_field_url($a, $table, $field, $id, $url) { } } -function phototrack_check_field_bbcode($a, $table, $field, $id, $value) { +function phototrack_check_field_bbcode($a, $table, $id_field, $field, $id, $value) { + Logger::info('@@@ phototrack_check_field_url table ' . $table . ' id_field ' . $id_field . ' field ' . $field . ' id ' . $id . ' value ' . $value); $baseurl = DI::baseUrl()->get(true); $matches = array(); preg_match_all("/\[img(\=([0-9]*)x([0-9]*))?\](.*?)\[\/img\]/ism", $value, $matches); foreach ($matches[4] as $url) { - phototrack_check_field_url($a, $table, $field, $id, $url); + phototrack_check_field_url($a, $table, $id_field, $field, $id, $url); } } function phototrack_post_local_end(&$a, &$item) { - phototrack_check_row($a, 'item', $item); - phototrack_check_row($a, 'item-content', $item); + phototrack_check_row($a, 'item', 'id', $item); + phototrack_check_row($a, 'item-content', 'id', $item); } function phototrack_post_remote_end(&$a, &$item) { - phototrack_check_row($a, 'item', $item); - phototrack_check_row($a, 'item-content', $item); + phototrack_check_row($a, 'item', 'id', $item); + phototrack_check_row($a, 'item-content', 'id', $item); } function phototrack_notifier_end($item) { } -function phototrack_check_row($a, $table, $row) { +function phototrack_check_row($a, $table, $id_field, $row) { switch ($table) { - case 'item': - $fields = array( - 'body' => 'bbcode'); - break; - case 'item-content': + case 'post-content': $fields = array( 'body' => 'bbcode'); break; @@ -182,8 +179,8 @@ function phototrack_check_row($a, $table, $row) { } foreach ($fields as $field => $type) { switch ($type) { - case 'bbcode': phototrack_check_field_bbcode($a, $table, $field, $row['id'], $row[$field]); break; - case 'url': phototrack_check_field_url($a, $table, $field, $row['id'], $row[$field]); break; + case 'bbcode': phototrack_check_field_bbcode($a, $table, $id_field, $field, $row['id'], $row[$field]); break; + case 'url': phototrack_check_field_url($a, $table, $id_field, $field, $row['id'], $row[$field]); break; } } phototrack_finished_row($table, $row['id']); @@ -197,15 +194,15 @@ function phototrack_batch_size() { return PHOTOTRACK_DEFAULT_BATCH_SIZE; } -function phototrack_search_table($a, $table) { +function phototrack_search_table($a, $table, $id_field) { $batch_size = phototrack_batch_size(); - $rows = DBA::p("SELECT `$table`.* FROM `$table` LEFT OUTER JOIN phototrack_row_check ON ( phototrack_row_check.`table` = '$table' AND phototrack_row_check.`row-id` = `$table`.id ) WHERE ( ( phototrack_row_check.checked IS NULL ) OR ( phototrack_row_check.checked < DATE_SUB(NOW(), INTERVAL 1 MONTH) ) ) ORDER BY phototrack_row_check.checked LIMIT $batch_size"); + $rows = DBA::p("SELECT `$table`.* FROM `$table` LEFT OUTER JOIN phototrack_row_check ON ( phototrack_row_check.`table` = '$table' AND phototrack_row_check.`row-id` = `$table`.$id_field ) WHERE ( ( phototrack_row_check.checked IS NULL ) OR ( phototrack_row_check.checked < DATE_SUB(NOW(), INTERVAL 1 MONTH) ) ) ORDER BY phototrack_row_check.checked LIMIT $batch_size"); if (DBA::isResult($rows)) { while ($row = DBA::fetch($rows)) { - phototrack_check_row($a, $table, $row); + phototrack_check_row($a, $table, $id_field, $row); } } - $r = DBA::p("SELECT COUNT(*) FROM `$table` LEFT OUTER JOIN phototrack_row_check ON ( phototrack_row_check.`table` = '$table' AND phototrack_row_check.`row-id` = `$table`.id ) WHERE ( ( phototrack_row_check.checked IS NULL ) OR ( phototrack_row_check.checked < DATE_SUB(NOW(), INTERVAL 1 MONTH) ) )"); + $r = DBA::p("SELECT COUNT(*) FROM `$table` LEFT OUTER JOIN phototrack_row_check ON ( phototrack_row_check.`table` = '$table' AND phototrack_row_check.`row-id` = `$table`.$id_field ) WHERE ( ( phototrack_row_check.checked IS NULL ) OR ( phototrack_row_check.checked < DATE_SUB(NOW(), INTERVAL 1 MONTH) ) )"); Logger::info("@@@ phototrack_search_table " . print_r(DBA::fetch($r))); $remaining = DBA::fetch($r)['count']; Logger::info('phototrack: searched ' . DBA::numRows($rows) . ' rows in table ' . $table . ', ' . $remaining . ' still remaining to search'); @@ -230,22 +227,23 @@ function phototrack_cron_time() { return false; } } + Logger::debug('@@@ phototrack: search interval reached last ' . $last . ' search interval ' . $search_interval); return true; } function phototrack_cron($a, $b) { + return; // @@@ something is broken if (!phototrack_cron_time()) { return; } DI::config()->set('phototrack', 'last_search', time()); $remaining = 0; - $remaining += phototrack_search_table($a, 'item'); - $remaining += phototrack_search_table($a, 'item-content'); - $remaining += phototrack_search_table($a, 'contact'); - $remaining += phototrack_search_table($a, 'fcontact'); - $remaining += phototrack_search_table($a, 'fsuggest'); - $remaining += phototrack_search_table($a, 'gcontact'); + $remaining += phototrack_search_table($a, 'post-content', 'uri-id'); + $remaining += phototrack_search_table($a, 'contact', 'id'); + $remaining += phototrack_search_table($a, 'fcontact', 'id'); + $remaining += phototrack_search_table($a, 'fsuggest', 'id'); + $remaining += phototrack_search_table($a, 'gcontact', 'id'); DI::config()->set('phototrack', 'remaining_items', $remaining); if ($remaining === 0) { @@ -266,7 +264,7 @@ function phototrack_tidy() { Logger::info('phototrack_tidy: deleted ' . DBA::numRows($rows) . ' photos'); } DBA::e('DROP TABLE `phototrack-temp`'); - $rows = DBA::p('SELECT id FROM phototrack_photo_use WHERE checked < DATE_SUB(NOW(), INTERVAL 14 DAY)'); + $rows = DBA::p('SELECT id FROM phototrack_photo_use WHERE checked < DATE_SUB(NOW(), INTERVAL 2 MONTH)'); foreach ($rows as $row) { DBA::e( 'DELETE FROM phototrack_photo_use WHERE id = ' . $row['id']); }