akkoma/lib/pleroma/web/twitter_api/twitter_api.ex

34 lines
894 B
Elixir
Raw Normal View History

2017-03-21 10:53:20 -06:00
defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Repo
alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
def create_status(user = %User{}, data = %{}) do
activity = %{
2017-03-21 11:17:35 -06:00
"type" => "Create",
"to" => [
2017-03-21 10:53:20 -06:00
User.ap_followers(user),
"https://www.w3.org/ns/activitystreams#Public"
],
2017-03-21 11:17:35 -06:00
"actor" => User.ap_id(user),
"object" => %{
"type" => "Note",
"content" => data["status"]
2017-03-21 10:53:20 -06:00
}
}
ActivityPub.insert(activity)
end
2017-03-21 14:09:20 -06:00
def fetch_public_statuses(opts \\ %{}) do
activities = ActivityPub.fetch_public_activities(opts)
2017-03-21 10:53:20 -06:00
Enum.map(activities, fn(activity) ->
actor = get_in(activity.data, ["actor"])
user = Repo.get_by!(User, ap_id: actor)
ActivityRepresenter.to_map(activity, %{user: user})
end)
end
end