forked from AkkomaGang/akkoma
MastoAPI: Fix date in account view.
This commit is contained in:
parent
eb248cf8aa
commit
d659fcc195
4 changed files with 23 additions and 7 deletions
|
@ -119,6 +119,23 @@ def date_to_asctime(date) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def to_masto_date(%NaiveDateTime{} = date) do
|
||||||
|
date
|
||||||
|
|> NaiveDateTime.to_iso8601
|
||||||
|
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_masto_date(date) do
|
||||||
|
try do
|
||||||
|
date
|
||||||
|
|> NaiveDateTime.from_iso8601!
|
||||||
|
|> NaiveDateTime.to_iso8601
|
||||||
|
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
|
||||||
|
rescue
|
||||||
|
_e -> ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
defp shortname(name) do
|
defp shortname(name) do
|
||||||
if String.length(name) < 30 do
|
if String.length(name) < 30 do
|
||||||
name
|
name
|
||||||
|
|
|
@ -2,6 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|
||||||
use Pleroma.Web, :view
|
use Pleroma.Web, :view
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
alias Pleroma.Web.MastodonAPI.AccountView
|
alias Pleroma.Web.MastodonAPI.AccountView
|
||||||
|
alias Pleroma.Web.CommonAPI.Utils
|
||||||
|
|
||||||
defp image_url(%{"url" => [ %{ "href" => href } | t ]}), do: href
|
defp image_url(%{"url" => [ %{ "href" => href } | t ]}), do: href
|
||||||
defp image_url(_), do: nil
|
defp image_url(_), do: nil
|
||||||
|
@ -22,7 +23,7 @@ def render("account.json", %{user: user}) do
|
||||||
acct: user.nickname,
|
acct: user.nickname,
|
||||||
display_name: user.name,
|
display_name: user.name,
|
||||||
locked: false,
|
locked: false,
|
||||||
created_at: user.inserted_at,
|
created_at: Utils.to_masto_date(user.inserted_at),
|
||||||
followers_count: user_info.follower_count,
|
followers_count: user_info.follower_count,
|
||||||
following_count: user_info.following_count,
|
following_count: user_info.following_count,
|
||||||
statuses_count: user_info.note_count,
|
statuses_count: user_info.note_count,
|
||||||
|
|
|
@ -2,6 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
|
||||||
use Pleroma.Web, :view
|
use Pleroma.Web, :view
|
||||||
alias Pleroma.Web.MastodonAPI.{AccountView, StatusView}
|
alias Pleroma.Web.MastodonAPI.{AccountView, StatusView}
|
||||||
alias Pleroma.{User, Activity}
|
alias Pleroma.{User, Activity}
|
||||||
|
alias Pleroma.Web.CommonAPI.Utils
|
||||||
|
|
||||||
def render("index.json", opts) do
|
def render("index.json", opts) do
|
||||||
render_many(opts.activities, StatusView, "status.json", opts)
|
render_many(opts.activities, StatusView, "status.json", opts)
|
||||||
|
@ -26,10 +27,7 @@ def render("status.json", %{activity: %{data: %{"object" => object}} = activity}
|
||||||
|
|
||||||
attachments = render_many(object["attachment"] || [], StatusView, "attachment.json", as: :attachment)
|
attachments = render_many(object["attachment"] || [], StatusView, "attachment.json", as: :attachment)
|
||||||
|
|
||||||
created_at = (object["published"] || "")
|
created_at = Utils.to_masto_date(object["published"])
|
||||||
|> NaiveDateTime.from_iso8601!
|
|
||||||
|> NaiveDateTime.to_iso8601
|
|
||||||
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
|
|
||||||
|
|
||||||
# TODO: Add cached version.
|
# TODO: Add cached version.
|
||||||
reply_to = Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
|
reply_to = Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
|
||||||
|
|
|
@ -5,7 +5,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
|
|
||||||
test "Represent a user account" do
|
test "Represent a user account" do
|
||||||
user = insert(:user, %{info: %{"note_count" => 5, "follower_count" => 3}, nickname: "shp@shitposter.club"})
|
user = insert(:user, %{info: %{"note_count" => 5, "follower_count" => 3}, nickname: "shp@shitposter.club", inserted_at: ~N[2017-08-15 15:47:06.597036]})
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
id: user.id,
|
id: user.id,
|
||||||
|
@ -13,7 +13,7 @@ test "Represent a user account" do
|
||||||
acct: user.nickname,
|
acct: user.nickname,
|
||||||
display_name: user.name,
|
display_name: user.name,
|
||||||
locked: false,
|
locked: false,
|
||||||
created_at: user.inserted_at,
|
created_at: "2017-08-15T15:47:06.000Z",
|
||||||
followers_count: 3,
|
followers_count: 3,
|
||||||
following_count: 0,
|
following_count: 0,
|
||||||
statuses_count: 5,
|
statuses_count: 5,
|
||||||
|
|
Loading…
Reference in a new issue