Browse Source

Merge branch 'feature/exclude-replies-filter' into 'develop'

activitypub: support filtering activities by whether or not they are a reply (closes #109)

Closes #109

See merge request pleroma/pleroma!226
tags/v0.9.9
lambda 6 years ago
parent
commit
db0731b6ac
2 changed files with 18 additions and 0 deletions
  1. +10
    -0
      lib/pleroma/web/activity_pub/activity_pub.ex
  2. +8
    -0
      priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs

+ 10
- 0
lib/pleroma/web/activity_pub/activity_pub.ex View File

@@ -430,6 +430,15 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do

defp restrict_media(query, _), do: query

defp restrict_replies(query, %{"exclude_replies" => val}) when val == "true" or val == "1" do
from(
activity in query,
where: fragment("?->'object'->>'inReplyTo' is null", activity.data)
)
end

defp restrict_replies(query, _), do: query

# Only search through last 100_000 activities by default
defp restrict_recent(query, %{"whole_db" => true}), do: query

@@ -487,6 +496,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> restrict_blocked(opts)
|> restrict_media(opts)
|> restrict_visibility(opts)
|> restrict_replies(opts)
end

def fetch_activities(recipients, opts \\ %{}) do


+ 8
- 0
priv/repo/migrations/20180617221540_create_activities_in_reply_to_index.exs View File

@@ -0,0 +1,8 @@
defmodule Pleroma.Repo.Migrations.CreateActivitiesInReplyToIndex do
use Ecto.Migration
@disable_ddl_transaction true

def change do
create index(:activities, ["(data->'object'->>'inReplyTo')"], concurrently: true, name: :activities_in_reply_to)
end
end

Loading…
Cancel
Save