From c0cd5a55530079a6ba11f65065658b4fd1236a86 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Thu, 15 Dec 2022 18:58:11 -0700 Subject: [PATCH] Some hashtag json-ld fiddling --- activities/models/post.py | 10 ++++++---- core/ld.py | 18 +++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/activities/models/post.py b/activities/models/post.py index d31b52c..df80457 100644 --- a/activities/models/post.py +++ b/activities/models/post.py @@ -347,7 +347,9 @@ class Post(StatorModel): """ Returns the content formatted for remote consumption """ - return self.linkify_mentions(sanitize_post(self.content)) + return Hashtag.linkify_hashtags( + self.linkify_mentions(sanitize_post(self.content)) + ) def safe_content_plain(self): """ @@ -515,14 +517,14 @@ class Post(StatorModel): Returns the AP JSON for this object """ value = { - "to": "as:Public", + "to": "Public", "cc": [], "type": "Note", "id": self.object_uri, "published": format_ld_date(self.published), "attributedTo": self.author.actor_uri, "content": self.safe_content_remote(), - "as:sensitive": self.sensitive, + "sensitive": self.sensitive, "url": self.absolute_object_uri(), "tag": [], "attachment": [], @@ -543,7 +545,7 @@ class Post(StatorModel): { "href": f"https://{self.author.domain.uri_domain}/tags/{hashtag}/", "name": f"#{hashtag}", - "type": "as:Hashtag", + "type": "Hashtag", } ) # Emoji diff --git a/core/ld.py b/core/ld.py index 4b01e71..950bf06 100644 --- a/core/ld.py +++ b/core/ld.py @@ -407,14 +407,18 @@ def canonicalise(json_data: dict, include_security: bool = False) -> dict: """ if not isinstance(json_data, dict): raise ValueError("Pass decoded JSON data into LDDocument") - context: str | list[str] + context = [ + "https://www.w3.org/ns/activitystreams", + { + "sensitive": "as:sensitive", + "toot": "http://joinmastodon.org/ns#", + "votersCount": "toot:votersCount", + "Hashtag": "as:Hashtag", + "Public": "as:Public", + }, + ] if include_security: - context = [ - "https://www.w3.org/ns/activitystreams", - "https://w3id.org/security/v1", - ] - else: - context = "https://www.w3.org/ns/activitystreams" + context.append("https://w3id.org/security/v1") if "@context" not in json_data: json_data["@context"] = context