* PROBE_DIASPORA has a bias towards returning Diaspora information
* while PROBE_NORMAL has a bias towards dfrn/zot - in the case where
* an address (such as a Friendica address) supports more than one type
- * of network.
+ * of network.
*
*/
$pubkey = $diaspora_key;
$diaspora = true;
}
- if($link['@attributes']['rel'] === 'http://ostatus.org/schema/1.0/subscribe') {
+ if(($link['@attributes']['rel'] === 'http://ostatus.org/schema/1.0/subscribe') AND ($mode == PROBE_NORMAL)) {
$diaspora = false;
}
}
if($network !== NETWORK_ZOT && $network !== NETWORK_DFRN && $network !== NETWORK_MAIL) {
if($diaspora)
$network = NETWORK_DIASPORA;
- elseif($has_lrdd)
+ elseif($has_lrdd AND ($notify))
$network = NETWORK_OSTATUS;
if(strpos($url,'@'))
$feed->set_raw_data(($xml) ? $xml : '<?xml version="1.0" encoding="utf-8" ?><xml></xml>');
$feed->init();
- if($feed->error())
+ if($feed->error()) {
logger('probe_url: scrape_feed: Error parsing XML: ' . $feed->error());
-
+ $network = NETWORK_PHANTOM;
+ }
if(! x($vcard,'photo'))
$vcard['photo'] = $feed->get_image_url();
$baseurl = rtrim($baseurl, "/");
+ if(strpos($url,'@') AND ($addr == "") AND ($network == NETWORK_DFRN))
+ $addr = str_replace('acct:', '', $url);
+
$vcard['fn'] = notags($vcard['fn']);
$vcard['nick'] = str_replace(' ','',notags($vcard['nick']));
}
}
- Cache::set("probe_url:".$mode.":".$url,serialize($result), CACHE_DAY);
+ // Only store into the cache if the value seems to be valid
+ if ($result['network'] != NETWORK_FEED)
+ Cache::set("probe_url:".$mode.":".$url,serialize($result), CACHE_DAY);
return $result;
}