forked from AkkomaGang/akkoma
Merge branch 'emoji-in-summary' into 'develop'
Strip HTML in and allow emoji in summaries. See merge request pleroma/pleroma!631
This commit is contained in:
commit
145d6fe6e9
4 changed files with 34 additions and 5 deletions
|
@ -124,7 +124,7 @@ def post(user, %{"status" => status} = data) do
|
|||
Map.put(
|
||||
object,
|
||||
"emoji",
|
||||
Formatter.get_emoji(status)
|
||||
(Formatter.get_emoji(status) ++ Formatter.get_emoji(data["spoiler_text"]))
|
||||
|> Enum.reduce(%{}, fn {name, file}, acc ->
|
||||
Map.put(acc, name, "#{Pleroma.Web.Endpoint.static_url()}#{file}")
|
||||
end)
|
||||
|
|
|
@ -207,7 +207,7 @@ def to_map(
|
|||
"activity_type" => "post",
|
||||
"possibly_sensitive" => possibly_sensitive,
|
||||
"visibility" => Pleroma.Web.MastodonAPI.StatusView.get_visibility(object),
|
||||
"summary" => object["summary"]
|
||||
"summary" => HTML.strip_tags(object["summary"]) |> Formatter.emojify(object["emoji"])
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -289,7 +289,7 @@ def render(
|
|||
"activity_type" => "post",
|
||||
"possibly_sensitive" => possibly_sensitive,
|
||||
"visibility" => Pleroma.Web.MastodonAPI.StatusView.get_visibility(object),
|
||||
"summary" => summary
|
||||
"summary" => HTML.strip_tags(summary) |> Formatter.emojify(object["emoji"])
|
||||
}
|
||||
end
|
||||
|
||||
|
|
|
@ -41,6 +41,35 @@ test "a create activity with a html status" do
|
|||
"#Bike log - Commute Tuesday\nhttps://pla.bike/posts/20181211/\n#cycling #CHScycling #commute\nMVIMG_20181211_054020.jpg"
|
||||
end
|
||||
|
||||
test "a create activity with a summary containing emoji" do
|
||||
{:ok, activity} =
|
||||
CommonAPI.post(insert(:user), %{
|
||||
"spoiler_text" => ":woollysocks: meow",
|
||||
"status" => "."
|
||||
})
|
||||
|
||||
result = ActivityView.render("activity.json", activity: activity)
|
||||
|
||||
expected =
|
||||
"<img height=\"32px\" width=\"32px\" alt=\"woollysocks\" title=\"woollysocks\" src=\"http://localhost:4001/finmoji/128px/woollysocks-128.png\" /> meow"
|
||||
|
||||
assert result["summary"] == expected
|
||||
end
|
||||
|
||||
test "a create activity with a summary containing invalid HTML" do
|
||||
{:ok, activity} =
|
||||
CommonAPI.post(insert(:user), %{
|
||||
"spoiler_text" => "<span style=\"color: magenta; font-size: 32px;\">meow</span>",
|
||||
"status" => "."
|
||||
})
|
||||
|
||||
result = ActivityView.render("activity.json", activity: activity)
|
||||
|
||||
expected = "meow"
|
||||
|
||||
assert result["summary"] == expected
|
||||
end
|
||||
|
||||
test "a create activity with a note" do
|
||||
user = insert(:user)
|
||||
other_user = insert(:user, %{nickname: "shp"})
|
||||
|
@ -73,14 +102,14 @@ test "a create activity with a note" do
|
|||
"repeat_num" => 0,
|
||||
"repeated" => false,
|
||||
"statusnet_conversation_id" => convo_id,
|
||||
"summary" => "",
|
||||
"statusnet_html" =>
|
||||
"Hey <span><a data-user=\"#{other_user.id}\" href=\"#{other_user.ap_id}\">@<span>shp</span></a></span>!",
|
||||
"tags" => [],
|
||||
"text" => "Hey @shp!",
|
||||
"uri" => activity.data["object"]["id"],
|
||||
"user" => UserView.render("show.json", %{user: user}),
|
||||
"visibility" => "direct",
|
||||
"summary" => nil
|
||||
"visibility" => "direct"
|
||||
}
|
||||
|
||||
assert result == expected
|
||||
|
|
Loading…
Reference in a new issue