projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[#1304] Moved all non-mutes / non-blocks fields from User.Info to User. WIP.
[akkoma]
/
lib
/
pleroma
/
web
/
common_api
/
common_api.ex
diff --git
a/lib/pleroma/web/common_api/common_api.ex
b/lib/pleroma/web/common_api/common_api.ex
index 2ec017ff87e1316f38ac70208babce335330059a..ef738a8707ba589f4faed9d08ac8a8e4d105be68 100644
(file)
--- a/
lib/pleroma/web/common_api/common_api.ex
+++ b/
lib/pleroma/web/common_api/common_api.ex
@@
-16,6
+16,8
@@
defmodule Pleroma.Web.CommonAPI do
import Pleroma.Web.Gettext
import Pleroma.Web.CommonAPI.Utils
import Pleroma.Web.Gettext
import Pleroma.Web.CommonAPI.Utils
+ require Pleroma.Constants
+
def follow(follower, followed) do
timeout = Pleroma.Config.get([:activitypub, :follow_handshake_timeout])
def follow(follower, followed) do
timeout = Pleroma.Config.get([:activitypub, :follow_handshake_timeout])
@@
-76,11
+78,12
@@
defmodule Pleroma.Web.CommonAPI do
end
end
end
end
- def repeat(id_or_ap_id, user) do
+ def repeat(id_or_ap_id, user
, params \\ %{}
) do
with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
object <- Object.normalize(activity),
with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
object <- Object.normalize(activity),
- nil <- Utils.get_existing_announce(user.ap_id, object) do
- ActivityPub.announce(user, object)
+ nil <- Utils.get_existing_announce(user.ap_id, object),
+ public <- public_announce?(object, params) do
+ ActivityPub.announce(user, object, nil, true, public)
else
_ -> {:error, dgettext("errors", "Could not repeat")}
end
else
_ -> {:error, dgettext("errors", "Could not repeat")}
end
@@
-169,6
+172,14
@@
defmodule Pleroma.Web.CommonAPI do
end
end
end
end
+ def public_announce?(_, %{"visibility" => visibility})
+ when visibility in ~w{public unlisted private direct},
+ do: visibility in ~w(public unlisted)
+
+ def public_announce?(object, _) do
+ Visibility.is_public?(object)
+ end
+
def get_visibility(_, _, %Participation{}), do: {"direct", "direct"}
def get_visibility(%{"visibility" => visibility}, in_reply_to, _)
def get_visibility(_, _, %Participation{}), do: {"direct", "direct"}
def get_visibility(%{"visibility" => visibility}, in_reply_to, _)
@@
-252,17
+263,17
@@
defmodule Pleroma.Web.CommonAPI do
# Updates the emojis for a user based on their profile
def update(user) do
emoji = emoji_from_profile(user)
# Updates the emojis for a user based on their profile
def update(user) do
emoji = emoji_from_profile(user)
- source_data =
user.info |> Map.get(:source_data, %{}) |> Map.put(
"tag", emoji)
+ source_data =
Map.put(user.source_data,
"tag", emoji)
user =
user =
- case User.update_
info(user, &User.Info.set_source_data(&1, source_data)
) do
+ case User.update_
source_data(user, source_data
) do
{:ok, user} -> user
_ -> user
end
ActivityPub.update(%{
local: true,
{:ok, user} -> user
_ -> user
end
ActivityPub.update(%{
local: true,
- to: [user.follower_address],
+ to: [
Pleroma.Constants.as_public(),
user.follower_address],
cc: [],
actor: user.ap_id,
object: Pleroma.Web.ActivityPub.UserView.render("user.json", %{user: user})
cc: [],
actor: user.ap_id,
object: Pleroma.Web.ActivityPub.UserView.render("user.json", %{user: user})
@@
-276,20
+287,20
@@
defmodule Pleroma.Web.CommonAPI do
object: %Object{data: %{"type" => "Note"}}
} = activity <- get_by_id_or_ap_id(id_or_ap_id),
true <- Visibility.is_public?(activity),
object: %Object{data: %{"type" => "Note"}}
} = activity <- get_by_id_or_ap_id(id_or_ap_id),
true <- Visibility.is_public?(activity),
- {:ok, _user} <- User.
update_info(user, &User.Info.add_pinnned_activity(&1, activity)
) do
+ {:ok, _user} <- User.
add_pinnned_activity(user, activity
) do
{:ok, activity}
else
{:ok, activity}
else
- {:error, %{
changes: %{info: %{errors: [pinned_activities: {err, _}]}}
}} -> {:error, err}
+ {:error, %{
errors: [pinned_activities: {err, _}]
}} -> {:error, err}
_ -> {:error, dgettext("errors", "Could not pin")}
end
end
def unpin(id_or_ap_id, user) do
with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
_ -> {:error, dgettext("errors", "Could not pin")}
end
end
def unpin(id_or_ap_id, user) do
with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
- {:ok, _user} <- User.
update_info(user, &User.Info.remove_pinnned_activity(&1, activity)
) do
+ {:ok, _user} <- User.
remove_pinnned_activity(user, activity
) do
{:ok, activity}
else
{:ok, activity}
else
-
%{errors: [pinned_activities: {err, _}]
} -> {:error, err}
+
{:error, %{errors: [pinned_activities: {err, _}]}
} -> {:error, err}
_ -> {:error, dgettext("errors", "Could not unpin")}
end
end
_ -> {:error, dgettext("errors", "Could not unpin")}
end
end