diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/activity_representer.ex | 19 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 9 |
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index 6a5304049..ed8655905 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -4,6 +4,25 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do alias Pleroma.Activity + def to_map(%Activity{data: %{"type" => "Like"}} = activity, %{user: user, liked_activity: liked_activity} = opts) do + created_at = get_in(activity.data, ["published"]) + |> date_to_asctime + + text = "#{user.nickname} favorited a status." + + %{ + "id" => activity.id, + "user" => UserRepresenter.to_map(user, opts), + "statusnet_html" => text, # TODO: add summary + "text" => text, + "is_local" => true, + "is_post_verb" => false, + "uri" => "tag:#{activity.data["id"]}:objectType=Favourite", + "created_at" => created_at, + "in_reply_to_status_id" => liked_activity.id, + } + end + def to_map(%Activity{data: %{"type" => "Follow"}} = activity, %{user: user} = opts) do created_at = get_in(activity.data, ["published"]) |> date_to_asctime diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 2679397d9..33ddebbc1 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -192,6 +192,15 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do end) end + # For likes, fetch the liked activity, too. + defp activity_to_status(%Activity{data: %{"type" => "Like"}} = activity, opts) do + actor = get_in(activity.data, ["actor"]) + user = Repo.get_by!(User, ap_id: actor) + [liked_activity] = Activity.all_by_object_ap_id(activity.data["object"]) + + ActivityRepresenter.to_map(activity, Map.merge(opts, %{user: user, liked_activity: liked_activity})) + end + defp activity_to_status(activity, opts) do actor = get_in(activity.data, ["actor"]) user = Repo.get_by!(User, ap_id: actor) |