aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/twitter_api
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-24 18:46:34 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-24 18:46:34 +0200
commitab0114fbaabd28d1e1a6961f6bfbd683f3e7fbbc (patch)
tree9a407e20ae91244fc5401f6d603bee022082d2ee /lib/pleroma/web/twitter_api
parent34d3aea92f1bce7ba51a44ef1fdc68e47822c3a4 (diff)
downloadpleroma-ab0114fbaabd28d1e1a6961f6bfbd683f3e7fbbc.tar.gz
Return salmon path for users, basic incoming salmon handling.
Diffstat (limited to 'lib/pleroma/web/twitter_api')
-rw-r--r--lib/pleroma/web/twitter_api/twitter_api.ex65
1 files changed, 31 insertions, 34 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex
index 0f84cffbd..9049b4efc 100644
--- a/lib/pleroma/web/twitter_api/twitter_api.ex
+++ b/lib/pleroma/web/twitter_api/twitter_api.ex
@@ -28,11 +28,33 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
date = make_date()
- activity = %{
- "type" => "Create",
- "to" => to,
- "actor" => user.ap_id,
- "object" => %{
+ # Wire up reply info.
+ [to, context, object, additional] =
+ with inReplyToId when not is_nil(inReplyToId) <- data["in_reply_to_status_id"],
+ inReplyTo <- Repo.get(Activity, inReplyToId),
+ context <- inReplyTo.data["context"]
+ do
+ to = to ++ [inReplyTo.data["actor"]]
+
+ object = %{
+ "type" => "Note",
+ "to" => to,
+ "content" => content_html,
+ "published" => date,
+ "context" => context,
+ "attachment" => attachments,
+ "actor" => user.ap_id,
+ "inReplyTo" => inReplyTo.data["object"]["id"],
+ "inReplyToStatusId" => inReplyToId,
+ "statusnetConversationId" => inReplyTo.data["statusnetConversationId"]
+ }
+ additional = %{
+ "statusnetConversationId" => inReplyTo.data["statusnetConversationId"]
+ }
+
+ [to, context, object, additional]
+ else _e ->
+ object = %{
"type" => "Note",
"to" => to,
"content" => content_html,
@@ -40,36 +62,11 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
"context" => context,
"attachment" => attachments,
"actor" => user.ap_id
- },
- "published" => date,
- "context" => context
- }
-
- # Wire up reply info.
- activity = with inReplyToId when not is_nil(inReplyToId) <- data["in_reply_to_status_id"],
- inReplyTo <- Repo.get(Activity, inReplyToId),
- context <- inReplyTo.data["context"]
- do
-
- to = activity["to"] ++ [inReplyTo.data["actor"]]
-
- activity
- |> put_in(["to"], to)
- |> put_in(["context"], context)
- |> put_in(["object", "context"], context)
- |> put_in(["object", "inReplyTo"], inReplyTo.data["object"]["id"])
- |> put_in(["object", "inReplyToStatusId"], inReplyToId)
- |> put_in(["statusnetConversationId"], inReplyTo.data["statusnetConversationId"])
- |> put_in(["object", "statusnetConversationId"], inReplyTo.data["statusnetConversationId"])
- else _e ->
- activity
- end
-
- with {:ok, activity} <- ActivityPub.insert(activity) do
- {:ok, activity} = add_conversation_id(activity)
- Pleroma.Web.Websub.publish(Pleroma.Web.OStatus.feed_path(user), user, activity)
- {:ok, activity}
+ }
+ [to, context, object, %{}]
end
+
+ ActivityPub.create(to, user, context, object, additional, data)
end
def fetch_friend_statuses(user, opts \\ %{}) do