1 defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
3 alias Pleroma.Web.ActivityPub.ActivityPub
5 alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
7 def create_status(user = %User{}, data = %{}) do
8 date = DateTime.utc_now() |> DateTime.to_iso8601
12 User.ap_followers(user),
13 "https://www.w3.org/ns/activitystreams#Public"
15 "actor" => User.ap_id(user),
18 "content" => data["status"],
24 ActivityPub.insert(activity)
27 def fetch_friend_statuses(user, opts \\ %{}) do
28 ActivityPub.fetch_activities(user.following, opts)
29 |> activities_to_statuses
32 def fetch_public_statuses(opts \\ %{}) do
33 ActivityPub.fetch_public_activities(opts)
34 |> activities_to_statuses
37 defp activities_to_statuses(activities) do
38 Enum.map(activities, fn(activity) ->
39 actor = get_in(activity.data, ["actor"])
40 user = Repo.get_by!(User, ap_id: actor)
41 ActivityRepresenter.to_map(activity, %{user: user})