From d008f2d69c96616f8d665851994414d1b42f8761 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Fri, 10 Aug 2018 01:44:38 +0200 Subject: [PATCH] [Pleroma.Web.MastodonAPI.AccountView]: Add bot field --- .../web/mastodon_api/views/account_view.ex | 2 + test/web/mastodon_api/account_view_test.exs | 38 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index d9edcae7f..9dd635a63 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -13,6 +13,7 @@ def render("account.json", %{user: user}) do image = User.avatar_url(user) |> MediaProxy.url() header = User.banner_url(user) |> MediaProxy.url() user_info = User.user_info(user) + bot = (user.info["source_data"]["type"] || "Person") in ["Application", "Service"] emojis = (user.info["source_data"]["tag"] || []) @@ -44,6 +45,7 @@ def render("account.json", %{user: user}) do header_static: header, emojis: emojis, fields: [], + bot: bot, source: %{ note: "", privacy: "public", diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs index 35c8a1fb0..5393732eb 100644 --- a/test/web/mastodon_api/account_view_test.exs +++ b/test/web/mastodon_api/account_view_test.exs @@ -49,6 +49,44 @@ test "Represent a user account" do } ], fields: [], + bot: false, + source: %{ + note: "", + privacy: "public", + sensitive: "false" + } + } + + assert expected == AccountView.render("account.json", %{user: user}) + end + + test "Represent a Service(bot) account" do + user = + insert(:user, %{ + info: %{"note_count" => 5, "follower_count" => 3, "source_data" => %{"type" => "Service"}}, + nickname: "shp@shitposter.club", + inserted_at: ~N[2017-08-15 15:47:06.597036] + }) + + expected = %{ + id: to_string(user.id), + username: "shp", + acct: user.nickname, + display_name: user.name, + locked: false, + created_at: "2017-08-15T15:47:06.000Z", + followers_count: 3, + following_count: 0, + statuses_count: 5, + note: user.bio, + url: user.ap_id, + avatar: "http://localhost:4001/images/avi.png", + avatar_static: "http://localhost:4001/images/avi.png", + header: "http://localhost:4001/images/banner.png", + header_static: "http://localhost:4001/images/banner.png", + emojis: [], + fields: [], + bot: true, source: %{ note: "", privacy: "public",