diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-03-21 17:53:20 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-03-21 17:53:20 +0100 |
commit | 9a8850eb9ec9eba9350fcb6aadf70fd966623c94 (patch) | |
tree | 12bef929051c5e998107cbae06e6216aa634bf58 /lib/pleroma/web/twitter_api/twitter_api.ex | |
parent | 8de523c8aec19e999334753b5a982fff00d1f44c (diff) | |
download | pleroma-9a8850eb9ec9eba9350fcb6aadf70fd966623c94.tar.gz |
Basic status creation and retrieval.
Diffstat (limited to 'lib/pleroma/web/twitter_api/twitter_api.ex')
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex new file mode 100644 index 000000000..16e05ded3 --- /dev/null +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -0,0 +1,33 @@ +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 = %{ + type: "Create", + to: [ + User.ap_followers(user), + "https://www.w3.org/ns/activitystreams#Public" + ], + actor: User.ap_id(user), + object: %{ + type: "Note", + content: data.status + } + } + + ActivityPub.insert(activity) + end + + def fetch_public_statuses do + activities = ActivityPub.fetch_public_activities + + 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 |