forked from friendica/friendica-addons
trying to get phototrack to work
This commit is contained in:
parent
a30d850ff1
commit
29fce8b7af
|
@ -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']);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue