]> git.mxchange.org Git - friendica.git/commitdiff
improve feed import performance
authorFriendika <info@friendika.com>
Tue, 4 Oct 2011 10:06:34 +0000 (03:06 -0700)
committerFriendika <info@friendika.com>
Tue, 4 Oct 2011 10:06:34 +0000 (03:06 -0700)
include/items.php
include/poller.php
mod/pubsub.php

index d907aeddba21ed9bb59636e805a1b7aa1685bdd2..c8dd4ca42d4d9e052980871a33ffbe7d09ac2bca 100644 (file)
@@ -1081,7 +1081,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
  *
  */
 
-function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_feed = false) {
+function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) {
 
        require_once('library/simplepie/simplepie.inc');
 
@@ -1249,7 +1249,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
        // process any deleted entries
 
        $del_entries = $feed->get_feed_tags(NAMESPACE_TOMB, 'deleted-entry');
-       if(is_array($del_entries) && count($del_entries)) {
+       if(is_array($del_entries) && count($del_entries) && $pass != 2) {
                foreach($del_entries as $dentry) {
                        $deleted = false;
                        if(isset($dentry['attribs']['']['ref'])) {
@@ -1341,7 +1341,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
                                $parent_uri = $rawthread[0]['attribs']['']['ref'];
                        }
 
-                       if(($is_reply) && is_array($contact)) {
+                       if(($is_reply) && is_array($contact) && $pass != 1) {
 
                                // Have we seen it? If not, import it.
        
@@ -1393,7 +1393,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
                                }
 
                                $force_parent = false;
-                               if($contact['network'] === 'stat') {
+                               if($contact['network'] === NETWORK_OSTATUS) {
                                        $force_parent = true;
                                        if(strlen($datarray['title']))
                                                unset($datarray['title']);
@@ -1405,7 +1405,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
                                        $datarray['last-child'] = 1;
                                }
 
-                               if(($contact['network'] === 'feed') || (! strlen($contact['notify']))) {
+                               if(($contact['network'] === NETWORK_FEED) || (! strlen($contact['notify']))) {
                                        // one way feed - no remote comment ability
                                        $datarray['last-child'] = 0;
                                }
@@ -1438,6 +1438,8 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
                                                $datarray['author-avatar'] = $contact['thumb'];
                                }
 
+                               // special handling for events
+
                                if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
                                        $ev = bbtoevent($datarray['body']);
                                        if(x($ev,'desc') && x($ev,'start')) {
@@ -1511,18 +1513,16 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
                                }
 
 
-
-
                                if(! is_array($contact))
                                        return;
 
-                               if($contact['network'] === 'stat' || stristr($permalink,'twitter.com')) {
+                               if($contact['network'] === NETWORK_OSTATUS || stristr($permalink,'twitter.com')) {
                                        if(strlen($datarray['title']))
                                                unset($datarray['title']);
                                        $datarray['last-child'] = 1;
                                }
 
-                               if(($contact['network'] === 'feed') || (! strlen($contact['notify']))) {
+                               if(($contact['network'] === NETWORK_FEED) || (! strlen($contact['notify']))) {
                                        // one way feed - no remote comment ability
                                        $datarray['last-child'] = 0;
                                }
index 89a3408ec90efcf04deca6aa7f5e1dd00afecee2..427f8887ce92893394c2f49be07236856584772f 100644 (file)
@@ -486,11 +486,11 @@ function poller_run($argv, $argc){
                                }
 
 
-                               consume_feed($xml,$importer,$contact,$hub,1, true);
+                               consume_feed($xml,$importer,$contact,$hub,1,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,1);
+                               consume_feed($xml,$importer,$contact,$hub,1,2);
 
                                $hubmode = 'subscribe';
                                if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
index b2f0069271277d76fa334a9f8fdc1d3f6809f891..0c506db008b8511300b4770955093d2831ce440e 100644 (file)
@@ -132,11 +132,11 @@ function pubsub_post(&$a) {
 
        require_once('include/items.php');
 
-       consume_feed($xml,$importer,$contact,$feedhub,1);
+       consume_feed($xml,$importer,$contact,$feedhub,1,1);
 
        // do it a second time so that any children find their parents.
 
-       consume_feed($xml,$importer,$contact,$feedhub,1);
+       consume_feed($xml,$importer,$contact,$feedhub,1,2);
 
        hub_post_return();