Add tag timelines.
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index 686ffd29de26e6d4db5f2c6c554095ff163f591d..e561b32fe929f337ab33f071cf79ff8701c2fd34 100644 (file)
@@ -26,6 +26,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
 
     attachments = render_many(object["attachment"] || [], StatusView, "attachment.json", as: :attachment)
 
+    created_at = (object["published"] || "")
+    |> NaiveDateTime.from_iso8601!
+    |> NaiveDateTime.to_iso8601
+    |> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
+
     %{
       id: activity.id,
       uri: object["id"],
@@ -35,7 +40,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       in_reply_to_account_id: nil,
       reblog: nil,
       content: HtmlSanitizeEx.basic_html(object["content"]),
-      created_at: object["published"],
+      created_at: created_at,
       reblogs_count: announcement_count,
       favourites_count: like_count,
       reblogged: !!repeated,
@@ -47,7 +52,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       media_attachments: attachments,
       mentions: mentions,
       tags: [], # fix,
-      application: nil,
+      application: %{
+        name: "Web",
+        website: nil
+      },
       language: nil
     }
   end
@@ -61,11 +69,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       true -> "unknown"
     end
 
+    << hash_id::signed-32, _rest::binary >> = :crypto.hash(:md5, href)
+
     %{
-      id: attachment["uuid"],
+      id: attachment["id"] || hash_id,
       url: href,
       remote_url: href,
       preview_url: href,
+      text_url: href,
       type: type
     }
   end