X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fpoller.php;h=cef11a74431a111fa268fe93ea919ab4539a89f9;hb=5cb6d6e53780055e816df3092207a193203ea59d;hp=0edda8170ae04a1ac205ade2f3d89ddfdfead28f;hpb=32926bc803e81ef619cbf882471612172b1a8636;p=friendica.git diff --git a/include/poller.php b/include/poller.php index 0edda8170a..cef11a7443 100644 --- a/include/poller.php +++ b/include/poller.php @@ -1,4 +1,14 @@ UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days)) - : '' + $abandon_sql = (($abandon_days) + ? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days)) + : '' ); - $contacts = q("SELECT `contact`.`id` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` - WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != '' - AND NOT `network` IN ( '%s', '%s', '%s' ) - $sql_extra - AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0 - AND `contact`.`archive` = 0 - AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $abandon_sql ORDER BY RAND()", + $contacts = q("SELECT `contact`.`id` FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid` + WHERE `rel` IN (%d, %d) AND `poll` != '' AND `network` IN ('%s', '%s', '%s', '%s', '%s', '%s') + $sql_extra + AND NOT `self` AND NOT `contact`.`blocked` AND NOT `contact`.`readonly` AND NOT `contact`.`archive` + AND NOT `user`.`account_expired` AND NOT `user`.`account_removed` $abandon_sql ORDER BY RAND()", intval(CONTACT_IS_SHARING), intval(CONTACT_IS_FRIEND), - dbesc(NETWORK_DIASPORA), - dbesc(NETWORK_FACEBOOK), - dbesc(NETWORK_PUMPIO) + dbesc(NETWORK_DFRN), + dbesc(NETWORK_ZOT), + dbesc(NETWORK_OSTATUS), + dbesc(NETWORK_FEED), + dbesc(NETWORK_MAIL), + dbesc(NETWORK_MAIL2) ); if(! count($contacts)) { @@ -224,35 +234,24 @@ function poller_run(&$argv, &$argc){ if($manual_id) $contact['last-update'] = '0000-00-00 00:00:00'; - if($contact['network'] === NETWORK_DFRN) + if(in_array($contact['network'], array(NETWORK_DFRN, NETWORK_ZOT, NETWORK_OSTATUS))) $contact['priority'] = 2; - if(!get_config('system','ostatus_use_priority') and ($contact['network'] === NETWORK_OSTATUS)) - $contact['priority'] = 2; - - if($contact['priority'] || $contact['subhub']) { - - $hub_update = true; - $update = false; - - $t = $contact['last-update']; - + if($contact['subhub'] AND in_array($contact['network'], array(NETWORK_DFRN, NETWORK_ZOT, NETWORK_OSTATUS))) { // We should be getting everything via a hub. But just to be sure, let's check once a day. // (You can make this more or less frequent if desired by setting 'pushpoll_frequency' appropriately) // This also lets us update our subscription to the hub, and add or replace hubs in case it // changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'. + $poll_interval = get_config('system','pushpoll_frequency'); + $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3); + } - if($contact['subhub']) { - $poll_interval = get_config('system','pushpoll_frequency'); - $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3); - $hub_update = false; + if($contact['priority'] AND !$force) { - if((datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) || $force) - $hub_update = true; - } - else - $hub_update = false; + $update = false; + + $t = $contact['last-update']; /** * Based on $contact['priority'], should we poll this site now? Or later? @@ -281,26 +280,25 @@ function poller_run(&$argv, &$argc){ $update = true; break; } - if((! $update) && (! $force)) + if(!$update) continue; } - // Don't run onepoll.php if the contact isn't pollable - // This check also is inside the onepoll.php - but this will reduce the load - if (in_array($contact["rel"], array(CONTACT_IS_SHARING, CONTACT_IS_FRIEND)) AND ($contact["poll"] != "") - AND !in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_FACEBOOK, NETWORK_PUMPIO, NETWORK_TWITTER, NETWORK_APPNET)) - AND !$contact["self"] AND !$contact["blocked"] AND !$contact["readonly"] AND !$contact["archive"]) - proc_run('php','include/onepoll.php',$contact['id']); + logger("Polling ".$contact["network"]." ".$contact["id"]." ".$contact["nick"]." ".$contact["name"]); + + proc_run('php','include/onepoll.php',$contact['id']); if($interval) @time_sleep_until(microtime(true) + (float) $interval); } } + logger('poller: end'); + return; } if (array_search(__file__,get_included_files())===0){ - poller_run($argv,$argc); + poller_run($_SERVER["argv"],$_SERVER["argc"]); killme(); }