b8a9b6fa8a
When using update_interval and call_interval, the limit computed for the first user is used for all other users (which, when the first user is admin and has no feeds, breaks the update).
42 lines
1.2 KiB
PHP
42 lines
1.2 KiB
PHP
<?php
|
|
|
|
require __DIR__.'/app/common.php';
|
|
|
|
use Miniflux\Handler;
|
|
use Miniflux\Model;
|
|
|
|
if (php_sapi_name() === 'cli') {
|
|
$options = getopt('', array(
|
|
'limit::',
|
|
'call-interval::',
|
|
'update-interval::',
|
|
));
|
|
} else {
|
|
$token = isset($_GET['token']) ? $_GET['token'] : '';
|
|
$user = Model\User\get_user_by_token('cronjob_token', $token);
|
|
|
|
if (empty($user) || !ENABLE_CRONJOB_HTTP_ACCESS) {
|
|
die('Access Denied');
|
|
}
|
|
|
|
$options = $_GET;
|
|
}
|
|
|
|
$limit = get_cli_option('limit', $options);
|
|
$update_interval = get_cli_option('update-interval', $options);
|
|
$call_interval = get_cli_option('call-interval', $options);
|
|
|
|
foreach (Model\User\get_all_users() as $user) {
|
|
if ($update_interval !== null && $call_interval !== null && $limit === null && $update_interval >= $call_interval) {
|
|
$feeds_count = Model\Feed\count_feeds($user['id']);
|
|
$current_limit = ceil($feeds_count / ($update_interval / $call_interval));
|
|
} else {
|
|
$current_limit = $limit;
|
|
}
|
|
|
|
Handler\Feed\update_feeds($user['id'], $current_limit);
|
|
Model\Item\autoflush_read($user['id']);
|
|
Model\Item\autoflush_unread($user['id']);
|
|
Miniflux\Helper\write_debug_file();
|
|
}
|