projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Mastodon API: Set follower/following counters to 0 when hiding
[akkoma]
/
lib
/
pleroma
/
web
/
mastodon_api
/
views
/
account_view.ex
diff --git
a/lib/pleroma/web/mastodon_api/views/account_view.ex
b/lib/pleroma/web/mastodon_api/views/account_view.ex
index 62c516f8eb97989538a1b3e3c3b0e050574ce50d..72c092f252e6e8c604b7eb3db956bd856f929a3f 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/views/account_view.ex
+++ b/
lib/pleroma/web/mastodon_api/views/account_view.ex
@@
-28,7
+28,7
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
id: to_string(user.id),
acct: user.nickname,
username: username_from_nickname(user.nickname),
id: to_string(user.id),
acct: user.nickname,
username: username_from_nickname(user.nickname),
- url:
user.ap_id
+ url:
User.profile_url(user)
}
end
}
end
@@
-50,12
+50,13
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
id: to_string(target.id),
following: User.following?(user, target),
followed_by: User.following?(target, user),
id: to_string(target.id),
following: User.following?(user, target),
followed_by: User.following?(target, user),
- blocking: User.blocks?(user, target),
+ blocking: User.blocks_ap_id?(user, target),
+ blocked_by: User.blocks_ap_id?(target, user),
muting: User.mutes?(user, target),
muting: User.mutes?(user, target),
- muting_notifications:
false
,
+ muting_notifications:
User.muted_notifications?(user, target)
,
subscribing: User.subscribed_to?(user, target),
requested: requested,
subscribing: User.subscribed_to?(user, target),
requested: requested,
- domain_blocking:
false
,
+ domain_blocking:
User.blocks_domain?(user, target)
,
showing_reblogs: User.showing_reblogs?(user, target),
endorsed: false
}
showing_reblogs: User.showing_reblogs?(user, target),
endorsed: false
}
@@
-71,6
+72,13
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
image = User.avatar_url(user) |> MediaProxy.url()
header = User.banner_url(user) |> MediaProxy.url()
user_info = User.get_cached_user_info(user)
image = User.avatar_url(user) |> MediaProxy.url()
header = User.banner_url(user) |> MediaProxy.url()
user_info = User.get_cached_user_info(user)
+
+ following_count =
+ ((!user.info.hide_follows or opts[:for] == user) && user_info.following_count) || 0
+
+ followers_count =
+ ((!user.info.hide_followers or opts[:for] == user) && user_info.follower_count) || 0
+
bot = (user.info.source_data["type"] || "Person") in ["Application", "Service"]
emojis =
bot = (user.info.source_data["type"] || "Person") in ["Application", "Service"]
emojis =
@@
-101,11
+109,11
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
display_name: display_name,
locked: user_info.locked,
created_at: Utils.to_masto_date(user.inserted_at),
display_name: display_name,
locked: user_info.locked,
created_at: Utils.to_masto_date(user.inserted_at),
- followers_count:
user_info.follower
_count,
- following_count:
user_info.
following_count,
+ followers_count:
followers
_count,
+ following_count: following_count,
statuses_count: user_info.note_count,
note: bio || "",
statuses_count: user_info.note_count,
note: bio || "",
- url:
user.ap_id
,
+ url:
User.profile_url(user)
,
avatar: image,
avatar_static: image,
header: header,
avatar: image,
avatar_static: image,
header: header,
@@
-136,6
+144,7
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
|> maybe_put_notification_settings(user, opts[:for])
|> maybe_put_settings_store(user, opts[:for], opts)
|> maybe_put_chat_token(user, opts[:for], opts)
|> maybe_put_notification_settings(user, opts[:for])
|> maybe_put_settings_store(user, opts[:for], opts)
|> maybe_put_chat_token(user, opts[:for], opts)
+ |> maybe_put_activation_status(user, opts[:for])
end
defp username_from_nickname(string) when is_binary(string) do
end
defp username_from_nickname(string) when is_binary(string) do
@@
-196,6
+205,12
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
defp maybe_put_notification_settings(data, _, _), do: data
defp maybe_put_notification_settings(data, _, _), do: data
+ defp maybe_put_activation_status(data, user, %User{info: %{is_admin: true}}) do
+ Kernel.put_in(data, [:pleroma, :deactivated], user.info.deactivated)
+ end
+
+ defp maybe_put_activation_status(data, _, _), do: data
+
defp image_url(%{"url" => [%{"href" => href} | _]}), do: href
defp image_url(_), do: nil
end
defp image_url(%{"url" => [%{"href" => href} | _]}), do: href
defp image_url(_), do: nil
end