Browse Source

better twitter follow support

pull/1/head
Friendika 10 years ago
parent
commit
4c5e091b78
  1. 34
      include/Scrape.php
  2. 5
      mod/follow.php

34
include/Scrape.php

@ -227,16 +227,36 @@ function scrape_feed($url) {
if(! $dom)
return $ret;
$items = $dom->getElementsByTagName('img');
// get img elements (twitter)
if($items) {
foreach($items as $item) {
$x = $item->getAttribute('id');
if($x === 'profile-image') {
$ret['photo'] = $item->getAttribute('src');
}
}
}
$items = $dom->getElementsByTagName('link');
// get Atom link elements
// get Atom/RSS link elements, take the first one of either.
foreach($items as $item) {
$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');
if($items) {
foreach($items as $item) {
$x = $item->getAttribute('rel');
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/atom+xml')) {
if(! x($ret,'feed_atom'))
$ret['feed_atom'] = $item->getAttribute('href');
}
if(($x === 'alternate') && ($item->getAttribute('type') === 'application/rss+xml')) {
if(! x($ret,'feed_rss'))
$ret['feed_rss'] = $item->getAttribute('href');
}
}
}
return $ret;

5
mod/follow.php

@ -112,6 +112,8 @@ function follow_post(&$a) {
if(count($ret) && ($ret['feed_atom'] || $ret['feed_rss'])) {
$poll = ((x($ret,'feed_atom')) ? unamp($ret['feed_atom']) : unamp($ret['feed_rss']));
$vcard = array();
if(x($ret,'photo'))
$vcard['photo'] = $ret['photo'];
require_once('simplepie/simplepie.inc');
$feed = new SimplePie();
$xml = fetch_url($poll);
@ -120,7 +122,8 @@ function follow_post(&$a) {
$feed->init();
$vcard['photo'] = $feed->get_image_url();
if(! x($vcard,'photo'))
$vcard['photo'] = $feed->get_image_url();
$author = $feed->get_author();
if($author) {
$vcard['fn'] = unxmlify(trim($author->get_name()));

Loading…
Cancel
Save