Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F85829847
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
View Options
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
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Nov 1, 12:50 AM (15 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1802012
Default Alt Text
(2 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline