From f03a8fe4c34f6bf53b2f689767a1c3f88856d062 Mon Sep 17 00:00:00 2001 From: Johanna Larsson Date: Wed, 1 Jul 2026 20:15:41 +0100 Subject: [PATCH] Track updated at Unfortunately RSS does not have updated at really, but we can try to get it from atom:updated. --- lib/annot_at/feeds/atom.ex | 3 ++- lib/annot_at/feeds/entry.ex | 2 ++ lib/annot_at/feeds/rss.ex | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/annot_at/feeds/atom.ex b/lib/annot_at/feeds/atom.ex index 621fbf3..dc1bf81 100644 --- a/lib/annot_at/feeds/atom.ex +++ b/lib/annot_at/feeds/atom.ex @@ -141,7 +141,8 @@ defmodule AnnotAt.Feeds.Atom do defp apply_entry_field(entry, "published", text), do: %{entry | published_at: parse_date(text)} defp apply_entry_field(entry, "updated", text) do - %{entry | published_at: entry.published_at || parse_date(text)} + updated_at = parse_date(text) + %{entry | published_at: entry.published_at || updated_at, updated_at: updated_at} end defp apply_entry_field(entry, _name, _text), do: entry diff --git a/lib/annot_at/feeds/entry.ex b/lib/annot_at/feeds/entry.ex index d33f80e..ab64a50 100644 --- a/lib/annot_at/feeds/entry.ex +++ b/lib/annot_at/feeds/entry.ex @@ -11,6 +11,7 @@ defmodule AnnotAt.Feeds.Entry do :url, :title, :published_at, + :updated_at, :summary, :content, :rkey, @@ -26,6 +27,7 @@ defmodule AnnotAt.Feeds.Entry do url: String.t() | nil, title: String.t() | nil, published_at: DateTime.t() | nil, + updated_at: DateTime.t() | nil, summary: String.t() | nil, content: String.t() | nil, rkey: String.t() | nil, diff --git a/lib/annot_at/feeds/rss.ex b/lib/annot_at/feeds/rss.ex index 48191d5..7c1cdf1 100644 --- a/lib/annot_at/feeds/rss.ex +++ b/lib/annot_at/feeds/rss.ex @@ -105,6 +105,7 @@ defmodule AnnotAt.Feeds.RSS do defp apply_entry_field(entry, "description", text), do: %{entry | summary: text} defp apply_entry_field(entry, "content:encoded", text), do: %{entry | content: text} defp apply_entry_field(entry, "pubDate", text), do: %{entry | published_at: parse_date(text)} + defp apply_entry_field(entry, "atom:updated", text), do: %{entry | updated_at: parse_date(text)} defp apply_entry_field(entry, "category", text), do: %{entry | categories: [text | entry.categories]} -- 2.51.2