Add friends status fetching.

This commit is contained in:
Roger Braun 2017-03-22 16:51:20 +01:00
commit 37e443ce6c
6 changed files with 47 additions and 14 deletions

View file

@ -1,9 +1,11 @@
defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter
alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter
alias Pleroma.Activity
def to_map(activity, %{user: user}) do
def to_map(%Activity{} = activity, %{user: user}) do
content = get_in(activity.data, ["object", "content"])
published = get_in(activity.data, ["object", "published"])
%{
"id" => activity.id,
"user" => UserRepresenter.to_map(user),
@ -11,7 +13,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
"statusnet_html" => content,
"text" => content,
"is_local" => true,
"is_post_verb" => true
"is_post_verb" => true,
"created_at" => published
}
end
end

View file

@ -5,6 +5,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
def create_status(user = %User{}, data = %{}) do
date = DateTime.utc_now() |> DateTime.to_iso8601
activity = %{
"type" => "Create",
"to" => [
@ -14,16 +15,26 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
"actor" => User.ap_id(user),
"object" => %{
"type" => "Note",
"content" => data["status"]
}
"content" => data["status"],
"published" => date
},
"published" => date
}
ActivityPub.insert(activity)
end
def fetch_public_statuses(opts \\ %{}) do
activities = ActivityPub.fetch_public_activities(opts)
def fetch_friend_statuses(user, opts \\ %{}) do
ActivityPub.fetch_activities(user.following, opts)
|> activities_to_statuses
end
def fetch_public_statuses(opts \\ %{}) do
ActivityPub.fetch_public_activities(opts)
|> activities_to_statuses
end
defp activities_to_statuses(activities) do
Enum.map(activities, fn(activity) ->
actor = get_in(activity.data, ["actor"])
user = Repo.get_by!(User, ap_id: actor)