]> git.mxchange.org Git - friendica.git/blobdiff - include/poller.php
Merge remote-tracking branch 'friendika/master' into newui
[friendica.git] / include / poller.php
index 569eb59d1cb97fbf5d4df7bb169e7544e071aff6..e80b696bf8615f9ca89df7963f01a76f1cd4d9c1 100644 (file)
@@ -80,15 +80,20 @@ function poller_run($argv, $argc){
        $d = datetime_convert();
 
        if(! $restart)
-               call_hooks('cron', $d);
+               proc_run('php','include/cronhooks.php');
 
+       // Only poll from those with suitable relationships,
+       // and which have a polling address and ignore Diaspora since 
+       // we are unable to match those posts with a Diaspora GUID and prevent duplicates.
 
        $contacts = q("SELECT `id` FROM `contact` 
                WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
+               AND `network` != '%s'
                $sql_extra 
                AND `self` = 0 AND `blocked` = 0 AND `readonly` = 0 ORDER BY RAND()",
-               intval(REL_FAN),
-               intval(REL_BUD)
+               intval(CONTACT_IS_SHARING),
+               intval(CONTACT_IS_FRIEND),
+               dbesc(NETWORK_DIASPORA)
        );
 
        if(! count($contacts)) {
@@ -101,7 +106,7 @@ function poller_run($argv, $argc){
                        intval($c['id'])
                );
 
-               if(! count($res))
+               if((! $res) || (! count($res)))
                        continue;
 
                foreach($res as $contact) {
@@ -312,7 +317,7 @@ function poller_run($argv, $argc){
                                // Will only do this once per notify-enabled OStatus contact
                                // or if relationship changes
 
-                               $stat_writeable = ((($contact['notify']) && ($contact['rel'] == REL_VIP || $contact['rel'] == REL_BUD)) ? 1 : 0);
+                               $stat_writeable = ((($contact['notify']) && ($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['rel'] == CONTACT_IS_FRIEND)) ? 1 : 0);
 
                                if($stat_writeable != $contact['writable']) {
                                        q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
@@ -323,7 +328,7 @@ function poller_run($argv, $argc){
 
                                // Are we allowed to import from this person?
 
-                               if($contact['rel'] == REL_VIP || $contact['blocked'] || $contact['readonly'])
+                               if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
                                        continue;
 
                                $xml = fetch_url($contact['poll']);
@@ -421,6 +426,10 @@ function poller_run($argv, $argc){
                                                        $datarray['contact-id'] = $contact['id'];
                                                        if($datarray['parent-uri'] === $datarray['uri'])
                                                                $datarray['private'] = 1;
+                                                       if(! get_pconfig($importer_uid,'system','allow_public_email_replies')) {
+                                                               $datarray['private'] = 1;
+                                                               $datarray['allow_cid'] = '<' . $contact['id'] . '>';
+                                                       }
                                                        $datarray['author-name'] = $contact['name'];
                                                        $datarray['author-link'] = 'mailbox';
                                                        $datarray['author-avatar'] = $contact['photo'];
@@ -440,7 +449,8 @@ function poller_run($argv, $argc){
                                }
                        }
                        elseif($contact['network'] === NETWORK_FACEBOOK) {
-                               // TODO: work in progress                       
+                               // This is picked up by the Facebook plugin on a cron hook.
+                               // Ignored here.                        
                        }
 
                        if($xml) {
@@ -463,7 +473,7 @@ function poller_run($argv, $argc){
                                consume_feed($xml,$importer,$contact,$hub,1);
 
 
-                               if((strlen($hub)) && ($hub_update) && (($contact['rel'] == REL_BUD) || (($contact['network'] === NETWORK_OSTATUS) && (! $contact['readonly'])))) {
+                               if((strlen($hub)) && ($hub_update) && (($contact['rel'] == CONTACT_IS_FRIEND) || (($contact['network'] === NETWORK_OSTATUS) && (! $contact['readonly'])))) {
                                        logger('poller: subscribing to hub(s) : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
                                        $hubs = explode(',', $hub);
                                        if(count($hubs)) {