X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Ffollowing_relationship.ex;h=42db9463db6508d6400af3fca8221c58e118a61e;hb=9c7178286116d61a565fcba61ec64b20fec3a28a;hp=a0c7e6e393a3ca5574832716738cbc1d480d3095;hpb=762be6ce10d2145e8e31d42c5d1a0bab93dbe7b0;p=akkoma diff --git a/lib/pleroma/following_relationship.ex b/lib/pleroma/following_relationship.ex index a0c7e6e39..42db9463d 100644 --- a/lib/pleroma/following_relationship.ex +++ b/lib/pleroma/following_relationship.ex @@ -194,12 +194,13 @@ defmodule Pleroma.FollowingRelationship do |> join(:inner, [r], f in assoc(r, :follower)) |> where(following_id: ^origin.id) |> where([r, f], f.allow_following_move == true) + |> where([r, f], f.local == true) |> limit(50) |> preload([:follower]) |> Repo.all() |> Enum.map(fn following_relationship -> - Repo.delete(following_relationship) Pleroma.Web.CommonAPI.follow(following_relationship.follower, target) + Pleroma.Web.CommonAPI.unfollow(following_relationship.follower, origin) end) |> case do [] -> @@ -239,30 +240,6 @@ defmodule Pleroma.FollowingRelationship do end) end - @doc """ - For a query with joined activity, - keeps rows where activity's actor is followed by user -or- is NOT domain-blocked by user. - """ - def keep_following_or_not_domain_blocked(query, user) do - where( - query, - [_, activity], - fragment( - # "(actor's domain NOT in domain_blocks) OR (actor IS in followed AP IDs)" - """ - NOT (substring(? from '.*://([^/]*)') = ANY(?)) OR - ? = ANY(SELECT ap_id FROM users AS u INNER JOIN following_relationships AS fr - ON u.id = fr.following_id WHERE fr.follower_id = ? AND fr.state = ?) - """, - activity.actor, - ^user.domain_blocks, - activity.actor, - ^User.binary_id(user.id), - ^accept_state_code() - ) - ) - end - defp validate_not_self_relationship(%Changeset{} = changeset) do changeset |> validate_follower_id_following_id_inequality()