Refactor to store user ap_id, add tests
This commit is contained in:
parent
be465c762b
commit
da53c079db
8 changed files with 88 additions and 17 deletions
|
|
@ -1387,6 +1387,6 @@ defmodule Pleroma.User do
|
|||
end
|
||||
|
||||
def showing_reblogs?(%User{} = user, %User{} = target) do
|
||||
target.id not in user.info.muted_reblogs
|
||||
target.ap_id not in user.info.muted_reblogs
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -261,14 +261,14 @@ defmodule Pleroma.User.Info do
|
|||
}
|
||||
end
|
||||
|
||||
def add_reblog_mute(info, id) do
|
||||
params = %{muted_reblogs: info.muted_reblogs ++ [id]}
|
||||
def add_reblog_mute(info, ap_id) do
|
||||
params = %{muted_reblogs: info.muted_reblogs ++ [ap_id]}
|
||||
|
||||
cast(info, params, [:muted_reblogs])
|
||||
end
|
||||
|
||||
def remove_reblog_mute(info, id) do
|
||||
params = %{muted_reblogs: List.delete(info.muted_reblogs, id)}
|
||||
def remove_reblog_mute(info, ap_id) do
|
||||
params = %{muted_reblogs: List.delete(info.muted_reblogs, ap_id)}
|
||||
|
||||
cast(info, params, [:muted_reblogs])
|
||||
end
|
||||
|
|
|
|||
|
|
@ -300,17 +300,21 @@ defmodule Pleroma.Web.CommonAPI do
|
|||
end
|
||||
end
|
||||
|
||||
def hide_reblogs(user, id) do
|
||||
if id not in user.info.muted_reblogs do
|
||||
info_changeset = User.Info.add_reblog_mute(user.info, id)
|
||||
def hide_reblogs(user, muted) do
|
||||
ap_id = muted.ap_id
|
||||
|
||||
if ap_id not in user.info.muted_reblogs do
|
||||
info_changeset = User.Info.add_reblog_mute(user.info, ap_id)
|
||||
changeset = Ecto.Changeset.change(user) |> Ecto.Changeset.put_embed(:info, info_changeset)
|
||||
User.update_and_set_cache(changeset)
|
||||
end
|
||||
end
|
||||
|
||||
def show_reblogs(user, id) do
|
||||
if id in user.info.muted_reblogs do
|
||||
info_changeset = User.Info.remove_reblog_mute(user.info, id)
|
||||
def show_reblogs(user, muted) do
|
||||
ap_id = muted.ap_id
|
||||
|
||||
if ap_id in user.info.muted_reblogs do
|
||||
info_changeset = User.Info.remove_reblog_mute(user.info, ap_id)
|
||||
changeset = Ecto.Changeset.change(user) |> Ecto.Changeset.put_embed(:info, info_changeset)
|
||||
User.update_and_set_cache(changeset)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -730,13 +730,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|
|||
|> render("relationship.json", %{user: follower, target: followed})
|
||||
else
|
||||
true ->
|
||||
case conn.params["reblogs"] do
|
||||
true -> CommonAPI.show_reblogs(follower, id)
|
||||
false -> CommonAPI.hide_reblogs(follower, id)
|
||||
end
|
||||
|
||||
followed = User.get_cached_by_id(id)
|
||||
|
||||
{:ok, follower} =
|
||||
case conn.params["reblogs"] do
|
||||
true -> CommonAPI.show_reblogs(follower, followed)
|
||||
false -> CommonAPI.hide_reblogs(follower, followed)
|
||||
end
|
||||
|
||||
conn
|
||||
|> put_view(AccountView)
|
||||
|> render("relationship.json", %{user: follower, target: followed})
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ defmodule Pleroma.Web.Streamer do
|
|||
user = User.get_cached_by_ap_id(socket.assigns[:user].ap_id)
|
||||
blocks = user.info.blocks || []
|
||||
mutes = user.info.mutes || []
|
||||
reblog_mutes = user.info.reblog_mutes || []
|
||||
reblog_mutes = user.info.muted_reblogs || []
|
||||
|
||||
parent = Object.normalize(item.data["object"])
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue