X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fmastodon_api%2Fviews%2Faccount_view.ex;h=d2a4dd3669fa5fae8f24734fecb1b216136cf879;hb=ad0ab3a57bc5591806cae0201d8077ffb10b6634;hp=5f6ca84d0941f633a610203d8fa257ab2b73b776;hpb=c6bdc5960c4dbbdd5d5d86b6d49669611392c73f;p=akkoma diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index 5f6ca84d0..d2a4dd366 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -1,36 +1,65 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do use Pleroma.Web, :view alias Pleroma.User + alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MediaProxy + + def render("accounts.json", %{users: users} = opts) do + render_many(users, AccountView, "account.json", opts) + end def render("account.json", %{user: user}) do - image = User.avatar_url(user) + image = User.avatar_url(user) |> MediaProxy.url() + header = User.banner_url(user) |> MediaProxy.url() user_info = User.user_info(user) %{ - id: user.id, - username: user.nickname, + id: to_string(user.id), + username: hd(String.split(user.nickname, "@")), acct: user.nickname, display_name: user.name, locked: false, - created_at: user.inserted_at, + created_at: Utils.to_masto_date(user.inserted_at), followers_count: user_info.follower_count, following_count: user_info.following_count, statuses_count: user_info.note_count, - note: user.bio, + note: user.bio || "", url: user.ap_id, avatar: image, avatar_static: image, - header: "", - header_static: "" + header: header, + header_static: header, + source: %{ + note: "", + privacy: "public", + sensitive: "false" + } } end def render("mention.json", %{user: user}) do %{ - id: user.id, + id: to_string(user.id), acct: user.nickname, - username: user.nickname, + username: hd(String.split(user.nickname, "@")), url: user.ap_id } end + + def render("relationship.json", %{user: user, target: target}) do + %{ + id: to_string(target.id), + following: User.following?(user, target), + followed_by: User.following?(target, user), + blocking: User.blocks?(user, target), + muting: false, + requested: false, + domain_blocking: false + } + end + + def render("relationships.json", %{user: user, targets: targets}) do + render_many(targets, AccountView, "relationship.json", user: user, as: :target) + end end