logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 5e17e0414412a951ffc549db9231759292d55bc1
parent 9cda5b897a17af9191de2261daf530b3f294d60d
Author: Roger Braun <roger@rogerbraun.net>
Date:   Sat,  1 Jul 2017 16:43:10 +0200

Make user timelines faster for users with few statuses.

Diffstat:

Mlib/pleroma/web/activity_pub/activity_pub.ex2+-
Mlib/pleroma/web/ostatus/ostatus_controller.ex2+-
Apriv/repo/migrations/20170701142005_add_actor_index_to_activity.exs7+++++++
3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -112,7 +112,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp restrict_actor(query, %{"actor_id" => actor_id}) do from activity in query, - where: fragment("? @> ?", activity.data, ^%{actor: actor_id}) + where: fragment("?->>'actor' = ?", activity.data, ^actor_id) end defp restrict_actor(query, _), do: query diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex @@ -19,7 +19,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do def feed(conn, %{"nickname" => nickname}) do user = User.get_cached_by_nickname(nickname) query = from activity in Activity, - where: fragment("? @> ?", activity.data, ^%{actor: user.ap_id}), + where: fragment("?->>'actor' = ?", activity.data, ^user.ap_id), limit: 20, order_by: [desc: :inserted_at] diff --git a/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs b/priv/repo/migrations/20170701142005_add_actor_index_to_activity.exs @@ -0,0 +1,7 @@ +defmodule Pleroma.Repo.Migrations.AddActorIndexToActivity do + use Ecto.Migration + + def change do + create index(:activities, ["(data->>'actor')", "inserted_at desc"], name: :activities_actor_index) + end +end