Merge pull request #13302 from annando/gotosocial
Fix JsonLD parsing problems with GoToSocial
This commit is contained in:
commit
28d55c8c5d
3 changed files with 57 additions and 6 deletions
|
@ -55,6 +55,12 @@ class JsonLD
|
||||||
case 'https://funkwhale.audio/ns':
|
case 'https://funkwhale.audio/ns':
|
||||||
$url = DI::basePath() . '/static/funkwhale.audio.jsonld';
|
$url = DI::basePath() . '/static/funkwhale.audio.jsonld';
|
||||||
break;
|
break;
|
||||||
|
case 'http://schema.org':
|
||||||
|
$url = DI::basePath() . '/static/schema.jsonld';
|
||||||
|
break;
|
||||||
|
case 'http://joinmastodon.org/ns':
|
||||||
|
$url = DI::basePath() . '/static/joinmastodon.jsonld';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
switch (parse_url($url, PHP_URL_PATH)) {
|
switch (parse_url($url, PHP_URL_PATH)) {
|
||||||
case '/schemas/litepub-0.1.jsonld';
|
case '/schemas/litepub-0.1.jsonld';
|
||||||
|
@ -177,12 +183,6 @@ class JsonLD
|
||||||
if (!in_array('https://w3id.org/security/v1', $json['@context'])) {
|
if (!in_array('https://w3id.org/security/v1', $json['@context'])) {
|
||||||
$json['@context'][] = 'https://w3id.org/security/v1';
|
$json['@context'][] = 'https://w3id.org/security/v1';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Issue 12419: Workaround for GoToSocial
|
|
||||||
$pos = array_search('http://joinmastodon.org/ns', $json['@context']);
|
|
||||||
if (is_int($pos)) {
|
|
||||||
$json['@context'][$pos] = ['toot' => 'http://joinmastodon.org/ns#'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bookwyrm transmits "id" fields with "null", which isn't allowed.
|
// Bookwyrm transmits "id" fields with "null", which isn't allowed.
|
||||||
|
|
44
static/joinmastodon.jsonld
Normal file
44
static/joinmastodon.jsonld
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"@context":[
|
||||||
|
"https://www.w3.org/ns/activitystreams",
|
||||||
|
"https://w3id.org/security/v1",
|
||||||
|
{
|
||||||
|
"manuallyApprovesFollowers":"as:manuallyApprovesFollowers",
|
||||||
|
"toot":"http://joinmastodon.org/ns#",
|
||||||
|
"featured":{"@id":"toot:featured","@type":"@id"},
|
||||||
|
"featuredTags":{"@id":"toot:featuredTags","@type":"@id"},
|
||||||
|
"alsoKnownAs":{"@id":"as:alsoKnownAs","@type":"@id"},
|
||||||
|
"movedTo":{"@id":"as:movedTo","@type":"@id"},
|
||||||
|
"schema":"http://schema.org#",
|
||||||
|
"PropertyValue":"schema:PropertyValue",
|
||||||
|
"value":"schema:value",
|
||||||
|
"discoverable":"toot:discoverable",
|
||||||
|
"Device":"toot:Device",
|
||||||
|
"Ed25519Signature":"toot:Ed25519Signature",
|
||||||
|
"Ed25519Key":"toot:Ed25519Key",
|
||||||
|
"Curve25519Key":"toot:Curve25519Key",
|
||||||
|
"EncryptedMessage":"toot:EncryptedMessage",
|
||||||
|
"publicKeyBase64":"toot:publicKeyBase64",
|
||||||
|
"deviceId":"toot:deviceId",
|
||||||
|
"claim":{"@type":"@id","@id":"toot:claim"},
|
||||||
|
"fingerprintKey":{"@type":"@id","@id":"toot:fingerprintKey"},
|
||||||
|
"identityKey":{"@type":"@id","@id":"toot:identityKey"},
|
||||||
|
"devices":{"@type":"@id","@id":"toot:devices"},
|
||||||
|
"messageFranking":"toot:messageFranking",
|
||||||
|
"messageType":"toot:messageType",
|
||||||
|
"cipherText":"toot:cipherText",
|
||||||
|
"suspended":"toot:suspended",
|
||||||
|
"focalPoint":{"@container":"@list","@id":"toot:focalPoint"},
|
||||||
|
"ostatus":"http://ostatus.org#",
|
||||||
|
"atomUri":"ostatus:atomUri",
|
||||||
|
"inReplyToAtomUri":"ostatus:inReplyToAtomUri",
|
||||||
|
"conversation":"ostatus:conversation",
|
||||||
|
"sensitive":"as:sensitive",
|
||||||
|
"votersCount":"toot:votersCount",
|
||||||
|
"Hashtag":"as:Hashtag",
|
||||||
|
"quoteUrl":"as:quoteUrl",
|
||||||
|
"Emoji":"toot:Emoji",
|
||||||
|
"vcard":"http://www.w3.org/2006/vcard/ns#"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
7
static/schema.jsonld
Normal file
7
static/schema.jsonld
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"@context": {
|
||||||
|
"schema": "http://schema.org#",
|
||||||
|
"value": "schema:value",
|
||||||
|
"PropertyValue": "schema:PropertyValue"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue