From df75a24dc7a501e9081d285f7f09060af7655583 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 16 Aug 2020 21:38:26 +0000 Subject: [PATCH] Use config value to trigger automated rating --- src/Protocol/Feed.php | 7 ++++--- src/Worker/Cron.php | 7 ++++++- static/defaults.config.php | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Protocol/Feed.php b/src/Protocol/Feed.php index 78830c5603..915d78ac39 100644 --- a/src/Protocol/Feed.php +++ b/src/Protocol/Feed.php @@ -602,7 +602,7 @@ class Feed } } - if (!$dryRun) { + if (!$dryRun && DI::config()->get('system', 'adjust_poll_frequency')) { self::adjustPollFrequency($contact, $creation_dates); } @@ -716,8 +716,9 @@ class Feed $priority = 3; // Poll once a day } - if ($contact['priority'] != $priority) { - Logger::notice('Adjusting priority', ['old' => $contact['priority'], 'new' => $priority, 'id' => $contact['id'], 'uid' => $contact['uid'], 'url' => $contact['url']]); + if ($contact['rating'] != $priority) { + Logger::notice('Adjusting priority', ['old' => $contact['rating'], 'new' => $priority, 'id' => $contact['id'], 'uid' => $contact['uid'], 'url' => $contact['url']]); + DBA::update('contact', ['rating' => $priority], ['id' => $contact['id']]); } } diff --git a/src/Worker/Cron.php b/src/Worker/Cron.php index ecfd2e7ddc..286a19cc97 100644 --- a/src/Worker/Cron.php +++ b/src/Worker/Cron.php @@ -186,7 +186,7 @@ class Cron Addon::reload(); $sql = "SELECT `contact`.`id`, `contact`.`nick`, `contact`.`name`, `contact`.`network`, `contact`.`archive`, - `contact`.`last-update`, `contact`.`priority`, `contact`.`rel`, `contact`.`subhub` + `contact`.`last-update`, `contact`.`priority`, `contact`.`rating`, `contact`.`rel`, `contact`.`subhub` FROM `user` STRAIGHT_JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`poll` != '' @@ -217,6 +217,11 @@ class Cron } while ($contact = DBA::fetch($contacts)) { + // Use the "rating" field when auto adjusting the poll intervall + if (DI::config()->get('system', 'adjust_poll_frequency') && ($contact['network'] == Protocol::FEED)) { + $contact['priority'] = max($contact['rating'], $contact['priority']); + } + // Friendica and OStatus are checked once a day if (in_array($contact['network'], [Protocol::DFRN, Protocol::OSTATUS])) { $contact['priority'] = 3; diff --git a/static/defaults.config.php b/static/defaults.config.php index 5e5b48c683..018e0dc635 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -82,6 +82,10 @@ return [ 'php_path' => 'php', ], 'system' => [ + // adjust_poll_frequency (Boolean) + // Automatically detect and set the best feed poll frequency. + 'adjust_poll_frequency' => false, + // allowed_link_protocols (Array) // Allowed protocols in links URLs, add at your own risk. http(s) is always allowed. 'allowed_link_protocols' => ['ftp://', 'ftps://', 'mailto:', 'cid:', 'gopher://'],