Remove unneccesary subscriptions on update.

This commit is contained in:
lain 2018-02-24 17:36:02 +01:00
commit e5fcc51a06
2 changed files with 41 additions and 0 deletions

View file

@ -204,6 +204,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
update: [set: [following: fragment("array_replace(?,?,?)", u.following, ^old_follower_address, ^user.follower_address)]]
Repo.update_all(q, [])
maybe_retire_websub(user.ap_id)
# Only do this for recent activties, don't go through the whole db.
since = (Repo.aggregate(Activity, :max, :id) || 0) - 100_000
q = from a in Activity,
@ -236,4 +238,13 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
e -> e
end
end
def maybe_retire_websub(ap_id) do
# some sanity checks
if is_binary(ap_id) && (String.length(ap_id) > 8) do
q = from ws in Pleroma.Web.Websub.WebsubClientSubscription,
where: fragment("? like ?", ws.topic, ^"#{ap_id}%")
Repo.delete_all(q)
end
end
end