Store application details in the object under the generator key, not application key
authorMark Felder <feld@feld.me>
Mon, 1 Mar 2021 17:29:10 +0000 (11:29 -0600)
committerMark Felder <feld@feld.me>
Mon, 1 Mar 2021 17:29:10 +0000 (11:29 -0600)
lib/pleroma/constants.ex
lib/pleroma/web/common_api/activity_draft.ex
lib/pleroma/web/mastodon_api/controllers/status_controller.ex
lib/pleroma/web/mastodon_api/views/status_view.ex
test/pleroma/web/activity_pub/transmogrifier_test.exs

index 9ee836d5d8a4c58784aa21003e2c0c8be0b10b2b..b24338cc68dfb740cfff197b8f1843446e0bf87d 100644 (file)
@@ -19,7 +19,7 @@ defmodule Pleroma.Constants do
       "context_id",
       "deleted_activity_id",
       "pleroma_internal",
-      "application"
+      "generator"
     ]
   )
 
index d7dcdad9019ca423c98993c37957b704be18209c..73f1b09313ba935fb9d574039e232383a813e0ea 100644 (file)
@@ -190,7 +190,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
       Utils.make_note_data(draft)
       |> Map.put("emoji", emoji)
       |> Map.put("source", draft.status)
-      |> Map.put("application", draft.params[:application])
+      |> Map.put("generator", draft.params[:generator])
 
     %__MODULE__{draft | object: object}
   end
index b8a7b2a0afd5fa9aff6ecd6d3a731c2339d43b64..b051fca741f560f512a12f455bb6563d1b7924fa 100644 (file)
@@ -423,11 +423,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   defp put_application(params, %{assigns: %{token: %Token{user: %User{} = user} = token}} = _conn) do
     if user.disclose_client do
       %{client_name: client_name, website: website} = Repo.preload(token, :app).app
-      Map.put(params, :application, %{type: "Application", name: client_name, url: website})
+      Map.put(params, :generator, %{type: "Application", name: client_name, url: website})
     else
-      Map.put(params, :application, nil)
+      Map.put(params, :generator, nil)
     end
   end
 
-  defp put_application(params, _), do: Map.put(params, :application, nil)
+  defp put_application(params, _), do: Map.put(params, :generator, nil)
 end
index 792197a4a4b49ccd85f70df99ada329c7f859e88..bac897a57b9744a888c5b7f09a991216b9a7c82c 100644 (file)
@@ -180,7 +180,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       media_attachments: reblogged[:media_attachments] || [],
       mentions: mentions,
       tags: reblogged[:tags] || [],
-      application: build_application(activity_object.data["application"]),
+      application: build_application(activity_object.data["generator"]),
       language: nil,
       emojis: [],
       pleroma: %{
@@ -345,7 +345,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       poll: render(PollView, "show.json", object: object, for: opts[:for]),
       mentions: mentions,
       tags: build_tags(tags),
-      application: build_application(object.data["application"]),
+      application: build_application(object.data["generator"]),
       language: nil,
       emojis: build_emojis(object.data["emoji"]),
       pleroma: %{
index f6a8cbb6fd971c1ba23cf7ae158bdd22bbe05e76..211e535a52f8dc020d644c23c663a1ca8373d48d 100644 (file)
@@ -205,7 +205,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
       {:ok, activity} =
         CommonAPI.post(user, %{
           status: "#2hu :firefox:",
-          application: %{type: "Application", name: "TestClient", url: "https://pleroma.social"}
+          generator: %{type: "Application", name: "TestClient", url: "https://pleroma.social"}
         })
 
       # Ensure injected application data made it into the activity
@@ -215,7 +215,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
                type: "Application",
                name: "TestClient",
                url: "https://pleroma.social"
-             } == activity.object.data["application"]
+             } == activity.object.data["generator"]
 
       {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
 
@@ -226,7 +226,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
       assert is_nil(modified["object"]["announcements"])
       assert is_nil(modified["object"]["announcement_count"])
       assert is_nil(modified["object"]["context_id"])
-      assert is_nil(modified["object"]["application"])
+      assert is_nil(modified["object"]["generator"])
     end
 
     test "it strips internal fields of article" do