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"])
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)
"type" => "Note",
"to" => to,
"content" => content_html,
- "published" => date,
+ "published" => make_date,
"context" => context,
"attachment" => attachments
},
- "published" => date,
+ "published" => make_date,
"context" => context
}
{ :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 }
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