Workaround for misconfigured Friendica servers

This commit is contained in:
Michael Vogel 2015-12-06 18:52:19 +01:00
parent 2dc0b2b731
commit f880bdd33b
2 changed files with 41 additions and 2 deletions

View file

@ -632,9 +632,7 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) {
if ($connectornetworks) if ($connectornetworks)
$check_feed = false; $check_feed = false;
if($check_feed) { if($check_feed) {
$feedret = scrape_feed(($poll) ? $poll : $url); $feedret = scrape_feed(($poll) ? $poll : $url);
logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA); logger('probe_url: scrape_feed ' . (($poll)? $poll : $url) . ' returns: ' . print_r($feedret,true), LOGGER_DATA);
@ -726,6 +724,46 @@ 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"];
// print_r($noscrapedata);
}
}
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),