@httpoison Application.get_env(:pleroma, :httpoison)
+ @instance Application.get_env(:pleroma, :instance)
+ @rewrite_policy Keyword.get(@instance, :rewrite_policy)
+
def get_recipients(data) do
(data["to"] || []) ++ (data["cc"] || [])
end
def insert(map, local \\ true) when is_map(map) do
with nil <- Activity.get_by_ap_id(map["id"]),
map <- lazy_put_activity_defaults(map),
+ {:ok, map} <- @rewrite_policy.filter(map),
:ok <- insert_full_object(map) do
{:ok, activity} =
Repo.insert(%Activity{
),
{:ok, activity} <- insert(create_data, local),
:ok <- maybe_federate(activity),
- {:ok, actor} <- User.increase_note_count(actor) do
+ {:ok, _actor} <- User.increase_note_count(actor) do
{:ok, activity}
end
end
with Repo.delete(object),
Repo.delete_all(Activity.all_non_create_by_object_ap_id_q(id)),
{:ok, activity} <- insert(data, local),
- :ok <- maybe_federate(activity) do
+ :ok <- maybe_federate(activity),
+ {:ok, _actor} <- User.decrease_note_count(user) do
{:ok, activity}
end
end
defp restrict_tag(query, _), do: query
- defp restrict_recipients(query, [], user), do: query
+ defp restrict_recipients(query, [], _user), do: query
defp restrict_recipients(query, recipients, nil) do
from(activity in query, where: fragment("? && ?", ^recipients, activity.recipients))
defp restrict_blocked(query, %{"blocking_user" => %User{info: info}}) do
blocks = info["blocks"] || []
- from(activity in query, where: fragment("not (? = ANY(?))", activity.actor, ^blocks))
+
+ from(
+ activity in query,
+ where: fragment("not (? = ANY(?))", activity.actor, ^blocks),
+ where: fragment("not (?->'to' \\?| ?)", activity.data, ^blocks)
+ )
end
defp restrict_blocked(query, _), do: query
end
def make_user_from_ap_id(ap_id) do
- if user = User.get_by_ap_id(ap_id) do
+ if _user = User.get_by_ap_id(ap_id) do
Transmogrifier.upgrade_user_from_ap_id(ap_id)
else
with {:ok, data} <- fetch_and_prepare_user_from_ap_id(ap_id) do
object = %Object{} ->
{:ok, object}
- e ->
+ _e ->
Logger.info("Couldn't get object via AP, trying out OStatus fetching...")
case OStatus.fetch_activity_from_url(id) do