diff options
Diffstat (limited to 'include/poller.php')
-rw-r--r-- | include/poller.php | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/include/poller.php b/include/poller.php index 546a2d6d1..c90e48d6b 100644 --- a/include/poller.php +++ b/include/poller.php @@ -35,12 +35,15 @@ function poller_run($argv, $argc){ // expire any expired mail - q("delete from mail where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP() "); + q("delete from mail where expires != '%s' and expires < UTC_TIMESTAMP() ", + dbesc(NULL_DATE) + ); // expire any expired items - $r = q("select id from item where expires != '0000-00-00 00:00:00' and expires < UTC_TIMESTAMP() + $r = q("select id from item where expires != '%s' and expires < UTC_TIMESTAMP() and not ( item_restrict & %d ) ", + dbesc(NULL_DATE), intval(ITEM_DELETED) ); if($r) { @@ -111,6 +114,9 @@ function poller_run($argv, $argc){ if(($d2 != $d1) && ($h1 == $h2)) { + require_once('include/dir_fns.php'); + check_upstream_directory(); + call_hooks('cron_daily',datetime_convert()); @@ -148,7 +154,6 @@ function poller_run($argv, $argc){ q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY"); // expire any expired accounts - require_once('include/account.php'); downgrade_accounts(); // If this is a directory server, request a sync with an upstream @@ -244,7 +249,7 @@ function poller_run($argv, $argc){ $sql_extra AND (( abook_flags & %d ) OR ( abook_flags = %d )) AND (( account_flags = %d ) OR ( account_flags = %d )) $abandon_sql ORDER BY RAND()", - intval(ABOOK_FLAG_HIDDEN|ABOOK_FLAG_PENDING|ABOOK_FLAG_UNCONNECTED), + intval(ABOOK_FLAG_HIDDEN|ABOOK_FLAG_PENDING|ABOOK_FLAG_UNCONNECTED|ABOOK_FLAG_FEED), intval(0), intval(ACCOUNT_OK), intval(ACCOUNT_UNVERIFIED) // FIXME @@ -260,6 +265,21 @@ function poller_run($argv, $argc){ $t = $contact['abook_updated']; $c = $contact['abook_connected']; + if($contact['abook_flags'] & ABOOK_FLAG_FEED) { + $min = service_class_fetch($contact['abook_channel'],'minimum_feedcheck_minutes'); + if(! $min) + $min = intval(get_config('system','minimum_feedcheck_minutes')); + if(! $min) + $min = 60; + $x = datetime_convert('UTC','UTC',"now - $min minutes"); + if($c < $x) { + proc_run('php','include/onepoll.php',$contact['abook_id']); + if($interval) + @time_sleep_until(microtime(true) + (float) $interval); + } + continue; + } + if($c == $t) { if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) @@ -268,7 +288,7 @@ function poller_run($argv, $argc){ else { // if we've never connected with them, start the mark for death countdown from now - if($c == '0000-00-00 00:00:00') { + if($c == NULL_DATE) { $r = q("update abook set abook_connected = '%s' where abook_id = %d limit 1", dbesc(datetime_convert()), intval($contact['abook_id']) @@ -321,8 +341,9 @@ function poller_run($argv, $argc){ } if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) { - $r = q("select distinct ud_addr, updates.* from updates where not ( ud_flags & %d ) and ud_addr != '' and ( ud_last = '0000-00-00 00:00:00' OR ud_last > UTC_TIMESTAMP() - INTERVAL 7 DAY ) group by ud_addr ", - intval(UPDATE_FLAGS_UPDATED) + $r = q("select distinct ud_addr, updates.* from updates where not ( ud_flags & %d ) and ud_addr != '' and ( ud_last = '%s' OR ud_last > UTC_TIMESTAMP() - INTERVAL 7 DAY ) group by ud_addr ", + intval(UPDATE_FLAGS_UPDATED), + dbesc(NULL_DATE) ); if($r) { foreach($r as $rr) { @@ -330,7 +351,7 @@ function poller_run($argv, $argc){ // If they didn't respond when we attempted before, back off to once a day // After 7 days we won't bother anymore - if($rr['ud_last'] != '0000-00-00 00:00:00') + if($rr['ud_last'] != NULL_DATE) if($rr['ud_last'] > datetime_convert('UTC','UTC', 'now - 1 day')) continue; proc_run('php','include/onedirsync.php',$rr['ud_id']); |