aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/pleroma/media.ex7
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex2
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex8
3 files changed, 11 insertions, 6 deletions
diff --git a/lib/pleroma/media.ex b/lib/pleroma/media.ex
index d007a7f89..431c06bb5 100644
--- a/lib/pleroma/media.ex
+++ b/lib/pleroma/media.ex
@@ -26,7 +26,9 @@ defmodule Pleroma.Media do
timestamps()
end
- def create_from_object_data(%{"url" => [url]} = data, %{user: user} = _opts) do
+ def create_from_object_data(%{"url" => [url]} = data, %{user: user} = opts) do
+ object_id = get_in(opts, [:object, "id"])
+
%Media{}
|> changeset(%{
href: url["href"],
@@ -35,7 +37,8 @@ defmodule Pleroma.Media do
name: data["name"],
blurhash: nil,
meta: %{},
- user_id: user.id
+ user_id: user.id,
+ object_id: object_id
})
|> Repo.insert()
end
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index f9483d82e..39fe69524 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -164,7 +164,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
defp maybe_update_media(%Object{data: %{"attachment" => []}}), do: :ok
- defp maybe_update_media(%Object{id: id, data: %{"attachment" => attachments}}) do
+ defp maybe_update_media(%Object{data: %{"id" => id, "attachment" => attachments}}) do
Enum.each(attachments, fn data ->
with %{"id" => media_id} <- data do
media_id
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 7e2663e09..d18d30fee 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -9,6 +9,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
alias Pleroma.Activity
alias Pleroma.EctoType.ActivityPub.ObjectValidators
alias Pleroma.Maps
+ alias Pleroma.Media
alias Pleroma.Object
alias Pleroma.Object.Containment
alias Pleroma.Repo
@@ -272,9 +273,10 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
def fix_attachments(object), do: object
def fix_media(%{"attachment" => [_ | _] = attachments} = object) do
- Enum.each(attachments, fn attachment ->
- IO.inspect({:fix_media, %{attachment: attachment, object: object}})
- end)
+ Enum.each(
+ attachments,
+ &Media.create_from_object_data(&1, %{user: User.get_by_ap_id(object.actor), object: object})
+ )
object
end