diff options
Diffstat (limited to 'include/poller.php')
-rw-r--r-- | include/poller.php | 67 |
1 files changed, 46 insertions, 21 deletions
diff --git a/include/poller.php b/include/poller.php index 8234becbb..20c84990e 100644 --- a/include/poller.php +++ b/include/poller.php @@ -1,14 +1,19 @@ <?php - - - require_once('boot.php'); - - $a = new App; - - @include('.htconfig.php'); - require_once('dba.php'); - $db = new dba($db_host, $db_user, $db_pass, $db_data); - unset($db_host, $db_user, $db_pass, $db_data); +require_once("boot.php"); + +function poller_run($argv, $argc){ + global $a, $db; + + if(is_null($a)){ + $a = new App; + } + + if(is_null($db)){ + @include(".htconfig.php"); + require_once("dba.php"); + $db = new dba($db_host, $db_user, $db_pass, $db_data); + unset($db_host, $db_user, $db_pass, $db_data); + }; require_once('session.php'); require_once('datetime.php'); @@ -19,30 +24,47 @@ $a->set_baseurl(get_config('system','url')); logger('poller: start'); - + // run queue delivery process in the background $php_path = ((x($a->config,'php_path') && strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php'); - proc_close(proc_open("\"$php_path\" \"include/queue.php\" &", array(), $foo)); - + //proc_close(proc_open("\"$php_path\" \"include/queue.php\" &", array(), $foo)); + proc_run($php_path,"include/queue.php"); + + // clear old cache + q("DELETE FROM `cache` WHERE `updated`<'%s'", + dbesc(datetime_convert('UTC','UTC',"now - 30 days"))); + $manual_id = 0; $hub_update = false; - $force = false; + $force = false; if(($argc > 1) && ($argv[1] == 'force')) $force = true; + if(($argc > 1) && intval($argv[1])) { + $manual_id = intval($argv[1]); + $force = true; + } + + $sql_extra = (($manual_id) ? " AND `id` = $manual_id " : ""); + // 'stat' clause is a temporary measure until we have federation subscriptions working both directions $contacts = q("SELECT * FROM `contact` WHERE ( ( `network` = 'dfrn' AND ( `dfrn-id` != '' OR (`issued-id` != '' AND `duplex` = 1))) - OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' )) + OR ( `network` IN ( 'stat', 'feed' ) AND `poll` != '' )) + $sql_extra AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()"); - if(! count($contacts)) - killme(); + if(! count($contacts)){ + return; + } foreach($contacts as $contact) { + if($manual_id) + $contact['last-update'] = '0000-00-00 00:00:00'; + if($contact['priority'] || $contact['subhub']) { $hub_update = true; @@ -61,7 +83,7 @@ $contact['priority'] = (($interval !== false) ? intval($interval) : 3); $hub_update = false; - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) + if((datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) || $force) $hub_update = true; } @@ -257,7 +279,10 @@ // loop - next contact } - killme(); - - + return; +} +if (array_search(__file__,get_included_files())===0){ + poller_run($argv,$argc); + killme(); +} |