ostatus: use Object.normalize() where appropriate when representing activities
This commit is contained in:
parent
5d4a71906a
commit
dd66cc2ca6
|
@ -84,11 +84,13 @@ def to_simple_form(activity, user, with_author \\ false)
|
||||||
def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user, with_author) do
|
def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user, with_author) do
|
||||||
h = fn str -> [to_charlist(str)] end
|
h = fn str -> [to_charlist(str)] end
|
||||||
|
|
||||||
updated_at = activity.data["object"]["published"]
|
object = Object.normalize(activity.data["object"])
|
||||||
inserted_at = activity.data["object"]["published"]
|
|
||||||
|
updated_at = object.data["published"]
|
||||||
|
inserted_at = object.data["published"]
|
||||||
|
|
||||||
attachments =
|
attachments =
|
||||||
Enum.map(activity.data["object"]["attachment"] || [], fn attachment ->
|
Enum.map(object.data["attachment"] || [], fn attachment ->
|
||||||
url = hd(attachment["url"])
|
url = hd(attachment["url"])
|
||||||
|
|
||||||
{:link,
|
{:link,
|
||||||
|
@ -101,7 +103,7 @@ def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user,
|
||||||
mentions = activity.recipients |> get_mentions
|
mentions = activity.recipients |> get_mentions
|
||||||
|
|
||||||
categories =
|
categories =
|
||||||
(activity.data["object"]["tag"] || [])
|
(object.data["tag"] || [])
|
||||||
|> Enum.map(fn tag ->
|
|> Enum.map(fn tag ->
|
||||||
if is_binary(tag) do
|
if is_binary(tag) do
|
||||||
{:category, [term: to_charlist(tag)], []}
|
{:category, [term: to_charlist(tag)], []}
|
||||||
|
@ -111,11 +113,11 @@ def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user,
|
||||||
end)
|
end)
|
||||||
|> Enum.filter(& &1)
|
|> Enum.filter(& &1)
|
||||||
|
|
||||||
emoji_links = get_emoji_links(activity.data["object"]["emoji"] || %{})
|
emoji_links = get_emoji_links(object.data["emoji"] || %{})
|
||||||
|
|
||||||
summary =
|
summary =
|
||||||
if activity.data["object"]["summary"] do
|
if object.data["summary"] do
|
||||||
[{:summary, [], h.(activity.data["object"]["summary"])}]
|
[{:summary, [], h.(object.data["summary"])}]
|
||||||
else
|
else
|
||||||
[]
|
[]
|
||||||
end
|
end
|
||||||
|
@ -124,10 +126,9 @@ def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user,
|
||||||
{:"activity:object-type", ['http://activitystrea.ms/schema/1.0/note']},
|
{:"activity:object-type", ['http://activitystrea.ms/schema/1.0/note']},
|
||||||
{:"activity:verb", ['http://activitystrea.ms/schema/1.0/post']},
|
{:"activity:verb", ['http://activitystrea.ms/schema/1.0/post']},
|
||||||
# For notes, federate the object id.
|
# For notes, federate the object id.
|
||||||
{:id, h.(activity.data["object"]["id"])},
|
{:id, h.(object.data["id"])},
|
||||||
{:title, ['New note by #{user.nickname}']},
|
{:title, ['New note by #{user.nickname}']},
|
||||||
{:content, [type: 'html'],
|
{:content, [type: 'html'], h.(object.data["content"] |> String.replace(~r/[\n\r]/, ""))},
|
||||||
h.(activity.data["object"]["content"] |> String.replace(~r/[\n\r]/, ""))},
|
|
||||||
{:published, h.(inserted_at)},
|
{:published, h.(inserted_at)},
|
||||||
{:updated, h.(updated_at)},
|
{:updated, h.(updated_at)},
|
||||||
{:"ostatus:conversation", [ref: h.(activity.data["context"])],
|
{:"ostatus:conversation", [ref: h.(activity.data["context"])],
|
||||||
|
|
Loading…
Reference in a new issue