From b502d7981c5dec762f12829a8763e18b03ae445d Mon Sep 17 00:00:00 2001 From: dtluna Date: Wed, 5 Apr 2017 02:04:54 +0300 Subject: [PATCH] Add Follow Activity representer --- .../representers/activity_representer.ex | 14 ++++++++++++++ lib/pleroma/web/twitter_api/twitter_api.ex | 13 ++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex index 32c6a48e9..5fe0df359 100644 --- a/lib/pleroma/web/twitter_api/representers/activity_representer.ex +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -3,6 +3,20 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ObjectRepresenter} alias Pleroma.Activity + def to_map(%Activity{data: %{"type" => "Follow"}} = activity, %{user: user} = opts) do + %{ + "id" => activity.id, + "user" => UserRepresenter.to_map(user, opts), + "attentions" => [], + "statusnet_html" => "", # TODO: add summary + "text" => "", + "is_local" => true, + "is_post_verb" => false, + "created_at" => get_in(activity.data, ["published"]), + "in_reply_to_status_id" => nil, + } + end + def to_map(%Activity{} = activity, %{user: user} = opts) do content = get_in(activity.data, ["object", "content"]) published = get_in(activity.data, ["object", "published"]) diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index e1b6f2487..932bef5ef 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -6,8 +6,6 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do import Ecto.Query def create_status(user = %User{}, data = %{}) do - date = DateTime.utc_now() |> DateTime.to_iso8601 - attachments = Enum.map(data["media_ids"] || [], fn (media_id) -> Repo.get(Object, media_id).data end) @@ -35,11 +33,11 @@ def create_status(user = %User{}, data = %{}) do "type" => "Note", "to" => to, "content" => content_html, - "published" => date, + "published" => make_date, "context" => context, "attachment" => attachments }, - "published" => date, + "published" => make_date, "context" => context } @@ -107,7 +105,8 @@ def follow(%User{} = follower, followed_id) do { :ok, activity } <- ActivityPub.insert(%{ "type" => "Follow", "actor" => follower.ap_id, - "object" => followed.ap_id + "object" => followed.ap_id, + "published" => make_date }) do { :ok, follower, followed, activity } @@ -183,4 +182,8 @@ defp activity_to_status(activity, opts) do mentioned_users = Repo.all(from user in User, where: user.ap_id in ^activity.data["to"]) ActivityRepresenter.to_map(activity, Map.merge(opts, %{user: user, mentioned: mentioned_users})) end + + defp make_date do + DateTime.utc_now() |> DateTime.to_iso8601 + end end