]> git.mxchange.org Git - friendica.git/blobdiff - include/poller.php
Merge commit 'mike/master'
[friendica.git] / include / poller.php
index a4bc607677c016e5ad36a7a8d0f538ed4243266b..66df080a9dbdce632b77e153a735072892cd0334 100644 (file)
@@ -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');
        // 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_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;
+               $force     = true;
        }
 
        $sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
                AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()");
 
        if(! count($contacts)){
-               killme(); return;
+               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;
@@ -71,7 +82,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;
                        }
 
                        $xml = post_url($contact['poll'],$postvars);
                }
                else {
+
                        // $contact['network'] !== 'dfrn'
 
                        $xml = fetch_url($contact['poll']);
 
                logger('poller: received xml : ' . $xml, LOGGER_DATA);
 
-               if(! strlen($xml))
+               if(! strstr($xml,'<?xml')) {
+                       logger('poller: post_handshake: response from ' . $url . ' did not contain XML.');
+                       $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
+                               dbesc(datetime_convert()),
+                               intval($contact['id'])
+                       );
                        continue;
+               }
 
                consume_feed($xml,$importer,$contact,$hub,1);
 
                }
 
 
-               $r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
-                       dbesc(datetime_convert()),
+               $updated = datetime_convert();
+
+               $r = q("UPDATE `contact` SET `last-update` = '%s', `success_update` = '%s' WHERE `id` = %d LIMIT 1",
+                       dbesc($updated),
+                       dbesc($updated),
                        intval($contact['id'])
                );
 
                // loop - next contact
        }  
                
-       killme();
-
-
+       return;
+}
 
+if (array_search(__file__,get_included_files())===0){
+  poller_run($argv,$argc);
+  killme();
+}