ensure tests pass
authorFloatingGhost <hannah@coffee-and-dreams.uk>
Tue, 14 Jun 2022 15:24:03 +0000 (16:24 +0100)
committerFloatingGhost <hannah@coffee-and-dreams.uk>
Tue, 14 Jun 2022 15:24:03 +0000 (16:24 +0100)
README.md
lib/pleroma/web/activity_pub/object_validators/article_note_page_validator.ex
test/pleroma/web/common_api_test.exs
test/pleroma/web/mastodon_api/views/status_view_test.exs

index fa7881a1a8771528e1331dce810313264da89194..bf56cb81712e23e8e6568ff1c2410d29405db278 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,3 +1,31 @@
+## akkoma
+
+*a smallish microblogging platform, aka the cooler pleroma*
+
+### Why though?
+
+pleroma as a project has stagnated of late. after a spat between
+developers led to a fork (which died due to chronic lack of direction),
+nearly nobody seems to _want_ to work on it. this in addition to the
+BDFL being AWOL whenever needed, means that the entire project is
+nought but a power vacuum waiting for someone to step in. and with the
+track record pleroma has, i do not trust that whoever steps in will be
+good for the project.
+
+thus, i am striking out on my own. i already had a few modifications 
+on my instance, so it wasn't a particularly large leap to assume direct
+control. 
+
+### But really, why should I migrate to your thing?
+
+aside from me actually being responsive? let's lookie here, we've got
+- custom emoji reactions
+- misskey markdown (MFM) rendering and posting support 
+- elasticsearch support (because pleroma search is GARBAGE)
+- latest develop pleroma-fe additions
+- local-only posting
+- probably more, this is like 3.5 years of IHBA additions finally compiled
+
 ## Upgrading to Akkoma
 
 ### From source
 ## Upgrading to Akkoma
 
 ### From source
index 118a10b096114a12dc9bedba05a2f46ffff718ed..815995895e067879bf97f381bdef557d0ac20651 100644 (file)
@@ -81,16 +81,24 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do
   defp fix_replies(data), do: data
 
   # https://github.com/misskey-dev/misskey/pull/8787
   defp fix_replies(data), do: data
 
   # https://github.com/misskey-dev/misskey/pull/8787
-  defp fix_misskey_content(%{"source" => %{"mediaType" => "text/x.misskeymarkdown"}} = object), do: object
+  defp fix_misskey_content(%{"source" => %{"mediaType" => "text/x.misskeymarkdown"}} = object),
+    do: object
 
   defp fix_misskey_content(%{"_misskey_content" => content} = object) do
     object
 
   defp fix_misskey_content(%{"_misskey_content" => content} = object) do
     object
-    |> Map.put("source", %{"content" => content, "mediaType" => "text/x.misskeymarkdown" })
+    |> Map.put("source", %{"content" => content, "mediaType" => "text/x.misskeymarkdown"})
     |> Map.delete("_misskey_content")
   end
 
   defp fix_misskey_content(data), do: data
 
     |> Map.delete("_misskey_content")
   end
 
   defp fix_misskey_content(data), do: data
 
+  defp fix_source(%{"source" => source} = object) when is_binary(source) do
+    object
+    |> Map.put("source", %{"content" => source})
+  end
+
+  defp fix_source(object), do: object
+
   defp fix(data) do
     data
     |> CommonFixes.fix_actor()
   defp fix(data) do
     data
     |> CommonFixes.fix_actor()
@@ -98,6 +106,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator do
     |> fix_url()
     |> fix_tag()
     |> fix_replies()
     |> fix_url()
     |> fix_tag()
     |> fix_replies()
+    |> fix_source()
     |> fix_misskey_content()
     |> Transmogrifier.fix_emoji()
     |> Transmogrifier.fix_content_map()
     |> fix_misskey_content()
     |> Transmogrifier.fix_emoji()
     |> Transmogrifier.fix_content_map()
index ad0b8754313cd399bb4b263ab9bafef9d8130448..20870bdd70ed87b813ea25ba3b4a522fc18d5718 100644 (file)
@@ -586,7 +586,11 @@ defmodule Pleroma.Web.CommonAPITest do
       object = Object.normalize(activity, fetch: false)
 
       assert object.data["content"] == "<p><b>2hu</b></p>alert(&#39;xss&#39;)"
       object = Object.normalize(activity, fetch: false)
 
       assert object.data["content"] == "<p><b>2hu</b></p>alert(&#39;xss&#39;)"
-      assert object.data["source"] == post
+
+      assert object.data["source"] == %{
+               "mediaType" => "text/html",
+               "content" => post
+             }
     end
 
     test "it filters out obviously bad tags when accepting a post as Markdown" do
     end
 
     test "it filters out obviously bad tags when accepting a post as Markdown" do
@@ -603,7 +607,11 @@ defmodule Pleroma.Web.CommonAPITest do
       object = Object.normalize(activity, fetch: false)
 
       assert object.data["content"] == "<p><b>2hu</b></p>"
       object = Object.normalize(activity, fetch: false)
 
       assert object.data["content"] == "<p><b>2hu</b></p>"
-      assert object.data["source"] == post
+
+      assert object.data["source"] == %{
+               "mediaType" => "text/markdown",
+               "content" => post
+             }
     end
 
     test "it does not allow replies to direct messages that are not direct messages themselves" do
     end
 
     test "it does not allow replies to direct messages that are not direct messages themselves" do
index 3ee53d95c0389cb9a42a7450ec9f0ce259e1bad7..caf2594c0330c6052d94ccc4eb9ddd6aa9206479 100644 (file)
@@ -302,6 +302,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
         emoji_reactions: [],
         parent_visible: false,
         pinned_at: nil
         emoji_reactions: [],
         parent_visible: false,
         pinned_at: nil
+      },
+      akkoma: %{
+        source: HTML.filter_tags(object_data["content"])
       }
     }
 
       }
     }