Add conversation ids to twapi announce representer.

This commit is contained in:
Roger Braun 2017-05-07 12:46:21 +02:00
parent c51e15975a
commit 95ab0dc3c5
2 changed files with 12 additions and 6 deletions

View file

@ -27,7 +27,8 @@ def to_map(%Activity{data: %{"type" => "Announce", "actor" => actor, "published"
"is_post_verb" => false, "is_post_verb" => false,
"uri" => "tag:#{activity.data["id"]}:objectType=note", "uri" => "tag:#{activity.data["id"]}:objectType=note",
"created_at" => created_at, "created_at" => created_at,
"retweeted_status" => retweeted_status "retweeted_status" => retweeted_status,
"statusnet_conversation_id" => conversation_id(announced_activity)
} }
end end
@ -82,11 +83,7 @@ def to_map(%Activity{data: %{"object" => %{"content" => content} = object}} = ac
|> Enum.filter(&(&1)) |> Enum.filter(&(&1))
|> Enum.map(fn (user) -> UserRepresenter.to_map(user, opts) end) |> Enum.map(fn (user) -> UserRepresenter.to_map(user, opts) end)
conversation_id = conversation_id(activity)
conversation_id = with context when not is_nil(context) <- activity.data["context"] do
TwitterAPI.context_to_conversation_id(context)
else _e -> nil
end
%{ %{
"id" => activity.id, "id" => activity.id,
@ -108,6 +105,13 @@ def to_map(%Activity{data: %{"object" => %{"content" => content} = object}} = ac
} }
end end
def conversation_id(activity) do
with context when not is_nil(context) <- activity.data["context"] do
TwitterAPI.context_to_conversation_id(context)
else _e -> nil
end
end
defp date_to_asctime(date) do defp date_to_asctime(date) do
with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do
Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y") Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y")

View file

@ -22,6 +22,8 @@ test "an announce activity" do
retweeted_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user}) retweeted_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user})
assert retweeted_status["repeated"] == true assert retweeted_status["repeated"] == true
assert retweeted_status["id"] == note_activity.id
assert status["statusnet_conversation_id"] == retweeted_status["statusnet_conversation_id"]
assert status["retweeted_status"] == retweeted_status assert status["retweeted_status"] == retweeted_status
end end