X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fpoller.php;h=b8bd0b7081b5a7a6a8193ea57cd743d27b9ac054;hb=863ddf1676be3837da4219ed7883e61e4d493b1c;hp=cb246158485dd3ce2dd633db0dd8f147a8921ba3;hpb=3d51518a13fd44da3fa9a01b9ae1f1baa5d41848;p=friendica.git diff --git a/include/poller.php b/include/poller.php index cb24615848..b8bd0b7081 100644 --- a/include/poller.php +++ b/include/poller.php @@ -1,4 +1,5 @@ set_baseurl(get_config('system','url')); @@ -85,6 +89,9 @@ function poller_run($argv, $argc){ continue; foreach($res as $contact) { + + $xml = false; + if($manual_id) $contact['last-update'] = '0000-00-00 00:00:00'; @@ -158,7 +165,7 @@ function poller_run($argv, $argc){ : datetime_convert('UTC','UTC',$contact['last-update'], ATOM_TIME) ); - if($contact['network'] === 'dfrn') { + if($contact['network'] === NETWORK_DFRN) { $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']); @@ -175,12 +182,12 @@ function poller_run($argv, $argc){ . '&type=data&last_update=' . $last_update . '&perm=' . $perm ; - $xml = fetch_url($url); + $handshake_xml = fetch_url($url); - logger('poller: handshake with url ' . $url . ' returns xml: ' . $xml, LOGGER_DATA); + logger('poller: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA); - if(! $xml) { + if(! $handshake_xml) { logger("poller: $url appears to be dead - marking for death "); // dead connection - might be a transient event, or this might // mean the software was uninstalled or the domain expired. @@ -197,7 +204,7 @@ function poller_run($argv, $argc){ continue; } - if(! strstr($xml,'status) == 1) { logger("poller: $url replied status 1 - marking for death "); @@ -265,47 +272,117 @@ function poller_run($argv, $argc){ $xml = post_url($contact['poll'],$postvars); } - else { + elseif(($contact['network'] === NETWORK_OSTATUS) + || ($contact['network'] === NETWORK_DIASPORA) + || ($contact['network'] === NETWORK_FEED) ) { + + // Upgrading DB fields from an older Friendika version + // Will only do this once per notify-enabled OStatus contact - // $contact['network'] !== 'dfrn' + if(($contact['notify']) && (! $contact['writable'])) { + q("UPDATE `contact` SET `writable` = 1 WHERE `id` = %d LIMIT 1", + intval($contact['id']) + ); + } $xml = fetch_url($contact['poll']); } - - logger('poller: received xml : ' . $xml, LOGGER_DATA); - - if(! strstr($xml,'message_id,'<>'); +//FIXME + $datarray['parent-uri'] = $datarray['uri']; + // Have we seen it before? + $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1", + intval($importer_uid), + dbesc($datarray['uri']) + ); + if(count($r)) { + if($meta->deleted && ! $r[0]['deleted']) { + q("UPDATE `item` SET `deleted` = `, `changed` = '%s' WHERE `id` = %d LIMIT 1", + dbesc(datetime_convert()), + intval($r[0]['id']) + ); + } + continue; + } + $datarray['title'] = notags(trim($meta->subject)); + $datarray['created'] = datetime_convert('UTC','UTC',$meta->date); + + $r = email_get_msg($mbox,$msg_uid); + if(! $r) + continue; + $datarray['body'] = escape_tags($r['body']); + $datarray['uid'] = $importer_uid; + $datarray['contact-id'] = $contact['id']; + $datarray['private'] = 1; + $datarray['author-name'] = $contact['name']; + $datarray['author-link'] = 'mailbox'; + $datarray['author-avatar'] = $contact['photo']; + + item_store($datarray); + } + } + } + } + elseif($contact['network'] === NETWORK_FACEBOOK) { + // TODO: work in progress } + if($xml) { + logger('poller: received xml : ' . $xml, LOGGER_DATA); - consume_feed($xml,$importer,$contact,$hub,1, true); - - // do it twice. Ensures that children of parents which may be later in the stream aren't tossed + if(! strstr($xml,'