diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2023-09-11 23:22:55 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2023-09-11 23:22:55 +0300 |
| commit | 364e1c5a799615a19a93af5df9dc0c7bbe3cb08b (patch) | |
| tree | f85036a318b229095429e87c463c1ee7640cc5f0 /plugins/FeedSinkPlugin.py | |
| parent | 8430864a0f4160fe8a5074c5cdd1ef2ba49bdf53 (diff) | |
Add last build date
Diffstat (limited to 'plugins/FeedSinkPlugin.py')
| -rw-r--r-- | plugins/FeedSinkPlugin.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/plugins/FeedSinkPlugin.py b/plugins/FeedSinkPlugin.py index 6785a28..09eb572 100644 --- a/plugins/FeedSinkPlugin.py +++ b/plugins/FeedSinkPlugin.py @@ -1,3 +1,4 @@ +from datetime import datetime from typing import Any import xml.etree.ElementTree as ET @@ -37,15 +38,6 @@ class Plugin(PluginInterface): description = ET.SubElement(channel, "description") description.text = self.feed_description - # TODO favicons - # <image> - # <link>https://www.aaniwalli.fi/</link> - # <url> - # https://www.google.com/s2/favicons?domain=https://www.aaniwalli.fi - # </url> - # <title>Ääniwalli</title> - # </image> - if favicon_url is not None: favicon_image_elem = ET.SubElement(channel, "image") favicon_link_elem = ET.SubElement(favicon_image_elem, "link") @@ -55,6 +47,13 @@ class Plugin(PluginInterface): favicon_title_elem = ET.SubElement(favicon_image_elem, "title") favicon_title_elem.text = self.feed_title + generator_elem = ET.SubElement(channel, "generator") + generator_elem.text = "https://github.com/jantuomi/aggro" + + last_build_date_elem = ET.SubElement(channel, "lastBuildDate") + now = datetime.now() + last_build_date_elem.text = now.strftime("%a, %d %b %Y %H:%M:%S +0000") + for item in items: item_elem = ET.SubElement(channel, "item") if item.title is not None: @@ -104,7 +103,11 @@ class Plugin(PluginInterface): }, ) - return ET.tostring(rss, "unicode") + return { + "feed_id": self.feed_id, + "feed_xml": ET.tostring(rss, "unicode"), + "feed_last_build_date": last_build_date_elem.text, + } def process(self, source_id: str | None, items: list[Item]) -> list[Item]: print(f"[FeedSinkPlugin#{self.id}] process called, n={len(items)}") @@ -117,6 +120,6 @@ class Plugin(PluginInterface): ret = self.build_xml(items) Q = Query() - database_manager.feeds.upsert({"feed_id": self.feed_id, "feed_xml": ret}, Q.feed_id == self.feed_id) # type: ignore + database_manager.feeds.upsert(ret, Q.feed_id == self.feed_id) # type: ignore print(f"[FeedSinkPlugin#{self.id}] processed") return [] |
