Add basic search.
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index a172875df320f9087208ba9ac15004c273bde98b..11a435ca08628fa3325cfe61ce5c3017633ca4a7 100644 (file)
@@ -1,7 +1,8 @@
 defmodule Pleroma.Web.MastodonAPI.StatusView do
   use Pleroma.Web, :view
   alias Pleroma.Web.MastodonAPI.{AccountView, StatusView}
-  alias Pleroma.User
+  alias Pleroma.{User, Activity}
+  alias Pleroma.Web.CommonAPI.Utils
 
   def render("index.json", opts) do
     render_many(opts.activities, StatusView, "status.json", opts)
@@ -26,18 +27,19 @@ 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)
+    created_at = Utils.to_masto_date(object["published"])
+
+    # TODO: Add cached version.
+    reply_to = Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
+    reply_to_user = reply_to && User.get_cached_by_ap_id(reply_to.data["actor"])
 
     %{
       id: activity.id,
       uri: object["id"],
       url: object["external_url"],
       account: AccountView.render("account.json", %{user: user}),
-      in_reply_to_id: object["inReplyToStatusId"],
-      in_reply_to_account_id: nil,
+      in_reply_to_id: reply_to && reply_to.id,
+      in_reply_to_account_id: reply_to_user && reply_to_user.id,
       reblog: nil,
       content: HtmlSanitizeEx.basic_html(object["content"]),
       created_at: created_at,
@@ -52,7 +54,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       media_attachments: attachments,
       mentions: mentions,
       tags: [], # fix,
-      application: nil,
+      application: %{
+        name: "Web",
+        website: nil
+      },
       language: nil
     }
   end
@@ -73,6 +78,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       url: href,
       remote_url: href,
       preview_url: href,
+      text_url: href,
       type: type
     }
   end