return [];
}
+ if (Contact::isLocal($addr) && ($local_uid = User::getIdForURL($addr)) && ($local_owner = User::getOwnerDataById($local_uid))) {
+ $data = [
+ 'addr' => $local_owner['addr'],
+ 'baseurl' => $local_owner['baseurl'],
+ 'url' => $local_owner['url'],
+ 'subscribe' => $local_owner['baseurl'] . '/follow?url={uri}'];
+
+ if (!empty($local_owner['alias']) && ($local_owner['url'] != $local_owner['alias'])) {
+ $data['alias'] = $local_owner['alias'];
+ }
+
+ return $data;
+ }
+
$data = ['addr' => $addr];
$template = 'https://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr);
$webfinger = Probe::webfinger(str_replace('{uri}', urlencode($addr), $template), 'application/jrd+json');
$following = ActivityPub::fetchContent($apcontact['following']);
}
if (!empty($following['totalItems'])) {
- // Mastodon seriously allows for this condition?
+ // Mastodon seriously allows for this condition?
// Jul 14 2021 - See https://mastodon.social/@BLUW for a negative following count
if ($following['totalItems'] < 0) {
$following['totalItems'] = 0;
$followers = ActivityPub::fetchContent($apcontact['followers']);
}
if (!empty($followers['totalItems'])) {
- // Mastodon seriously allows for this condition?
+ // Mastodon seriously allows for this condition?
// Jul 14 2021 - See https://mastodon.online/@goes11 for a negative followers count
if ($followers['totalItems'] < 0) {
$followers['totalItems'] = 0;
*/
public static function isLocal($url)
{
+ if (!parse_url($url, PHP_URL_SCHEME)) {
+ $addr_parts = explode('@', $url);
+ if (count($addr_parts) == 2) {
+ return $addr_parts[1] == DI::baseUrl()->getHostname();
+ }
+ }
+
return Strings::compareLink(self::getBasepath($url, true), DI::baseUrl());
}
public static function uri($uri, $network = '', $uid = -1)
{
// Local profiles aren't probed via network
- if (empty($network) && strpos($uri, DI::baseUrl()->getHostname())) {
+ if (empty($network) && Contact::isLocal($uri)) {
$data = self::localProbe($uri);
if (!empty($data)) {
return $data;