aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-04-04 20:40:31 -0700
committerFriendika <info@friendika.com>2011-04-04 20:40:31 -0700
commit4c5e091b784574337c7124b7763bbd19f4bc810f (patch)
tree1abf46a183faf5e7993426c592d60a26cb246842
parent793967a1d3c23fcf1f3b00a2832f51e6f473f4bd (diff)
downloadvolse-hubzilla-4c5e091b784574337c7124b7763bbd19f4bc810f.tar.gz
volse-hubzilla-4c5e091b784574337c7124b7763bbd19f4bc810f.tar.bz2
volse-hubzilla-4c5e091b784574337c7124b7763bbd19f4bc810f.zip
better twitter follow support
-rw-r--r--include/Scrape.php34
-rw-r--r--mod/follow.php5
2 files changed, 31 insertions, 8 deletions
diff --git a/include/Scrape.php b/include/Scrape.php
index 21820ddaf..002fdfb35 100644
--- a/include/Scrape.php
+++ b/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;
diff --git a/mod/follow.php b/mod/follow.php
index 06e81ceed..48ad66747 100644
--- a/mod/follow.php
+++ b/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()));