projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'origin/develop' into explicit-addressing
[akkoma]
/
lib
/
pleroma
/
web
/
mastodon_api
/
views
/
status_view.ex
diff --git
a/lib/pleroma/web/mastodon_api/views/status_view.ex
b/lib/pleroma/web/mastodon_api/views/status_view.ex
index 7a393a817911995997d0d7d953b5e6ea9ba05cb2..6836d331a7ae89c5d2e58102f68ae55a26c5f698 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/
lib/pleroma/web/mastodon_api/views/status_view.ex
@@
-157,6
+157,12
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
bookmarked = Activity.get_bookmark(activity, opts[:for]) != nil
bookmarked = Activity.get_bookmark(activity, opts[:for]) != nil
+ thread_muted? =
+ case activity.thread_muted? do
+ thread_muted? when is_boolean(thread_muted?) -> thread_muted?
+ nil -> CommonAPI.thread_muted?(user, activity)
+ end
+
attachment_data = object.data["attachment"] || []
attachments = render_many(attachment_data, StatusView, "attachment.json", as: :attachment)
attachment_data = object.data["attachment"] || []
attachments = render_many(attachment_data, StatusView, "attachment.json", as: :attachment)
@@
-228,7
+234,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
reblogged: reblogged?(activity, opts[:for]),
favourited: present?(favorited),
bookmarked: present?(bookmarked),
reblogged: reblogged?(activity, opts[:for]),
favourited: present?(favorited),
bookmarked: present?(bookmarked),
- muted:
CommonAPI.thread_muted?(user, activity)
|| User.mutes?(opts[:for], user),
+ muted:
thread_muted?
|| User.mutes?(opts[:for], user),
pinned: pinned?(activity, user),
sensitive: sensitive,
spoiler_text: summary_html,
pinned: pinned?(activity, user),
sensitive: sensitive,
spoiler_text: summary_html,
@@
-285,8
+291,8
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
provider_url: page_url_data.scheme <> "://" <> page_url_data.host,
url: page_url,
image: image_url |> MediaProxy.url(),
provider_url: page_url_data.scheme <> "://" <> page_url_data.host,
url: page_url,
image: image_url |> MediaProxy.url(),
- title: rich_media[:title],
- description: rich_media[:description],
+ title: rich_media[:title]
|| ""
,
+ description: rich_media[:description]
|| ""
,
pleroma: %{
opengraph: rich_media
}
pleroma: %{
opengraph: rich_media
}
@@
-324,8
+330,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
}
end
}
end
- # TODO: Add tests for this view
- def render("poll.json", %{object: object} = _opts) do
+ def render("poll.json", %{object: object} = opts) do
{multiple, options} =
case object.data do
%{"anyOf" => options} when is_list(options) -> {true, options}
{multiple, options} =
case object.data do
%{"anyOf" => options} when is_list(options) -> {true, options}
@@
-346,6
+351,16
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
_ -> false
end
_ -> false
end
+ voted =
+ if opts[:for] do
+ existing_votes =
+ Pleroma.Web.ActivityPub.Utils.get_existing_votes(opts[:for].ap_id, object)
+
+ existing_votes != [] or opts[:for].ap_id == object.data["actor"]
+ else
+ false
+ end
+
{options, votes_count} =
Enum.map_reduce(options, 0, fn %{"name" => name} = option, count ->
current_count = option["replies"]["totalItems"] || 0
{options, votes_count} =
Enum.map_reduce(options, 0, fn %{"name" => name} = option, count ->
current_count = option["replies"]["totalItems"] || 0
@@
-365,8
+380,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
multiple: multiple,
votes_count: votes_count,
options: options,
multiple: multiple,
votes_count: votes_count,
options: options,
- # TODO: Actually check for a vote
- voted: false,
+ voted: voted,
emojis: build_emojis(object.data["emoji"])
}
else
emojis: build_emojis(object.data["emoji"])
}
else