Page MenuHomePhorge

No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/lib/pleroma/web/feed/feed_view.ex b/lib/pleroma/web/feed/feed_view.ex
index ddef69782..8944a9e5b 100644
--- a/lib/pleroma/web/feed/feed_view.ex
+++ b/lib/pleroma/web/feed/feed_view.ex
@@ -56,6 +56,8 @@ defmodule Pleroma.Web.Feed.FeedView do
defp stored_at(%{inserted_at: %NaiveDateTime{} = inserted_at}),
do: inserted_at |> DateTime.from_naive!("Etc/UTC") |> DateTime.to_iso8601()
+ defp stored_at(_activity), do: nil
+
def most_recent_update(activities) do
with %{updated_at: updated_at} <- List.first(activities) do
to_rfc3339(updated_at)
@@ -319,7 +321,9 @@ defmodule Pleroma.Web.Feed.FeedView do
|> safe_to_string()
end
- @spec to_rfc3339(String.t() | NaiveDateTime.t()) :: String.t()
+ @spec to_rfc3339(String.t() | NaiveDateTime.t() | nil) :: String.t()
+ def to_rfc3339(nil), do: ""
+
def to_rfc3339(date) when is_binary(date) do
date
|> Timex.parse!("{ISO:Extended}")
@@ -332,7 +336,9 @@ defmodule Pleroma.Web.Feed.FeedView do
|> Timex.format!("{RFC3339}")
end
- @spec to_rfc2822(String.t() | DateTime.t() | NaiveDateTime.t()) :: String.t()
+ @spec to_rfc2822(String.t() | DateTime.t() | NaiveDateTime.t() | nil) :: String.t()
+ def to_rfc2822(nil), do: ""
+
def to_rfc2822(datestr) when is_binary(datestr) do
datestr
|> Timex.parse!("{ISO:Extended}")
diff --git a/test/pleroma/web/feed/feed_view_test.exs b/test/pleroma/web/feed/feed_view_test.exs
index 786b6df07..a531a9c35 100644
--- a/test/pleroma/web/feed/feed_view_test.exs
+++ b/test/pleroma/web/feed/feed_view_test.exs
@@ -7,6 +7,23 @@ defmodule Pleroma.Web.Feed.FeedViewTest do
alias Pleroma.Web.Feed.FeedView
+ test "date helpers accept a missing date" do
+ assert FeedView.to_rfc3339(nil) == ""
+ assert FeedView.to_rfc2822(nil) == ""
+ end
+
+ test "prepare_activity survives an activity without an inserted_at" do
+ activity = Pleroma.Factory.insert(:note_activity)
+ object = Pleroma.Object.normalize(activity, fetch: false)
+
+ object
+ |> Ecto.Changeset.change(data: Map.delete(object.data, "published"))
+ |> Pleroma.Repo.update!()
+
+ %{data: data} = FeedView.prepare_activity(%{activity | inserted_at: nil})
+ assert data["published"] == nil
+ end
+
test "escapes fallback content" do
data = %{
"attachment" => [],

File Metadata

Mime Type
text/x-diff
Expires
Sun, Nov 1, 12:50 AM (12 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1802012
Default Alt Text
(2 KB)

Event Timeline