From f880bdd33b44667959a04dd9e44eacbf31d42f3a Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 6 Dec 2015 18:52:19 +0100 Subject: [PATCH] Workaround for misconfigured Friendica servers --- include/Scrape.php | 42 ++++++++++++++++++++++++++++++++++++++++-- mod/noscrape.php | 1 + 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/include/Scrape.php b/include/Scrape.php index af90a0750..b7df8e04f 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -632,9 +632,7 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) { if ($connectornetworks) $check_feed = false; - if($check_feed) { - $feedret = scrape_feed(($poll) ? $poll : $url); 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)) $vcard['photo'] = avatar_img($email); if($poll === $profile) diff --git a/mod/noscrape.php b/mod/noscrape.php index 34d5254fc..51bd7234c 100644 --- a/mod/noscrape.php +++ b/mod/noscrape.php @@ -24,6 +24,7 @@ function noscrape_init(&$a) { $json_info = array( 'fn' => $a->profile['name'], + 'addr' => $a->profile['addr'], 'key' => $a->profile['pubkey'], 'homepage' => $a->get_baseurl()."/profile/{$which}", 'comm' => (x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY),