$URLSearchString = "^\[\]";
+ // Fix for Mastodon where the mentions are in a different format
+ $body = preg_replace("/\[url\=([$URLSearchString]*)\]([#!@])(.*?)\[\/url\]/ism",
+ '$2[url=$1]$3[/url]', $body);
+
// Adding these spaces is a quick hack due to my problems with regular expressions :)
preg_match("/[^!#@]\[url\]([$URLSearchString]*)\[\/url\]/ism", " ".$body, $matches);
}
}
+ // Mastodon
+ if ($server_url == "") {
+ $red = preg_replace("=(https?://)(.*)/users/(.*)=ism", "$1$2", $profile);
+ if ($red != $profile) {
+ $server_url = $red;
+ $network = NETWORK_OSTATUS;
+ }
+ }
+
return $server_url;
}
if (!$serverret["success"] OR ($serverret["body"] == "") OR (@sizeof($xmlobj) == 0) OR !is_object($xmlobj)) {
$server_url = str_replace("https://", "http://", $server_url);
$serverret = z_fetch_url($server_url."/.well-known/host-meta");
-
$xmlobj = @simplexml_load_string($serverret["body"],'SimpleXMLElement',0, "http://docs.oasis-open.org/ns/xri/xrd-1.0");
}
$versionparts = explode("-", $version);
$version = $versionparts[0];
}
+
+ if(stristr($line,'Server: Mastodon')) {
+ $platform = "Mastodon";
+ $network = NETWORK_OSTATUS;
+ // Mastodon doesn't reveal version numbers
+ $version = "";
+ }
}
}
}