From 95ab0dc3c5ea63048a98b5fb594d0163249be822 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sun, 7 May 2017 12:46:21 +0200 Subject: [PATCH] Add conversation ids to twapi announce representer. --- .../representers/activity_representer.ex | 16 ++++++++++------ .../representers/activity_representer_test.exs | 2 ++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index 4d7ea0c5c..3fef8eec8 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -27,7 +27,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do "is_post_verb" => false, "uri" => "tag:#{activity.data["id"]}:objectType=note", "created_at" => created_at, - "retweeted_status" => retweeted_status + "retweeted_status" => retweeted_status, + "statusnet_conversation_id" => conversation_id(announced_activity) } end @@ -82,11 +83,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do |> Enum.filter(&(&1)) |> Enum.map(fn (user) -> UserRepresenter.to_map(user, opts) end) - - conversation_id = with context when not is_nil(context) <- activity.data["context"] do - TwitterAPI.context_to_conversation_id(context) - else _e -> nil - end + conversation_id = conversation_id(activity) %{ "id" => activity.id, @@ -108,6 +105,13 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do } 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 with {:ok, date, _offset} <- date |> DateTime.from_iso8601 do Strftime.strftime!(date, "%a %b %d %H:%M:%S %z %Y") diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 64e7f0641..84c8d9a49 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -22,6 +22,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do retweeted_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user}) 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 end