projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '1723-token-fixes' into 'develop'
[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 6304d77ca8892b0b82bcf9189dfaf6c3b3bc1183..2feba47782dbb553908a6601a329086a3b56c3bf 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/views/account_view.ex
+++ b/
lib/pleroma/web/mastodon_api/views/account_view.ex
@@
-35,7
+35,7
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
end
def render("show.json", %{user: user} = opts) do
end
def render("show.json", %{user: user} = opts) do
- if User.visible_for
?(user, opts[:for])
do
+ if User.visible_for
(user, opts[:for]) == :visible
do
do_render("show.json", opts)
else
%{}
do_render("show.json", opts)
else
%{}
@@
-179,15
+179,17
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
0
end
0
end
- bot = user.actor_type
in ["Application", "Service"]
+ bot = user.actor_type
== "Service"
emojis =
emojis =
- Enum.map(user.emoji, fn {shortcode, url} ->
+ Enum.map(user.emoji, fn {shortcode, raw_url} ->
+ url = MediaProxy.url(raw_url)
+
%{
%{
-
"shortcode" =>
shortcode,
-
"url" =>
url,
-
"static_url" =>
url,
-
"visible_in_picker" =>
false
+
shortcode:
shortcode,
+
url:
url,
+
static_url:
url,
+
visible_in_picker:
false
}
end)
}
end)
@@
-202,6
+204,18
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
%{}
end
%{}
end
+ favicon =
+ if Pleroma.Config.get([:instances_favicons, :enabled]) do
+ user
+ |> Map.get(:ap_id, "")
+ |> URI.parse()
+ |> URI.merge("/")
+ |> Pleroma.Instances.Instance.get_or_update_favicon()
+ |> MediaProxy.url()
+ else
+ nil
+ end
+
%{
id: to_string(user.id),
username: username_from_nickname(user.nickname),
%{
id: to_string(user.id),
username: username_from_nickname(user.nickname),
@@
-222,7
+236,7
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
fields: user.fields,
bot: bot,
source: %{
fields: user.fields,
bot: bot,
source: %{
- note:
prepare_user_bio(user)
,
+ note:
user.raw_bio || ""
,
sensitive: false,
fields: user.raw_fields,
pleroma: %{
sensitive: false,
fields: user.raw_fields,
pleroma: %{
@@
-233,6
+247,7
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
# Pleroma extension
pleroma: %{
# Pleroma extension
pleroma: %{
+ ap_id: user.ap_id,
confirmation_pending: user.confirmation_pending,
tags: user.tags,
hide_followers_count: user.hide_followers_count,
confirmation_pending: user.confirmation_pending,
tags: user.tags,
hide_followers_count: user.hide_followers_count,
@@
-242,7
+257,8
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
hide_favorites: user.hide_favorites,
relationship: relationship,
skip_thread_containment: user.skip_thread_containment,
hide_favorites: user.hide_favorites,
relationship: relationship,
skip_thread_containment: user.skip_thread_containment,
- background_image: image_url(user.background) |> MediaProxy.url()
+ background_image: image_url(user.background) |> MediaProxy.url(),
+ favicon: favicon
}
}
|> maybe_put_role(user, opts[:for])
}
}
|> maybe_put_role(user, opts[:for])
@@
-257,14
+273,6
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
|> maybe_put_unread_notification_count(user, opts[:for])
end
|> maybe_put_unread_notification_count(user, opts[:for])
end
- defp prepare_user_bio(%User{bio: ""}), do: ""
-
- defp prepare_user_bio(%User{bio: bio}) when is_binary(bio) do
- bio |> String.replace(~r(<br */?>), "\n") |> Pleroma.HTML.strip_tags()
- end
-
- defp prepare_user_bio(_), do: ""
-
defp username_from_nickname(string) when is_binary(string) do
hd(String.split(string, "@"))
end
defp username_from_nickname(string) when is_binary(string) do
hd(String.split(string, "@"))
end
@@
-333,7
+341,11
@@
defmodule Pleroma.Web.MastodonAPI.AccountView do
defp maybe_put_role(data, _, _), do: data
defp maybe_put_notification_settings(data, %User{id: user_id} = user, %User{id: user_id}) do
defp maybe_put_role(data, _, _), do: data
defp maybe_put_notification_settings(data, %User{id: user_id} = user, %User{id: user_id}) do
- Kernel.put_in(data, [:pleroma, :notification_settings], user.notification_settings)
+ Kernel.put_in(
+ data,
+ [:pleroma, :notification_settings],
+ Map.from_struct(user.notification_settings)
+ )
end
defp maybe_put_notification_settings(data, _, _), do: data
end
defp maybe_put_notification_settings(data, _, _), do: data