projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Break out activity-specific HTML functions into Pleroma.Activity.HTML
[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 3ba453d1fe05ecffce614300b565228b4ded1c3e..da2cf0f956a61485d99167852d355885b44edae2 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/
lib/pleroma/web/mastodon_api/views/status_view.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.StatusView do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.StatusView do
@@
-41,7
+41,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
activities
|> Enum.map(fn
%{data: %{"type" => "Create"}} = activity ->
activities
|> Enum.map(fn
%{data: %{"type" => "Create"}} = activity ->
- object = Object.normalize(activity)
+ object = Object.normalize(activity
, fetch: false
)
object && object.data["inReplyTo"] != "" && object.data["inReplyTo"]
_ ->
object && object.data["inReplyTo"] != "" && object.data["inReplyTo"]
_ ->
@@
-51,7
+51,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
|> Activity.create_by_object_ap_id_with_object()
|> Repo.all()
|> Enum.reduce(%{}, fn activity, acc ->
|> Activity.create_by_object_ap_id_with_object()
|> Repo.all()
|> Enum.reduce(%{}, fn activity, acc ->
- object = Object.normalize(activity)
+ object = Object.normalize(activity
, fetch: false
)
if object, do: Map.put(acc, object.data["id"], activity), else: acc
end)
end
if object, do: Map.put(acc, object.data["id"], activity), else: acc
end)
end
@@
-65,7
+65,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
defp get_context_id(_), do: nil
defp reblogged?(activity, user) do
defp get_context_id(_), do: nil
defp reblogged?(activity, user) do
- object = Object.normalize(activity) || %{}
+ object = Object.normalize(activity
, fetch: false
) || %{}
present?(user && user.ap_id in (object.data["announcements"] || []))
end
present?(user && user.ap_id in (object.data["announcements"] || []))
end
@@
-84,7
+84,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
parent_activities =
activities
|> Enum.filter(&(&1.data["type"] == "Announce" && &1.data["object"]))
parent_activities =
activities
|> Enum.filter(&(&1.data["type"] == "Announce" && &1.data["object"]))
- |> Enum.map(&Object.normalize(&1).data["id"])
+ |> Enum.map(&Object.normalize(&1
, fetch: false
).data["id"])
|> Activity.create_by_object_ap_id()
|> Activity.with_preloaded_object(:left)
|> Activity.with_preloaded_bookmark(reading_user)
|> Activity.create_by_object_ap_id()
|> Activity.with_preloaded_object(:left)
|> Activity.with_preloaded_bookmark(reading_user)
@@
-124,7
+124,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
) do
user = CommonAPI.get_user(activity.data["actor"])
created_at = Utils.to_masto_date(activity.data["published"])
) do
user = CommonAPI.get_user(activity.data["actor"])
created_at = Utils.to_masto_date(activity.data["published"])
- activity_object = Object.normalize(activity)
+ activity_object = Object.normalize(activity
, fetch: false
)
reblogged_parent_activity =
if opts[:parent_activities] do
reblogged_parent_activity =
if opts[:parent_activities] do
@@
-180,10
+180,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
media_attachments: reblogged[:media_attachments] || [],
mentions: mentions,
tags: reblogged[:tags] || [],
media_attachments: reblogged[:media_attachments] || [],
mentions: mentions,
tags: reblogged[:tags] || [],
- application: %{
- name: "Web",
- website: nil
- },
+ application: build_application(activity_object.data["generator"]),
language: nil,
emojis: [],
pleroma: %{
language: nil,
emojis: [],
pleroma: %{
@@
-193,7
+190,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
end
def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do
end
def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do
- object = Object.normalize(activity)
+ object = Object.normalize(activity
, fetch: false
)
user = CommonAPI.get_user(activity.data["actor"])
user_follower_address = user.follower_address
user = CommonAPI.get_user(activity.data["actor"])
user_follower_address = user.follower_address
@@
-257,7
+254,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
content_html =
content
content_html =
content
- |> HTML.get_cached_scrubbed_html_for_activity(
+ |>
Activity.
HTML.get_cached_scrubbed_html_for_activity(
User.html_filter_policy(opts[:for]),
activity,
"mastoapi:content"
User.html_filter_policy(opts[:for]),
activity,
"mastoapi:content"
@@
-265,7
+262,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
content_plaintext =
content
content_plaintext =
content
- |> HTML.get_cached_stripped_html_for_activity(
+ |>
Activity.
HTML.get_cached_stripped_html_for_activity(
activity,
"mastoapi:content"
)
activity,
"mastoapi:content"
)
@@
-347,11
+344,8
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
media_attachments: attachments,
poll: render(PollView, "show.json", object: object, for: opts[:for]),
mentions: mentions,
media_attachments: attachments,
poll: render(PollView, "show.json", object: object, for: opts[:for]),
mentions: mentions,
- tags: build_tags(Object.hashtags(object)),
- application: %{
- name: "Web",
- website: nil
- },
+ tags: build_tags(tags),
+ application: build_application(object.data["generator"]),
language: nil,
emojis: build_emojis(object.data["emoji"]),
pleroma: %{
language: nil,
emojis: build_emojis(object.data["emoji"]),
pleroma: %{
@@
-451,7
+445,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
end
def get_reply_to(activity, %{replied_to_activities: replied_to_activities}) do
end
def get_reply_to(activity, %{replied_to_activities: replied_to_activities}) do
- object = Object.normalize(activity)
+ object = Object.normalize(activity
, fetch: false
)
with nil <- replied_to_activities[object.data["inReplyTo"]] do
# If user didn't participate in the thread
with nil <- replied_to_activities[object.data["inReplyTo"]] do
# If user didn't participate in the thread
@@
-460,7
+454,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
end
def get_reply_to(%{data: %{"object" => _object}} = activity, _) do
end
def get_reply_to(%{data: %{"object" => _object}} = activity, _) do
- object = Object.normalize(activity)
+ object = Object.normalize(activity
, fetch: false
)
if object.data["inReplyTo"] && object.data["inReplyTo"] != "" do
Activity.get_create_by_object_ap_id(object.data["inReplyTo"])
if object.data["inReplyTo"] && object.data["inReplyTo"] != "" do
Activity.get_create_by_object_ap_id(object.data["inReplyTo"])
@@
-491,7
+485,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
def build_tags(object_tags) when is_list(object_tags) do
object_tags
|> Enum.filter(&is_binary/1)
def build_tags(object_tags) when is_list(object_tags) do
object_tags
|> Enum.filter(&is_binary/1)
- |> Enum.map(&%{name: &1, url: "/tag/#{URI.encode(&1)}"})
+ |> Enum.map(&%{name: &1, url: "
#{Pleroma.Web.base_url()}
/tag/#{URI.encode(&1)}"})
end
def build_tags(_), do: []
end
def build_tags(_), do: []
@@
-540,4
+534,8
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
me: !!(current_user && current_user.ap_id in users)
}
end
me: !!(current_user && current_user.ap_id in users)
}
end
+
+ @spec build_application(map() | nil) :: map() | nil
+ defp build_application(%{type: _type, name: name, url: url}), do: %{name: name, website: url}
+ defp build_application(_), do: nil
end
end