Salmon: generate private key with native crypto if available.
[akkoma] / lib / pleroma / web / common_api / common_api.ex
index c9822dc2d333056d0abccb1b975b0997615e3318..dc94e53771d75990f32024a80c15a54d96c012f3 100644 (file)
@@ -16,7 +16,6 @@ defmodule Pleroma.Web.CommonAPI do
 
   def repeat(id_or_ap_id, user) do
     with %Activity{} = activity <- get_by_id_or_ap_id(id_or_ap_id),
-         false <- activity.data["actor"] == user.ap_id,
          object <- Object.get_by_ap_id(activity.data["object"]["id"]) do
       ActivityPub.announce(user, object)
     else
@@ -56,10 +55,12 @@ defmodule Pleroma.Web.CommonAPI do
          mentions <- Formatter.parse_mentions(status),
          inReplyTo <- get_replied_to_activity(data["in_reply_to_status_id"]),
          to <- to_for_user_and_mentions(user, mentions, inReplyTo),
-         tags <- Formatter.parse_tags(status),
+         tags <- Formatter.parse_tags(status, data),
          content_html <- make_content_html(status, mentions, attachments, tags),
          context <- make_context(inReplyTo),
-         object <- make_note_data(user.ap_id, to, context, content_html, attachments, inReplyTo, tags) do
+         cw <- data["spoiler_text"],
+         object <- make_note_data(user.ap_id, to, context, content_html, attachments, inReplyTo, tags, cw),
+         object <- Map.put(object, "emoji", Formatter.get_emoji(status) |> Enum.reduce(%{}, fn({name, file}, acc) -> Map.put(acc, name, "#{Pleroma.Web.Endpoint.static_url}#{file}") end)) do
       res = ActivityPub.create(to, user, context, object)
       User.increase_note_count(user)
       res