Merge pull request #2151 from annando/1512-misconfigured-friendica

Workaround for misconfigured Friendica servers with probe_url
This commit is contained in:
Tobias Diekershoff 2015-12-07 06:37:37 +01:00
commit d944b65253
2 changed files with 40 additions and 0 deletions

View file

@ -726,6 +726,45 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) {
} }
} }
// Workaround for misconfigured Friendica servers
if (($network == "") AND (strstr($url, "/profile/"))) {
$noscrape = str_replace("/profile/", "/noscrape/", $url);
$noscrapejson = fetch_url($noscrape);
if ($noscrapejson) {
$network = NETWORK_DFRN;
$poco = str_replace("/profile/", "/poco/", $url);
$noscrapedata = json_decode($noscrapejson, true);
if (isset($noscrapedata["addr"]))
$addr = $noscrapedata["addr"];
if (isset($noscrapedata["fn"]))
$vcard["fn"] = $noscrapedata["fn"];
if (isset($noscrapedata["key"]))
$pubkey = $noscrapedata["key"];
if (isset($noscrapedata["photo"]))
$vcard["photo"] = $noscrapedata["photo"];
if (isset($noscrapedata["dfrn-request"]))
$request = $noscrapedata["dfrn-request"];
if (isset($noscrapedata["dfrn-confirm"]))
$confirm = $noscrapedata["dfrn-confirm"];
if (isset($noscrapedata["dfrn-notify"]))
$notify = $noscrapedata["dfrn-notify"];
if (isset($noscrapedata["dfrn-poll"]))
$poll = $noscrapedata["dfrn-poll"];
}
}
if((! $vcard['photo']) && strlen($email)) if((! $vcard['photo']) && strlen($email))
$vcard['photo'] = avatar_img($email); $vcard['photo'] = avatar_img($email);
if($poll === $profile) if($poll === $profile)

View file

@ -24,6 +24,7 @@ function noscrape_init(&$a) {
$json_info = array( $json_info = array(
'fn' => $a->profile['name'], 'fn' => $a->profile['name'],
'addr' => $a->profile['addr'],
'key' => $a->profile['pubkey'], 'key' => $a->profile['pubkey'],
'homepage' => $a->get_baseurl()."/profile/{$which}", 'homepage' => $a->get_baseurl()."/profile/{$which}",
'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY), 'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY),