瀏覽代碼

Merge branch 'get-context-optimizations' into 'develop'

Preload thread mutes/bookmarks in get_context

See merge request pleroma/pleroma!1562
tags/v1.1.4
kaniini 4 年之前
父節點
當前提交
fe42844bda
共有 2 個文件被更改,包括 11 次插入5 次删除
  1. +9
    -0
      lib/pleroma/web/activity_pub/activity_pub.ex
  2. +2
    -5
      lib/pleroma/web/mastodon_api/mastodon_api_controller.ex

+ 9
- 0
lib/pleroma/web/activity_pub/activity_pub.ex 查看文件

@@ -518,6 +518,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do

from(activity in Activity)
|> maybe_preload_objects(opts)
|> maybe_preload_bookmarks(opts)
|> maybe_set_thread_muted_field(opts)
|> restrict_blocked(opts)
|> restrict_recipients(recipients, opts["user"])
|> where(
@@ -531,6 +533,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
)
)
|> exclude_poll_votes(opts)
|> exclude_id(opts)
|> order_by([activity], desc: activity.id)
end

@@ -870,6 +873,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end
end

defp exclude_id(query, %{"exclude_id" => id}) when is_binary(id) do
from(activity in query, where: activity.id != ^id)
end

defp exclude_id(query, _), do: query

defp maybe_preload_objects(query, %{"skip_preload" => true}), do: query

defp maybe_preload_objects(query, _) do


+ 2
- 5
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex 查看文件

@@ -497,12 +497,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
activities <-
ActivityPub.fetch_activities_for_context(activity.data["context"], %{
"blocking_user" => user,
"user" => user
"user" => user,
"exclude_id" => activity.id
}),
activities <-
activities |> Enum.filter(fn %{id: aid} -> to_string(aid) != to_string(id) end),
activities <-
activities |> Enum.filter(fn %{data: %{"type" => type}} -> type == "Create" end),
grouped_activities <- Enum.group_by(activities, fn %{id: id} -> id < activity.id end) do
result = %{
ancestors:


Loading…
取消
儲存