From aaf78e2b52c3aa1e75206e7dbe41b45874978e0a Mon Sep 17 00:00:00 2001 From: floatingghost Date: Wed, 17 Aug 2022 09:35:11 +0000 Subject: [PATCH] only put linked mfm in source (#171) Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/171 --- config/description.exs | 43 ++++++++++++++++--- .../article_note_page_validator.ex | 5 +-- test/fixtures/misskey/mfm_x_format.json | 2 +- .../article_note_page_validator_test.exs | 13 +++--- 4 files changed, 44 insertions(+), 19 deletions(-) diff --git a/config/description.exs b/config/description.exs index 9f93265d1..b70982cd2 100644 --- a/config/description.exs +++ b/config/description.exs @@ -1169,7 +1169,6 @@ hideFilteredStatuses: false, hideMutedPosts: false, hidePostStats: false, - hideSitename: false, hideUserStats: false, loginMethod: "password", logo: "/static/logo.svg", @@ -1235,12 +1234,6 @@ type: :boolean, description: "Hide notices statistics (repeats, favorites, ...)" }, - %{ - key: :hideSitename, - label: "Hide Sitename", - type: :boolean, - description: "Hides instance name from PleromaFE banner" - }, %{ key: :hideUserStats, label: "Hide user stats", @@ -1350,6 +1343,42 @@ type: :string, description: "Which theme to use. Available themes are defined in styles.json", suggestions: ["pleroma-dark"] + }, + %{ + key: :showPanelNavShortcuts, + label: "Show timeline panel nav shortcuts", + type: :boolean, + description: "Whether to put timeline nav tabs on the top of the panel" + }, + %{ + key: :showNavShortcuts, + label: "Show navbar shortcuts", + type: :boolean, + description: "Whether to put extra navigation options on the navbar" + }, + %{ + key: :showWiderShortcuts, + label: "Increase navbar shortcut spacing", + type: :boolean, + description: "Whether to add extra space between navbar icons" + }, + %{ + key: :hideSiteFavicon, + label: "Hide site favicon", + type: :boolean, + description: "Whether to hide the instance favicon from the navbar" + }, + %{ + key: :hideSiteName, + label: "Hide site name", + type: :boolean, + description: "Whether to hide the site name from the navbar" + }, + %{ + key: :renderMisskeyMarkdown, + label: "Render misskey markdown", + type: :boolean, + description: "Whether to render Misskey-flavoured markdown" } ] }, diff --git a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex index eee7629ad..f2779432e 100644 --- a/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex @@ -119,7 +119,7 @@ defp fix_misskey_content( {linked, _, _} = Utils.format_input(content, "text/x.misskeymarkdown", mention_handler: mention_handler) - Map.put(object, "content", linked) + put_in(object, ["source", "content"], linked) end defp fix_misskey_content(%{"_misskey_content" => content} = object) when is_binary(content) do @@ -132,10 +132,9 @@ defp fix_misskey_content(%{"_misskey_content" => content} = object) when is_bina object |> Map.put("source", %{ - "content" => content, + "content" => linked, "mediaType" => "text/x.misskeymarkdown" }) - |> Map.put("content", linked) |> Map.delete("_misskey_content") end diff --git a/test/fixtures/misskey/mfm_x_format.json b/test/fixtures/misskey/mfm_x_format.json index 21aae9204..590e399fe 100644 --- a/test/fixtures/misskey/mfm_x_format.json +++ b/test/fixtures/misskey/mfm_x_format.json @@ -3,7 +3,7 @@ "type": "Note", "attributedTo": "https://misskey.local.live/users/92hzkskwgy", "summary": null, - "content": "this gets replaced", + "content": "this does not get replaced", "source": { "content": "@akkoma_user @remote_user @full_tag_remote_user@misskey.local.live @oops_not_a_mention linkifylink #dancedance $[jelly mfm goes here] \n\n## aaa", "mediaType": "text/x.misskeymarkdown" diff --git a/test/pleroma/web/activity_pub/object_validators/article_note_page_validator_test.exs b/test/pleroma/web/activity_pub/object_validators/article_note_page_validator_test.exs index 09cd1a964..f419770f2 100644 --- a/test/pleroma/web/activity_pub/object_validators/article_note_page_validator_test.exs +++ b/test/pleroma/web/activity_pub/object_validators/article_note_page_validator_test.exs @@ -96,10 +96,9 @@ test "a misskey MFM status with a content field should work and be linked", _ do %{ valid?: true, changes: %{ - content: content, + content: "this does not get replaced", source: %{ - "content" => - "@akkoma_user @remote_user @full_tag_remote_user@misskey.local.live @oops_not_a_mention linkifylink #dancedance $[jelly mfm goes here] \n\n## aaa", + "content" => content, "mediaType" => "text/x.misskeymarkdown" } } @@ -129,22 +128,20 @@ test "a misskey MFM status with a _misskey_content field should work and be link |> File.read!() |> Jason.decode!() - expected_content = - "@akkoma_user linkifylink #dancedance $[jelly mfm goes here]

## aaa" - changes = ArticleNotePageValidator.cast_and_validate(note) %{ valid?: true, changes: %{ source: %{ - "content" => "@akkoma_user linkifylink #dancedance $[jelly mfm goes here] \n\n## aaa", + "content" => content, "mediaType" => "text/x.misskeymarkdown" } } } = changes - assert changes.changes[:content] == expected_content + assert content =~ + "@akkoma_user" end end end