Issue 2999: Better Mastodon handling
This commit is contained in:
parent
352b168e2d
commit
17f15e793f
2 changed files with 20 additions and 1 deletions
|
@ -280,6 +280,10 @@ function add_page_info_to_body($body, $texturl = false, $no_photos = false) {
|
||||||
|
|
||||||
$URLSearchString = "^\[\]";
|
$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 :)
|
// Adding these spaces is a quick hack due to my problems with regular expressions :)
|
||||||
preg_match("/[^!#@]\[url\]([$URLSearchString]*)\[\/url\]/ism", " ".$body, $matches);
|
preg_match("/[^!#@]\[url\]([$URLSearchString]*)\[\/url\]/ism", " ".$body, $matches);
|
||||||
|
|
||||||
|
|
|
@ -391,6 +391,15 @@ function poco_detect_server($profile) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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;
|
return $server_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +732,6 @@ function poco_check_server($server_url, $network = "", $force = false) {
|
||||||
if (!$serverret["success"] OR ($serverret["body"] == "") OR (@sizeof($xmlobj) == 0) OR !is_object($xmlobj)) {
|
if (!$serverret["success"] OR ($serverret["body"] == "") OR (@sizeof($xmlobj) == 0) OR !is_object($xmlobj)) {
|
||||||
$server_url = str_replace("https://", "http://", $server_url);
|
$server_url = str_replace("https://", "http://", $server_url);
|
||||||
$serverret = z_fetch_url($server_url."/.well-known/host-meta");
|
$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");
|
$xmlobj = @simplexml_load_string($serverret["body"],'SimpleXMLElement',0, "http://docs.oasis-open.org/ns/xri/xrd-1.0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,6 +763,13 @@ function poco_check_server($server_url, $network = "", $force = false) {
|
||||||
$versionparts = explode("-", $version);
|
$versionparts = explode("-", $version);
|
||||||
$version = $versionparts[0];
|
$version = $versionparts[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(stristr($line,'Server: Mastodon')) {
|
||||||
|
$platform = "Mastodon";
|
||||||
|
$network = NETWORK_OSTATUS;
|
||||||
|
// Mastodon doesn't reveal version numbers
|
||||||
|
$version = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue