"status.json",
Map.put(opts, :replied_to_activities, replied_to_activities)
)
+ |> Enum.filter(fn x -> not is_nil(x) end)
end
def render(
in_reply_to_id: nil,
in_reply_to_account_id: nil,
reblog: reblogged,
- content: reblogged[:content],
+ content: reblogged[:content] || "",
created_at: created_at,
reblogs_count: 0,
+ replies_count: 0,
favourites_count: 0,
reblogged: false,
favourited: false,
HTML.strip_tags(url)
|> MediaProxy.url()
- %{shortcode: name, url: url, static_url: url}
+ %{shortcode: name, url: url, static_url: url, visible_in_picker: false}
end)
+ content =
+ render_content(object)
+ |> HTML.filter_tags(User.html_filter_policy(opts[:for]))
+
%{
id: to_string(activity.id),
uri: object["id"],
in_reply_to_id: reply_to && to_string(reply_to.id),
in_reply_to_account_id: reply_to_user && to_string(reply_to_user.id),
reblog: nil,
- content: render_content(object),
+ content: content,
created_at: created_at,
reblogs_count: announcement_count,
+ replies_count: 0,
favourites_count: like_count,
reblogged: !!repeated,
favourited: !!favorited,
}
end
+ def render("status.json", _) do
+ nil
+ end
+
def render("attachment.json", %{attachment: attachment}) do
[attachment_url | _] = attachment["url"]
- media_type = attachment_url["mediaType"] || attachment_url["mimeType"]
- href = attachment_url["href"]
+ media_type = attachment_url["mediaType"] || attachment_url["mimeType"] || "image"
+ href = attachment_url["href"] |> MediaProxy.url()
type =
cond do
%{
id: to_string(attachment["id"] || hash_id),
- url: MediaProxy.url(href),
+ url: href,
remote_url: href,
- preview_url: MediaProxy.url(href),
+ preview_url: href,
text_url: href,
type: type,
description: attachment["name"]
if !!name and name != "" do
"<p><a href=\"#{object["id"]}\">#{name}</a></p>#{object["content"]}"
else
- object["content"]
+ object["content"] || ""
end
- HTML.filter_tags(content)
+ content
end
- def render_content(%{"type" => "Article"} = object) do
+ def render_content(%{"type" => object_type} = object) when object_type in ["Article", "Page"] do
summary = object["name"]
content =
- if !!summary and summary != "" do
+ if !!summary and summary != "" and is_bitstring(object["url"]) do
"<p><a href=\"#{object["url"]}\">#{summary}</a></p>#{object["content"]}"
else
- object["content"]
+ object["content"] || ""
end
- HTML.filter_tags(content)
+ content
end
- def render_content(object) do
- HTML.filter_tags(object["content"])
- end
+ def render_content(object), do: object["content"] || ""
end