X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2FScrape.php;h=9bf89a49eda8952e51d86dcf0450ffefb5f13e12;hb=997cad8685ca4e63b3286ea6bd643656adab7466;hp=698ec9cf04c4e182ecefd98752b7d645a48215ed;hpb=4e7a5dc56ebb8d99ed06b0b303c4ee24460ae6a8;p=friendica.git diff --git a/include/Scrape.php b/include/Scrape.php index 698ec9cf04..9bf89a49ed 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -294,12 +294,16 @@ function probe_url($url) { $twitter = ((strpos($url,'twitter.com') !== false) ? true : false); + $at_addr = ((strpos($url,'@') !== false) ? true : false); + if(! $twitter) { $links = lrdd($url); if(count($links)) { logger('probe_url: found lrdd links: ' . print_r($links,true), LOGGER_DATA); foreach($links as $link) { + if($link['@attributes']['rel'] === NAMESPACE_ZOT) + $zot = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === NAMESPACE_DFRN) $dfrn = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === 'salmon') @@ -379,6 +383,25 @@ function probe_url($url) { } } + if(strlen($zot)) { + $s = fetch_url($zot); + if($s) { + $j = json_decode($s); + if($j) { + $network = NETWORK_ZOT; + $vcard = array( + 'fn' => $j->fullname, + 'nick' => $j->nickname, + 'photo' => $j->photo + ); + $profile = $j->url; + $notify = $j->post; + $pubkey = $j->pubkey; + $poll = 'N/A'; + } + } + } + if(strlen($dfrn)) { $ret = scrape_dfrn($dfrn); if(is_array($ret) && x($ret,'dfrn-request')) { @@ -390,7 +413,7 @@ function probe_url($url) { } } - if($network !== NETWORK_DFRN && $network !== NETWORK_MAIL) { + if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) { $network = NETWORK_OSTATUS; $priority = 0; @@ -431,7 +454,7 @@ function probe_url($url) { $vcard['fn'] = $vcard['nick']; - if(((! isset($vcard)) && (! $poll)) || ($twitter)) { + if(((! isset($vcard)) && (! $poll) && (! $at_addr)) || ($twitter)) { $feedret = scrape_feed($url); logger('probe_url: scrape_feed returns: ' . print_r($feedret,true), LOGGER_DATA); @@ -467,6 +490,14 @@ function probe_url($url) { if(strpos($vcard['fn'],'@') !== false) $vcard['fn'] = substr($vcard['fn'],0,strpos($vcard['fn'],'@')); $email = unxmlify($author->get_email()); + if(! $vcard['photo']) { + $rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author'); + if($rawtags) { + $elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]; + if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo')) + $vcard['photo'] = $elems['link'][0]['attribs']['']['href']; + } + } } else { $item = $feed->get_item(0); @@ -485,6 +516,14 @@ function probe_url($url) { if($rawmedia && $rawmedia[0]['attribs']['']['url']) $vcard['photo'] = unxmlify($rawmedia[0]['attribs']['']['url']); } + if(! $vcard['photo']) { + $rawtags = $item->get_item_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author'); + if($rawtags) { + $elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]; + if((x($elems,'link')) && ($elems['link'][0]['attribs']['']['rel'] === 'photo')) + $vcard['photo'] = $elems['link'][0]['attribs']['']['href']; + } + } } } if((! $vcard['photo']) && strlen($email)) @@ -533,6 +572,7 @@ function probe_url($url) { $result['priority'] = $priority; $result['network'] = $network; $result['alias'] = $alias; + $result['pubkey'] = $pubkey; logger('probe_url: ' . print_r($result,true), LOGGER_DEBUG);