allow RSS for feed contacts, but no comments
This commit is contained in:
parent
8e3c2634cb
commit
08d6fe5ae7
3 changed files with 26 additions and 7 deletions
|
@ -161,6 +161,8 @@ function scrape_feed($url) {
|
|||
$x = $item->getAttribute('rel');
|
||||
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml'))
|
||||
$ret['feed_atom'] = $item->getAttribute('href');
|
||||
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/rss+xml'))
|
||||
$ret['feed_rss'] = $item->getAttribute('href');
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
|
|
@ -423,19 +423,29 @@ function get_atom_elements($feed,$item) {
|
|||
else
|
||||
$res['private'] = 0;
|
||||
|
||||
$rawcreated = $item->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10,'published');
|
||||
if($rawcreated)
|
||||
$res['created'] = unxmlify($rawcreated[0]['data']);
|
||||
|
||||
$rawlocation = $item->get_item_tags(NAMESPACE_DFRN, 'location');
|
||||
if($rawlocation)
|
||||
$res['location'] = unxmlify($rawlocation[0]['data']);
|
||||
|
||||
|
||||
$rawcreated = $item->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10,'published');
|
||||
if($rawcreated)
|
||||
$res['created'] = unxmlify($rawcreated[0]['data']);
|
||||
|
||||
|
||||
$rawedited = $item->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10,'updated');
|
||||
if($rawedited)
|
||||
$res['edited'] = unxmlify($rawcreated[0]['data']);
|
||||
|
||||
|
||||
if(! $res['created'])
|
||||
$res['created'] = $item->get_date();
|
||||
|
||||
if(! $res['edited'])
|
||||
$res['edited'] = $item->get_date();
|
||||
|
||||
|
||||
$rawowner = $item->get_item_tags(NAMESPACE_DFRN, 'owner');
|
||||
if($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])
|
||||
$res['owner-name'] = unxmlify($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']);
|
||||
|
@ -1155,6 +1165,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
|
|||
);
|
||||
$datarray['last-child'] = 1;
|
||||
}
|
||||
if(($contact['network'] === 'feed') || (! strlen($contact['poll']))) {
|
||||
// one way feed - no remote comment ability
|
||||
$datarray['last-child'] = 0;
|
||||
}
|
||||
$datarray['parent-uri'] = $parent_uri;
|
||||
$datarray['uid'] = $importer['uid'];
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
|
@ -1207,6 +1221,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
|
|||
$datarray['last-child'] = 1;
|
||||
}
|
||||
|
||||
if(($contact['network'] === 'feed') || (! strlen($contact['poll']))) {
|
||||
// one way feed - no remote comment ability
|
||||
$datarray['last-child'] = 0;
|
||||
}
|
||||
|
||||
$datarray['parent-uri'] = $item_id;
|
||||
$datarray['uid'] = $importer['uid'];
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
|
@ -1216,7 +1235,6 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function new_follower($importer,$contact,$datarray,$item) {
|
||||
|
|
|
@ -74,8 +74,8 @@ function follow_post(&$a) {
|
|||
|
||||
$ret = scrape_feed($url);
|
||||
|
||||
if(count($ret) && $ret['feed_atom']) {
|
||||
$poll = $ret['feed_atom'];
|
||||
if(count($ret) && ($ret['feed_atom'] || $ret['feed_rss'])) {
|
||||
$poll = ((x($ret,'feed_atom')) ? $ret['feed_atom'] : $ret['feed_rss']);
|
||||
$vcard = array();
|
||||
require_once('simplepie/simplepie.inc');
|
||||
$feed = new SimplePie();
|
||||
|
@ -115,7 +115,6 @@ function follow_post(&$a) {
|
|||
|
||||
logger('follow: poll=' . $poll . ' notify=' . $notify . ' profile=' . $profile . ' vcard=' . print_r($vcard,true));
|
||||
|
||||
|
||||
// do we have enough information?
|
||||
|
||||
if(! ((x($vcard['fn'])) && ($poll) && ($profile))) {
|
||||
|
|
Loading…
Reference in a new issue