improve feed import performance
This commit is contained in:
parent
3deaafe320
commit
07b09300a9
3 changed files with 13 additions and 13 deletions
|
@ -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');
|
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
|
// process any deleted entries
|
||||||
|
|
||||||
$del_entries = $feed->get_feed_tags(NAMESPACE_TOMB, 'deleted-entry');
|
$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) {
|
foreach($del_entries as $dentry) {
|
||||||
$deleted = false;
|
$deleted = false;
|
||||||
if(isset($dentry['attribs']['']['ref'])) {
|
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'];
|
$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.
|
// 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;
|
$force_parent = false;
|
||||||
if($contact['network'] === 'stat') {
|
if($contact['network'] === NETWORK_OSTATUS) {
|
||||||
$force_parent = true;
|
$force_parent = true;
|
||||||
if(strlen($datarray['title']))
|
if(strlen($datarray['title']))
|
||||||
unset($datarray['title']);
|
unset($datarray['title']);
|
||||||
|
@ -1405,7 +1405,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
|
||||||
$datarray['last-child'] = 1;
|
$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
|
// one way feed - no remote comment ability
|
||||||
$datarray['last-child'] = 0;
|
$datarray['last-child'] = 0;
|
||||||
}
|
}
|
||||||
|
@ -1438,6 +1438,8 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $secure_fee
|
||||||
$datarray['author-avatar'] = $contact['thumb'];
|
$datarray['author-avatar'] = $contact['thumb'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// special handling for events
|
||||||
|
|
||||||
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
if((x($datarray,'object-type')) && ($datarray['object-type'] === ACTIVITY_OBJ_EVENT)) {
|
||||||
$ev = bbtoevent($datarray['body']);
|
$ev = bbtoevent($datarray['body']);
|
||||||
if(x($ev,'desc') && x($ev,'start')) {
|
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))
|
if(! is_array($contact))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if($contact['network'] === 'stat' || stristr($permalink,'twitter.com')) {
|
if($contact['network'] === NETWORK_OSTATUS || stristr($permalink,'twitter.com')) {
|
||||||
if(strlen($datarray['title']))
|
if(strlen($datarray['title']))
|
||||||
unset($datarray['title']);
|
unset($datarray['title']);
|
||||||
$datarray['last-child'] = 1;
|
$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
|
// one way feed - no remote comment ability
|
||||||
$datarray['last-child'] = 0;
|
$datarray['last-child'] = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
// 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';
|
$hubmode = 'subscribe';
|
||||||
if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
|
if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
|
||||||
|
|
|
@ -132,11 +132,11 @@ function pubsub_post(&$a) {
|
||||||
|
|
||||||
require_once('include/items.php');
|
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.
|
// 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();
|
hub_post_return();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue