forked from mirrors/akkoma
Treat internal emoji like external.
This commit is contained in:
parent
cf0bbf320d
commit
747a68a075
|
@ -59,7 +59,8 @@ def post(user, %{"status" => status} = data) do
|
||||||
content_html <- make_content_html(status, mentions, attachments, tags),
|
content_html <- make_content_html(status, mentions, attachments, tags),
|
||||||
context <- make_context(inReplyTo),
|
context <- make_context(inReplyTo),
|
||||||
cw <- data["spoiler_text"],
|
cw <- data["spoiler_text"],
|
||||||
object <- make_note_data(user.ap_id, to, context, content_html, attachments, inReplyTo, tags, cw) do
|
object <- make_note_data(user.ap_id, to, context, content_html, attachments, inReplyTo, tags, cw),
|
||||||
|
object <- Map.put(object, "emoji", Formatter.get_emoji(status) |> Enum.reduce(%{}, fn({name, file}, acc) -> Map.put(acc, name, "#{Pleroma.Web.Endpoint.static_url}#{file}") end)) do
|
||||||
res = ActivityPub.create(to, user, context, object)
|
res = ActivityPub.create(to, user, context, object)
|
||||||
User.increase_note_count(user)
|
User.increase_note_count(user)
|
||||||
res
|
res
|
||||||
|
|
|
@ -56,9 +56,9 @@ defp get_links(%{local: false,
|
||||||
|
|
||||||
defp get_links(_activity), do: []
|
defp get_links(_activity), do: []
|
||||||
|
|
||||||
defp get_emoji_links(content) do
|
defp get_emoji_links(emojis) do
|
||||||
Enum.map(Formatter.get_emoji(content), fn({emoji, file}) ->
|
Enum.map(emojis, fn({emoji, file}) ->
|
||||||
{:link, [name: to_charlist(emoji), rel: 'emoji', href: to_charlist("#{Pleroma.Web.Endpoint.static_url}#{file}")], []}
|
{:link, [name: to_charlist(emoji), rel: 'emoji', href: to_charlist(file)], []}
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user,
|
||||||
categories = (activity.data["object"]["tag"] || [])
|
categories = (activity.data["object"]["tag"] || [])
|
||||||
|> Enum.map(fn (tag) -> {:category, [term: to_charlist(tag)], []} end)
|
|> Enum.map(fn (tag) -> {:category, [term: to_charlist(tag)], []} end)
|
||||||
|
|
||||||
emoji_links = get_emoji_links(activity.data["object"]["content"] || "")
|
emoji_links = get_emoji_links(activity.data["object"]["emoji"] || %{})
|
||||||
|
|
||||||
summary = if activity.data["object"]["summary"] do
|
summary = if activity.data["object"]["summary"] do
|
||||||
[{:summary, [], h.(activity.data["object"]["summary"])}]
|
[{:summary, [], h.(activity.data["object"]["summary"])}]
|
||||||
|
|
|
@ -41,7 +41,7 @@ test "a note activity" do
|
||||||
<link type="text/html" href="#{note_activity.data["object"]["id"]}" rel="alternate" />
|
<link type="text/html" href="#{note_activity.data["object"]["id"]}" rel="alternate" />
|
||||||
<category term="2hu"/>
|
<category term="2hu"/>
|
||||||
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
|
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
|
||||||
<link name="moominmamma" rel="emoji" href="#{Pleroma.Web.Endpoint.static_url}/finmoji/128px/moominmamma-128.png" />
|
<link name="2hu" rel="emoji" href="corndog.png" />
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tuple = ActivityRepresenter.to_simple_form(note_activity, user)
|
tuple = ActivityRepresenter.to_simple_form(note_activity, user)
|
||||||
|
@ -81,7 +81,7 @@ test "a reply note" do
|
||||||
<category term="2hu"/>
|
<category term="2hu"/>
|
||||||
<thr:in-reply-to ref="#{note.data["object"]["id"]}" href="someurl" />
|
<thr:in-reply-to ref="#{note.data["object"]["id"]}" href="someurl" />
|
||||||
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
|
<link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
|
||||||
<link name="moominmamma" rel="emoji" href="#{Pleroma.Web.Endpoint.static_url}/finmoji/128px/moominmamma-128.png" />
|
<link name="2hu" rel="emoji" href="corndog.png" />
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tuple = ActivityRepresenter.to_simple_form(answer, user)
|
tuple = ActivityRepresenter.to_simple_form(answer, user)
|
||||||
|
|
|
@ -28,13 +28,13 @@ test "create a status" do
|
||||||
object = Repo.insert!(%Object{data: object_data})
|
object = Repo.insert!(%Object{data: object_data})
|
||||||
|
|
||||||
input = %{
|
input = %{
|
||||||
"status" => "Hello again, @shp.<script></script>\nThis is on another line. #2hu #epic #phantasmagoric",
|
"status" => "Hello again, @shp.<script></script>\nThis is on another :moominmamma: line. #2hu #epic #phantasmagoric",
|
||||||
"media_ids" => [object.id]
|
"media_ids" => [object.id]
|
||||||
}
|
}
|
||||||
|
|
||||||
{ :ok, activity = %Activity{} } = TwitterAPI.create_status(user, input)
|
{ :ok, activity = %Activity{} } = TwitterAPI.create_status(user, input)
|
||||||
|
|
||||||
assert get_in(activity.data, ["object", "content"]) == "Hello again, <a href='shp'>@shp</a>.<script></script><br>This is on another line. #2hu #epic #phantasmagoric<br><a href=\"http://example.org/image.jpg\" class='attachment'>image.jpg</a>"
|
assert get_in(activity.data, ["object", "content"]) == "Hello again, <a href='shp'>@shp</a>.<script></script><br>This is on another :moominmamma: line. #2hu #epic #phantasmagoric<br><a href=\"http://example.org/image.jpg\" class='attachment'>image.jpg</a>"
|
||||||
assert get_in(activity.data, ["object", "type"]) == "Note"
|
assert get_in(activity.data, ["object", "type"]) == "Note"
|
||||||
assert get_in(activity.data, ["object", "actor"]) == user.ap_id
|
assert get_in(activity.data, ["object", "actor"]) == user.ap_id
|
||||||
assert get_in(activity.data, ["actor"]) == user.ap_id
|
assert get_in(activity.data, ["actor"]) == user.ap_id
|
||||||
|
@ -43,6 +43,8 @@ test "create a status" do
|
||||||
assert Enum.member?(get_in(activity.data, ["to"]), "shp")
|
assert Enum.member?(get_in(activity.data, ["to"]), "shp")
|
||||||
assert activity.local == true
|
assert activity.local == true
|
||||||
|
|
||||||
|
assert %{"moominmamma" => "http://localhost:4001/finmoji/128px/moominmamma-128.png"} = activity.data["object"]["emoji"]
|
||||||
|
|
||||||
# hashtags
|
# hashtags
|
||||||
assert activity.data["object"]["tag"] == ["2hu", "epic", "phantasmagoric"]
|
assert activity.data["object"]["tag"] == ["2hu", "epic", "phantasmagoric"]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue