diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-06-01 15:55:05 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-06-01 15:55:05 -0500 |
commit | 9d89e1736a08d6c559355e52a996782994608cd4 (patch) | |
tree | cf34422a48ea0e6cad4299db7816b094512416fe /lib/pleroma/object | |
parent | 9166ae1bcf8a8ec113bb21aab7effca5a14601ca (diff) | |
parent | 3fe6ada6fc6f42057cb346c04e4ecc9f35c0e5cb (diff) | |
download | pleroma-cycles-config-url.tar.gz |
Merge remote-tracking branch 'pleroma/develop' into cycles-config-urlcycles-config-url
Diffstat (limited to 'lib/pleroma/object')
-rw-r--r-- | lib/pleroma/object/containment.ex | 8 | ||||
-rw-r--r-- | lib/pleroma/object/fetcher.ex | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/pleroma/object/containment.ex b/lib/pleroma/object/containment.ex index fb0398f92..040537acf 100644 --- a/lib/pleroma/object/containment.ex +++ b/lib/pleroma/object/containment.ex @@ -71,6 +71,14 @@ defmodule Pleroma.Object.Containment do compare_uris(id_uri, other_uri) end + # Mastodon pin activities don't have an id, so we check the object field, which will be pinned. + def contain_origin_from_id(id, %{"object" => object}) when is_binary(object) do + id_uri = URI.parse(id) + object_uri = URI.parse(object) + + compare_uris(id_uri, object_uri) + end + def contain_origin_from_id(_id, _data), do: :error def contain_child(%{"object" => %{"id" => id, "attributedTo" => _} = object}), diff --git a/lib/pleroma/object/fetcher.ex b/lib/pleroma/object/fetcher.ex index bcccf1c4c..4ca67f0fd 100644 --- a/lib/pleroma/object/fetcher.ex +++ b/lib/pleroma/object/fetcher.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Object.Fetcher do alias Pleroma.HTTP + alias Pleroma.Maps alias Pleroma.Object alias Pleroma.Object.Containment alias Pleroma.Repo @@ -101,6 +102,9 @@ defmodule Pleroma.Object.Fetcher do {:transmogrifier, {:error, {:reject, e}}} -> {:reject, e} + {:transmogrifier, {:reject, e}} -> + {:reject, e} + {:transmogrifier, _} = e -> {:error, e} @@ -124,12 +128,14 @@ defmodule Pleroma.Object.Fetcher do defp prepare_activity_params(data) do %{ "type" => "Create", - "to" => data["to"] || [], - "cc" => data["cc"] || [], # Should we seriously keep this attributedTo thing? "actor" => data["actor"] || data["attributedTo"], "object" => data } + |> Maps.put_if_present("to", data["to"]) + |> Maps.put_if_present("cc", data["cc"]) + |> Maps.put_if_present("bto", data["bto"]) + |> Maps.put_if_present("bcc", data["bcc"]) end def fetch_object_from_id!(id, options \\ []) do |