Retriever: use new logging convention

This commit is contained in:
Matthew Exon 2025-01-19 15:24:45 +01:00
parent a46c4ef9f3
commit 63bc3cc85a

View file

@ -31,7 +31,7 @@ use Friendica\DI;
* @brief Installation hook for retriever plugin
*/
function retriever_install() {
Logger::debug('Install retriever');
DI::logger()->debug('Install retriever');
Hook::register('addon_settings', 'addon/retriever/retriever.php', 'retriever_addon_settings');
Hook::register('addon_settings_post', 'addon/retriever/retriever.php', 'retriever_addon_settings_post');
@ -47,7 +47,7 @@ function retriever_install() {
!DBA::e("ALTER TABLE `retriever_resource` MODIFY `url` varbinary(700) NOT NULL") ||
!DBA::e("ALTER TABLE `retriever_resource` MODIFY `redirect-url` varbinary(700) NOT NULL")) {
!DBA::e("ALTER TABLE `retriever_resource` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci") ||
Logger::warning('Unable to update database tables: ' . DBA::errorMessage());
DI::logger()->warning('Unable to update database tables: ' . DBA::errorMessage());
return;
}
DI::config()->set('retriever', 'dbversion', '0.15');
@ -57,7 +57,7 @@ function retriever_install() {
$tables = explode(';', $schema);
foreach ($tables as $table) {
if (!DBA::e($table)) {
Logger::warning('Unable to create database table: ' . DBA::errorMessage());
DI::logger()->warning('Unable to create database table: ' . DBA::errorMessage());
return;
}
}
@ -70,7 +70,7 @@ function retriever_install() {
* @brief Uninstallation hook for retriever plugin
*/
function retriever_uninstall() {
Logger::debug('Uninstall retriever');
DI::logger()->debug('Uninstall retriever');
Hook::unregister('addon_settings', 'addon/retriever/retriever.php', 'retriever_addon_settings');
Hook::unregister('addon_settings_post', 'addon/retriever/retriever.php', 'retriever_addon_settings_post');
@ -168,7 +168,7 @@ function retriever_retrieve_items(int $max_items) {
$retrieve_items = $max_items - $retriever_item_count;
do {
Logger::debug('retriever_retrieve_items: asked for maximum ' . $max_items . ', already retrieved ' . intval($retriever_item_count) . ', retrieve ' . $retrieve_items);
DI::logger()->debug('retriever_retrieve_items: asked for maximum ' . $max_items . ', already retrieved ' . intval($retriever_item_count) . ', retrieve ' . $retrieve_items);
$retriever_resources = DBA::selectToArray('retriever_resource', [], ['`completed` IS NULL AND (`last-try` IS NULL OR ' . implode(' OR ', $schedule_clauses) . ')'], ['order' => ['last-try' => 0], 'limit' => $retrieve_items]);
if (!is_array($retriever_resources)) {
break;
@ -176,7 +176,7 @@ function retriever_retrieve_items(int $max_items) {
if (count($retriever_resources) == 0) {
break;
}
Logger::debug('retriever_retrieve_items: found ' . count($retriever_resources) . ' waiting resources in database');
DI::logger()->debug('retriever_retrieve_items: found ' . count($retriever_resources) . ' waiting resources in database');
foreach ($retriever_resources as $retriever_resource) {
retrieve_resource($retriever_resource);
$retriever_item_count++;
@ -184,7 +184,7 @@ function retriever_retrieve_items(int $max_items) {
$retrieve_items = $max_items - $retriever_item_count;
}
while ($retrieve_items > 0);
Logger::debug('retriever_retrieve_items: finished retrieving items');
DI::logger()->debug('retriever_retrieve_items: finished retrieving items');
}
/**
@ -198,21 +198,21 @@ function retriever_clean_up_completed_resources(int $max_items) {
if (!DBA::isResult($r)) {
return;
}
Logger::debug('retriever_clean_up_completed_resources: items waiting even though resource has completed: ' . DBA::numRows($r));
DI::logger()->debug('retriever_clean_up_completed_resources: items waiting even though resource has completed: ' . DBA::numRows($r));
while ($rr = DBA::fetch($r)) {
$retriever_item = DBA::selectFirst('retriever_item', [], ['id' => intval($rr['item'])]);
if (!DBA::isResult($retriever_item)) {
Logger::warning('retriever_clean_up_completed_resources: no retriever item with id ' . $rr['item']);
DI::logger()->warning('retriever_clean_up_completed_resources: no retriever item with id ' . $rr['item']);
continue;
}
$item = retriever_get_item($retriever_item);
if (!$item) {
Logger::warning('retriever_clean_up_completed_resources: no item ' . $retriever_item['item-uri']);
DI::logger()->warning('retriever_clean_up_completed_resources: no item ' . $retriever_item['item-uri']);
continue;
}
$retriever_rule = get_retriever_rule($retriever_item['contact-id'], $item['uid'], false);
if (!$retriever_rule) {
Logger::warning('retriever_clean_up_completed_resources: no retriever for uri ' . $retriever_item['item-uri'] . ' uid ' . $retriever_item['uid'] . ' ' . $retriever_item['contact-id']);
DI::logger()->warning('retriever_clean_up_completed_resources: no retriever for uri ' . $retriever_item['item-uri'] . ' uid ' . $retriever_item['uid'] . ' ' . $retriever_item['contact-id']);
continue;
}
$resource = DBA::selectFirst('retriever_resource', [], ['id' => intval($rr['resource'])]);
@ -234,7 +234,7 @@ function retriever_tidy() {
if (!DBA::isResult($r)) {
return;
}
Logger::info('retriever_tidy: found ' . DBA::numRows($r) . ' retriever_items with no retriever_resource');
DI::logger()->info('retriever_tidy: found ' . DBA::numRows($r) . ' retriever_items with no retriever_resource');
while ($rr = DBA::fetch($r)) {
DBA::delete('retriever_item', ['id' => intval($rr['id'])]);
}
@ -247,7 +247,7 @@ function retriever_tidy() {
*/
function retrieve_dataurl_resource(array $resource) {
if (!preg_match("/date:(.*);base64,(.*)/", $resource['url'], $matches)) {
Logger::warning('retrieve_dataurl_resource: resource ' . $resource['id'] . ' does not match pattern');
DI::logger()->warning('retrieve_dataurl_resource: resource ' . $resource['id'] . ' does not match pattern');
} else {
$resource['type'] = $matches[1];
$resource['data'] = base64url_decode($matches[2]);
@ -266,13 +266,13 @@ function retrieve_dataurl_resource(array $resource) {
function retrieve_resource(array $resource) {
$components = parse_url($resource['url']);
if (!$components) {
Logger::warning('retrieve_resource: URL ' . $resource['url'] . ' could not be parsed');
DI::logger()->warning('retrieve_resource: URL ' . $resource['url'] . ' could not be parsed');
}
if ($components['scheme'] == "data") {
return retrieve_dataurl_resource($resource);
}
if (($components['scheme'] != "http") && ($components['scheme'] != "https")) {
Logger::warning('retrieve_resource: URL scheme not supported for ' . $resource['url']);
DI::logger()->warning('retrieve_resource: URL scheme not supported for ' . $resource['url']);
DBA::update('retriever_resource', ['completed' => DateTimeFormat::utcNow()], ['id' => intval($resource['id'])], ['completed' => false]);
retriever_resource_completed($resource);
return;
@ -280,21 +280,21 @@ function retrieve_resource(array $resource) {
$retriever_rule = get_retriever_rule($resource['contact-id'], $resource['item-uid'], false);
if (!$retriever_rule) {
Logger::warning('retrieve_resource: no rule found for resource id ' . $resource['id'] . ' contact ' . $resource['contact-id'] . ' item ' . $resource['item-uid']);
DI::logger()->warning('retrieve_resource: no rule found for resource id ' . $resource['id'] . ' contact ' . $resource['contact-id'] . ' item ' . $resource['item-uid']);
DBA::update('retriever_resource', ['completed' => DateTimeFormat::utcNow()], ['id' => intval($resource['id'])], ['completed' => false]);
retriever_resource_completed($resource);
return;
}
$rule_data = $retriever_rule['data'];
if (!$rule_data) {
Logger::warning('retrieve_resource: no rule data found for resource id ' . $resource['id'] . ' contact ' . $resource['contact-id'] . ' item ' . $resource['item-uid']);
DI::logger()->warning('retrieve_resource: no rule data found for resource id ' . $resource['id'] . ' contact ' . $resource['contact-id'] . ' item ' . $resource['item-uid']);
DBA::update('retriever_resource', ['completed' => DateTimeFormat::utcNow()], ['id' => intval($resource['id'])], ['completed' => false]);
retriever_resource_completed($resource);
return;
}
try {
Logger::debug('retrieve_resource: ' . ($resource['num-tries'] + 1) . ' attempt at resource ' . $resource['id'] . ' ' . $resource['url']);
DI::logger()->debug('retrieve_resource: ' . ($resource['num-tries'] + 1) . ' attempt at resource ' . $resource['id'] . ' ' . $resource['url']);
$cookiejar = '';
if (array_key_exists('storecookies', $rule_data) && $rule_data['storecookies']) {
$cookiejar = tempnam(System::getTempPath(), 'cookiejar-retriever-');
@ -310,9 +310,9 @@ function retrieve_resource(array $resource) {
$resource['http-code'] = $fetch_result->getReturnCode();
$resource['type'] = $fetch_result->getContentType();
$resource['redirect-url'] = $fetch_result->getRedirectUrl();
Logger::debug('retrieve_resource: got code ' . $resource['http-code'] . ' retrieving resource ' . $resource['id'] . ' final url ' . $resource['redirect-url']);
DI::logger()->debug('retrieve_resource: got code ' . $resource['http-code'] . ' retrieving resource ' . $resource['id'] . ' final url ' . $resource['redirect-url']);
} catch (Exception $e) {
Logger::info('retrieve_resource: unable to retrieve ' . $resource['url'] . ' - ' . $e->getMessage());
DI::logger()->info('retrieve_resource: unable to retrieve ' . $resource['url'] . ' - ' . $e->getMessage());
}
DBA::update('retriever_resource', ['last-try' => DateTimeFormat::utcNow(), 'num-tries' => intval($resource['num-tries']) + 1, 'http-code' => intval($resource['http-code']), 'redirect-url' => $resource['redirect-url']], ['id' => intval($resource['id'])], ['last-try' => false]);
if ($resource['data']) {
@ -351,7 +351,7 @@ function get_retriever_rule(string $contact_id, string $uid, bool $create) {
function retriever_get_item(array $retriever_item) {
$item = Post::selectFirst([], ['uri' => $retriever_item['item-uri'], 'uid' => intval($retriever_item['item-uid']), 'contact-id' => intval($retriever_item['contact-id'])]);
if (!DBA::isResult($item)) {
Logger::warning('retriever_get_item: no item found for uri ' . $retriever_item['item-uri']);
DI::logger()->warning('retriever_get_item: no item found for uri ' . $retriever_item['item-uri']);
return;
}
return $item;
@ -364,16 +364,16 @@ function retriever_get_item(array $retriever_item) {
* @param array $resource The full details of the completed resource
*/
function retriever_item_completed(string $retriever_item_id, array $resource) {
Logger::debug('retriever_item_completed: id ' . $retriever_item_id . ' url ' . $resource['url']);
DI::logger()->debug('retriever_item_completed: id ' . $retriever_item_id . ' url ' . $resource['url']);
$retriever_item = DBA::selectFirst('retriever_item', [], ['id' => intval($retriever_item_id)]);
if (!DBA::isResult($retriever_item)) {
Logger::info('retriever_item_completed: no retriever item with id ' . $retriever_item_id);
DI::logger()->info('retriever_item_completed: no retriever item with id ' . $retriever_item_id);
return;
}
$item = retriever_get_item($retriever_item);
if (!$item) {
Logger::warning('retriever_item_completed: no item ' . $retriever_item['item-uri']);
DI::logger()->warning('retriever_item_completed: no item ' . $retriever_item['item-uri']);
return;
}
// Note: the retriever might be null. Doesn't matter.
@ -393,7 +393,7 @@ function retriever_item_completed(string $retriever_item_id, array $resource) {
* @param array $resource The full details of the completed resource
*/
function retriever_resource_completed(array $resource) {
Logger::debug('retriever_resource_completed: id ' . $resource['id'] . ' url ' . $resource['url']);
DI::logger()->debug('retriever_resource_completed: id ' . $resource['id'] . ' url ' . $resource['url']);
foreach (DBA::selectToArray('retriever_item', ['id'], ['resource' => intval($resource['id'])]) as $retriever_item) {
retriever_item_completed($retriever_item['id'], $resource);
}
@ -426,7 +426,7 @@ function apply_retrospective(array $retriever, int $num) {
*/
function retriever_on_item_insert(array $retriever, array &$item) {
if (!$retriever || !$retriever['id']) {
Logger::info('retriever_on_item_insert: No retriever supplied');
DI::logger()->info('retriever_on_item_insert: No retriever supplied');
return;
}
if (!array_key_exists('enable', $retriever['data']) || !$retriever['data']['enable'] == "on") {
@ -437,7 +437,7 @@ function retriever_on_item_insert(array $retriever, array &$item) {
}
else {
if (!array_key_exists('uri-id', $item)) {
Logger::warning('retriever_on_item_insert: item ' . $item['id'] . ' has no plink and no uri-id');
DI::logger()->warning('retriever_on_item_insert: item ' . $item['id'] . ' has no plink and no uri-id');
return;
}
$content = DBA::selectFirst('item-content', [], ['uri-id' => $item['uri-id']]);
@ -447,7 +447,7 @@ function retriever_on_item_insert(array $retriever, array &$item) {
if (array_key_exists('modurl', $retriever['data']) && $retriever['data']['modurl']) {
$orig_url = $url;
$url = preg_replace('/' . $retriever['data']['pattern'] . '/', $retriever['data']['replace'], $orig_url);
Logger::debug('retriever_on_item_insert: Changed ' . $orig_url . ' to ' . $url);
DI::logger()->debug('retriever_on_item_insert: Changed ' . $orig_url . ' to ' . $url);
}
$resource = add_retriever_resource($url, $item['uid'], $item['contact-id']);
@ -466,7 +466,7 @@ function retriever_on_item_insert(array $retriever, array &$item) {
* @return array The created resource
*/
function add_retriever_resource(string $url, string $uid, string $cid, bool $binary = false) {
Logger::debug('add_retriever_resource: url ' . $url . ' uid ' . $uid . ' contact-id ' . $cid);
DI::logger()->debug('add_retriever_resource: url ' . $url . ' uid ' . $uid . ' contact-id ' . $cid);
$scheme = parse_url($url, PHP_URL_SCHEME);
if ($scheme == 'data') {
@ -479,7 +479,7 @@ function add_retriever_resource(string $url, string $uid, string $cid, bool $bin
$url = 'md5://' . hash('md5', $url);
$resource = DBA::selectFirst('retriever_resource', [], ['url' => $url, 'item-uid' => intval($uid), 'contact-id' => intval($cid)]);
if ($resource) {
Logger::debug('add_retriever_resource: Resource ' . $url . ' already requested');
DI::logger()->debug('add_retriever_resource: Resource ' . $url . ' already requested');
return $resource;
}
@ -493,12 +493,12 @@ function add_retriever_resource(string $url, string $uid, string $cid, bool $bin
// 700 characters is the size of this field in the database
if (strlen($url) > 700) {
Logger::warning('add_retriever_resource: URL is longer than 700 characters');
DI::logger()->warning('add_retriever_resource: URL is longer than 700 characters');
}
$resource = DBA::selectFirst('retriever_resource', [], ['url' => $url, 'item-uid' => intval($uid), 'contact-id' => intval($cid)]);
if ($resource) {
Logger::debug('add_retriever_resource: Resource ' . $url . ' uid ' . $uid . ' cid ' . $cid . ' already requested');
DI::logger()->debug('add_retriever_resource: Resource ' . $url . ' uid ' . $uid . ' cid ' . $cid . ' already requested');
return $resource;
}
@ -514,23 +514,23 @@ function add_retriever_resource(string $url, string $uid, string $cid, bool $bin
* @return int ID of the retriever item that was created, or the existing one if present
*/
function add_retriever_item(array $item, array $resource) {
Logger::debug('add_retriever_item: ' . $resource['url'] . ' for ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->debug('add_retriever_item: ' . $resource['url'] . ' for ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
if (!array_key_exists('id', $resource) || !$resource['id']) {
Logger::warning('add_retriever_item: resource is empty');
DI::logger()->warning('add_retriever_item: resource is empty');
return;
}
if (DBA::selectFirst('retriever_item', [], ['item-uri' => $item['uri'], 'item-uid' => intval($item['uid']), 'resource' => intval($resource['id'])])) {
Logger::info("add_retriever_item: retriever item already present for " . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->info("add_retriever_item: retriever item already present for " . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
return;
}
DBA::insert('retriever_item', ['item-uri' => $item['uri'], 'item-uid' => intval($item['uid']), 'contact-id' => intval($item['contact-id']), 'resource' => intval($resource['id'])]);
$retriever_item = DBA::selectFirst('retriever_item', ['id'], ['item-uri' => $item['uri'], 'item-uid' => intval($item['uid']), 'resource' => intval($resource['id'])]);
if (!$retriever_item) {
Logger::info("add_retriever_item: couldn't create retriever item for " . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->info("add_retriever_item: couldn't create retriever item for " . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
return;
}
Logger::debug('add_retriever_item: created retriever_item ' . $retriever_item['id'] . ' for item ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->debug('add_retriever_item: created retriever_item ' . $retriever_item['id'] . ' for item ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
return $retriever_item['id'];
}
@ -557,12 +557,12 @@ function retriever_get_encoding(array $resource) {
*/
function retriever_apply_xslt_text(string $xslt_text, DOMDocument $doc) {
if (!$xslt_text) {
Logger::info('retriever_apply_xslt_text: empty XSLT text');
DI::logger()->info('retriever_apply_xslt_text: empty XSLT text');
return $doc;
}
$xslt_doc = new DOMDocument();
if (!$xslt_doc->loadXML($xslt_text)) {
Logger::info('retriever_apply_xslt_text: could not load XML');
DI::logger()->info('retriever_apply_xslt_text: could not load XML');
return $doc;
}
$xp = new XsltProcessor();
@ -579,14 +579,14 @@ function retriever_apply_xslt_text(string $xslt_text, DOMDocument $doc) {
* @param array $resource Newly completed resource, which should be text (HTML or XML)
*/
function retriever_apply_dom_filter(array $retriever, array &$item, array $resource) {
Logger::debug('retriever_apply_dom_filter: applying XSLT to uri ' . $item['uri'] . ' uid ' . $item['uid'] . ' contact ' . $item['contact-id']);
DI::logger()->debug('retriever_apply_dom_filter: applying XSLT to uri ' . $item['uri'] . ' uid ' . $item['uid'] . ' contact ' . $item['contact-id']);
if (!array_key_exists('include', $retriever['data']) && !array_key_exists('customxslt', $retriever['data'])) {
Logger::info('retriever_apply_dom_filter: no include and no customxslt');
DI::logger()->info('retriever_apply_dom_filter: no include and no customxslt');
return;
}
if (!$resource['data']) {
Logger::info('retriever_apply_dom_filter: no text to work with');
DI::logger()->info('retriever_apply_dom_filter: no text to work with');
return;
}
@ -594,26 +594,26 @@ function retriever_apply_dom_filter(array $retriever, array &$item, array $resou
$doc = retriever_extract($doc, $retriever);
if (!$doc) {
Logger::info('retriever_apply_dom_filter: failed to apply extract XSLT template');
DI::logger()->info('retriever_apply_dom_filter: failed to apply extract XSLT template');
return;
}
$doc = retriever_globalise_urls($doc, $resource);
if (!$doc) {
Logger::info('retriever_apply_dom_filter: failed to apply fix urls XSLT template');
DI::logger()->info('retriever_apply_dom_filter: failed to apply fix urls XSLT template');
return;
}
$body = HTML::toBBCode($doc->saveHTML());
if (!strlen($body)) {
Logger::info('retriever_apply_dom_filter retriever ' . $retriever['id'] . ' item ' . $item['id'] . ': output was empty');
DI::logger()->info('retriever_apply_dom_filter retriever ' . $retriever['id'] . ' item ' . $item['id'] . ': output was empty');
return;
}
$body .= "\n\n" . DI::l10n()->t('Retrieved') . ' ' . date("Y-m-d") . ': [url=';
$body .= $item['plink'];
$body .= ']' . $item['plink'] . '[/url]';
Logger::debug('retriever_apply_dom_filter: XSLT result \"' . $body . '\"');
DI::logger()->debug('retriever_apply_dom_filter: XSLT result \"' . $body . '\"');
retriever_set_body($item, $body);
}
@ -647,11 +647,11 @@ function retriever_extract(DOMDocument $doc, array $retriever) {
$extract_template = Renderer::getMarkupTemplate('extract.tpl', 'addon/retriever/');
$extract_xslt = Renderer::replaceMacros($extract_template, $params);
if ($retriever['data']['include']) {
Logger::debug('retriever_apply_dom_filter: applying include/exclude template \"' . $extract_xslt . '\"');
DI::logger()->debug('retriever_apply_dom_filter: applying include/exclude template \"' . $extract_xslt . '\"');
$doc = retriever_apply_xslt_text($extract_xslt, $doc);
}
if (array_key_exists('customxslt', $retriever['data']) && $retriever['data']['customxslt']) {
Logger::debug('retriever_extract: applying custom XSLT \"' . $retriever['data']['customxslt'] . '\"');
DI::logger()->debug('retriever_extract: applying custom XSLT \"' . $retriever['data']['customxslt'] . '\"');
$doc = retriever_apply_xslt_text($retriever['data']['customxslt'], $doc);
}
return $doc;
@ -696,11 +696,11 @@ function retriever_get_body(array $item) {
// item has been stored in database, body is stored in the item-content table
$content = DBA::selectFirst('item-content', ['body'], ['uri-id' => $item['uri-id']]);
if (!$content) {
Logger::warning('retriever_get_body: item-content uri-id ' . $item['uri-id'] . ' has no content');
DI::logger()->warning('retriever_get_body: item-content uri-id ' . $item['uri-id'] . ' has no content');
return $item['body'];
}
if (!$content['body']) {
Logger::warning('retriever_get_body: item-content uri-id ' . $item['uri-id'] . ' has no body');
DI::logger()->warning('retriever_get_body: item-content uri-id ' . $item['uri-id'] . ' has no body');
return $item['body'];
}
return $content['body'];
@ -733,7 +733,7 @@ function retrieve_images(array &$item) {
$body = retriever_get_body($item);
if (!strlen($body)) {
Logger::warning('retrieve_images: no body for item ' . $item['uri']);
DI::logger()->warning('retrieve_images: no body for item ' . $item['uri']);
return;
}
@ -742,7 +742,7 @@ function retrieve_images(array &$item) {
preg_match_all("/\[img\](.*?)\[\/img\]/ism", $body, $matches2);
preg_match_all("/\[img\=([^\]]*)\]([^[]*)\[\/img\]/ism", $body, $matches3);
$matches = array_merge($matches1[3], $matches2[1], $matches3[1]);
Logger::debug('retrieve_images: found ' . count($matches) . ' images for item ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->debug('retrieve_images: found ' . count($matches) . ' images for item ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
foreach ($matches as $url) {
if (!$url) {
continue;
@ -750,7 +750,7 @@ function retrieve_images(array &$item) {
if (strpos($url, (string)(DI::baseUrl())) === FALSE) {
$resource = add_retriever_resource($url, $item['uid'], $item['contact-id'], true);
if (!is_array($resource)) {
Logger::error('retrieve_images: could not add resource', ['url' => $url, 'uid' => $item['uid'], 'contact-id' => $item['contact-id']]);
DI::logger()->error('retrieve_images: could not add resource', ['url' => $url, 'uid' => $item['uid'], 'contact-id' => $item['contact-id']]);
continue;
}
if (!$resource['completed']) {
@ -770,11 +770,11 @@ function retrieve_images(array &$item) {
function retriever_check_item_completed(array &$item)
{
$waiting = DBA::selectFirst('retriever_item', [], ['item-uri' => $item['uri'], 'item-uid' => intval($item['uid']), 'contact-id' => intval($item['contact-id']), 'finished' => 0]);
Logger::debug('retriever_check_item_completed: item ' . $item['uri'] . ' ' . $item['uid'] . ' '. $item['contact-id'] . ' waiting for resources');
DI::logger()->debug('retriever_check_item_completed: item ' . $item['uri'] . ' ' . $item['uid'] . ' '. $item['contact-id'] . ' waiting for resources');
$old_visible = $item['visible'];
$item['visible'] = $waiting ? 0 : 1;
if (array_key_exists('id', $item) && ($item['id'] > 0) && ($old_visible != $item['visible'])) {
Logger::debug('retriever_check_item_completed: changing visible flag to ' . $item['visible']);
DI::logger()->debug('retriever_check_item_completed: changing visible flag to ' . $item['visible']);
Item::update(['visible' => $item['visible']], ['id' => intval($item['id'])]);
}
}
@ -787,12 +787,12 @@ function retriever_check_item_completed(array &$item)
* @param array $resource The resource that has just been completed
*/
function retriever_apply_completed_resource_to_item(array $retriever, array &$item, array $resource) {
Logger::debug('retriever_apply_completed_resource_to_item', ['retriever' => $retriever ? $retriever['id'] : 'none', 'resource' => $resource['url'], 'plink' => $item['plink']]);
DI::logger()->debug('retriever_apply_completed_resource_to_item', ['retriever' => $retriever ? $retriever['id'] : 'none', 'resource' => $resource['url'], 'plink' => $item['plink']]);
if (strpos($resource['type'], 'image') !== false) {
retriever_transform_images($item, $resource);
}
if (!$retriever) {
Logger::warning('retriever_apply_completed_resource_to_item: no retriever');
DI::logger()->warning('retriever_apply_completed_resource_to_item: no retriever');
return;
}
if ((strpos($resource['type'], 'html') !== false) ||
@ -814,7 +814,7 @@ function retriever_apply_completed_resource_to_item(array $retriever, array &$it
*/
function retriever_transform_images(array &$item, array $resource) {
if (!$resource['data']) {
Logger::info('retriever_transform_images: no data available for ' . $resource['id'] . ' ' . $resource['url']);
DI::logger()->info('retriever_transform_images: no data available for ' . $resource['id'] . ' ' . $resource['url']);
return;
}
@ -829,27 +829,27 @@ function retriever_transform_images(array &$item, array $resource) {
$album = 'Retriever';
$scale = 0;
$desc = ''; // TODO: store alt text with resource when it's requested so we can fill this in
Logger::debug('retriever_transform_images storing ' . strlen($data) . ' bytes type ' . $type . ': uid ' . $uid . ' cid ' . $cid . ' rid ' . $rid . ' filename ' . $filename . ' album ' . $album . ' scale ' . $scale . ' desc ' . $desc);
DI::logger()->debug('retriever_transform_images storing ' . strlen($data) . ' bytes type ' . $type . ': uid ' . $uid . ' cid ' . $cid . ' rid ' . $rid . ' filename ' . $filename . ' album ' . $album . ' scale ' . $scale . ' desc ' . $desc);
$image = new Image($data, $type);
if (!$image->isValid()) {
Logger::warning('retriever_transform_images: invalid image found at URL ' . $resource['url'] . ' for item ' . $item['id']);
DI::logger()->warning('retriever_transform_images: invalid image found at URL ' . $resource['url'] . ' for item ' . $item['id']);
return;
}
try {
$photo = Photo::store($image, $uid, $cid, $rid, $filename, $album, $scale, Photo::DEFAULT, '', '', '', '', $desc);
} catch (Exception $e) {
Logger::error('retriever_transform_images: unable to store photo ' . $resource['url'] . ' error: ' . $e->getMessage());
DI::logger()->error('retriever_transform_images: unable to store photo ' . $resource['url'] . ' error: ' . $e->getMessage());
return;
}
$new_url = DI::baseUrl() . '/photo/' . $rid . '-0' . $image->getExt();
if (!strlen($new_url)) {
Logger::warning('retriever_transform_images: no replacement URL for image ' . $resource['url']);
DI::logger()->warning('retriever_transform_images: no replacement URL for image ' . $resource['url']);
return;
}
$body = retriever_get_body($item);
Logger::debug('retriever_transform_images: replacing ' . $resource['url'] . ' with ' . $new_url . ' in item ' . $item['uri']);
DI::logger()->debug('retriever_transform_images: replacing ' . $resource['url'] . ' with ' . $new_url . ' in item ' . $item['uri']);
$body = str_replace($resource["url"], $new_url, $body);
retriever_set_body($item, $body);
}
@ -1003,7 +1003,7 @@ function retriever_contact_photo_menu(array &$args) {
* @param array $item New item, which has not yet been inserted into database (by ref)
*/
function retriever_post_remote_hook(array &$item) {
Logger::info('retriever_post_remote_hook: ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
DI::logger()->info('retriever_post_remote_hook: ' . $item['uri'] . ' ' . $item['uid'] . ' ' . $item['contact-id']);
$retriever_rule = get_retriever_rule($item['contact-id'], $item["uid"], false);
if ($retriever_rule) {