mirror of
https://github.com/friendica/friendica
synced 2024-11-10 02:22:55 +00:00
better twitter follow support
This commit is contained in:
parent
793967a1d3
commit
4c5e091b78
2 changed files with 31 additions and 8 deletions
|
@ -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;
|
||||
|
|
|
@ -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…
Reference in a new issue