Add attachment link to posts.
[akkoma] / lib / pleroma / web / twitter_api / twitter_api.ex
index e6f5fc90645807c61cc9a2b903a167ebb6120c5e..7656d4d33bdefcb10c76690b7c972b2329743968 100644 (file)
@@ -32,11 +32,23 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
 
   def get_replied_to_activity(_), do: nil
 
+  def add_attachments(text, attachments) do
+    attachment_text = Enum.map(attachments, fn
+      (%{"url" => [%{"href" => href} | _]}) ->
+        "<a href='#{href}'>#{href}</a>"
+      _ -> ""
+    end)
+    Enum.join([text | attachment_text], "<br>")
+    end
+
   def create_status(user = %User{}, data = %{"status" => status}) do
     attachments = attachments_from_ids(data["media_ids"])
     context = ActivityPub.generate_context_id
     mentions = parse_mentions(status)
-    content_html = format_input(status, mentions)
+    content_html = status
+    |> format_input(mentions)
+    |> add_attachments(attachments)
+
     to = to_for_user_and_mentions(user, mentions)
     date = make_date()
 
@@ -84,6 +96,12 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
   end
 
   def fetch_public_statuses(user, opts \\ %{}) do
+    opts = Map.put(opts, "local_only", true)
+    ActivityPub.fetch_public_activities(opts)
+    |> activities_to_statuses(%{for: user})
+  end
+
+  def fetch_public_and_external_statuses(user, opts \\ %{}) do
     ActivityPub.fetch_public_activities(opts)
     |> activities_to_statuses(%{for: user})
   end