diff options
Diffstat (limited to 'lib/pleroma/web/twitter_api')
-rw-r--r-- | lib/pleroma/web/twitter_api/representers/activity_representer.ex | 17 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 33 |
2 files changed, 50 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/representers/activity_representer.ex b/lib/pleroma/web/twitter_api/representers/activity_representer.ex new file mode 100644 index 000000000..32871c0de --- /dev/null +++ b/lib/pleroma/web/twitter_api/representers/activity_representer.ex @@ -0,0 +1,17 @@ +defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do + use Pleroma.Web.TwitterAPI.Representers.BaseRepresenter + alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter + + def to_map(activity, %{user: user}) do + content = get_in(activity.data, ["object", "content"]) + %{ + "id" => activity.id, + "user" => UserRepresenter.to_map(user), + "attentions" => [], + "statusnet_html" => content, + "text" => content, + "is_local" => true, + "is_post_verb" => true + } + end +end 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 |