diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-11-09 10:41:19 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-11-09 10:41:19 +0100 |
commit | f1d27a5fbbe547a78f835bd65b43a652004d708e (patch) | |
tree | 53fd646d727584cb54dc1dfd56b137b01567ff4e /lib | |
parent | 41b8a76e969e97aef68e7be1f1cdadcb31ea9b1d (diff) | |
download | pleroma-f1d27a5fbbe547a78f835bd65b43a652004d708e.tar.gz |
Add actor column to activities.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/activity.ex | 1 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index f43b32b56..a35ccc9b4 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Activity do schema "activities" do field :data, :map field :local, :boolean, default: true + field :actor, :string has_many :notifications, Notification timestamps() diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index e7d4c48bd..1624c6545 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do with nil <- Activity.get_by_ap_id(map["id"]), map <- lazy_put_activity_defaults(map), :ok <- insert_full_object(map) do - {:ok, activity} = Repo.insert(%Activity{data: map, local: local}) + {:ok, activity} = Repo.insert(%Activity{data: map, local: local, actor: map["actor"]}) Notification.create_notifications(activity) {:ok, activity} else @@ -137,7 +137,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp restrict_actor(query, %{"actor_id" => actor_id}) do from activity in query, - where: fragment("?->>'actor' = ?", activity.data, ^actor_id) + where: activity.actor == ^actor_id end defp restrict_actor(query, _), do: query @@ -168,14 +168,14 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp restrict_blocked(query, %{"blocking_user" => %User{info: info}}) do blocks = info["blocks"] || [] from activity in query, - where: fragment("not (?->>'actor' = ANY(?))", activity.data, ^blocks) + where: fragment("not (? = ANY(?))", activity.actor, ^blocks) end defp restrict_blocked(query, _), do: query def fetch_activities(recipients, opts \\ %{}) do base_query = from activity in Activity, limit: 20, - order_by: [desc: :id] + order_by: [fragment("? desc nulls last", activity.id)] base_query |> restrict_recipients(recipients) |