]> git.mxchange.org Git - friendica.git/blobdiff - include/poller.php
Merge branch 'fabrixxm-master'
[friendica.git] / include / poller.php
index ec1fef7a8b1c956ebd4a9ad77a36960777210b68..3d13a54808d161b8c96ab26fabb790941ff9a701 100644 (file)
 
                if($contact['priority'] || $contact['subhub']) {
 
-                       $update = false;
+                       $hub_update = true;
+                       $update     = false;
+
+                       $t = $contact['last-update'];
 
                        // 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. 
+                       // changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'. 
 
-                       if($contact['subhub'])
-                               $contact['priority'] = 3;
 
-                       $t = $contact['last-update'];
+                       if($contact['subhub']) {
+                               $interval = get_config('system','pushpoll_frequency');
+                               $contact['priority'] = (($interval !== false) ? intval($interval) : 3);
+                               $hub_update = false;
+
+                               if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
+                                               $hub_update = true;
+                       }
+
+
+                       /**
+                        * Based on $contact['priority'], should we poll this site now? Or later?
+                        */                     
 
                        switch ($contact['priority']) {
                                case 5:
                if(! strlen($xml))
                        continue;
 
-               consume_feed($xml,$importer,$contact,$hub);
+               consume_feed($xml,$importer,$contact,$hub,1);
 
                // do it twice. Ensures that children of parents which may be later in the stream aren't tossed
 
-               consume_feed($xml,$importer,$contact,$hub);
+               consume_feed($xml,$importer,$contact,$hub,1);
 
 
-               if((strlen($hub)) && (($contact['rel'] == REL_BUD) || (($contact['network'] === 'stat') && (! $contact['readonly'])))) {
+               if((strlen($hub)) && ($hub_update) 
+                       && (($contact['rel'] == REL_BUD) || (($contact['network'] === 'stat') && (! $contact['readonly'])))) {
                        logger('poller: subscribing to hub(s) : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
                        $hubs = explode(',', $hub);
                        if(count($hubs)) {