summaryrefslogtreecommitdiff
path: root/components/videos.py
diff options
context:
space:
mode:
Diffstat (limited to 'components/videos.py')
-rw-r--r--components/videos.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/components/videos.py b/components/videos.py
new file mode 100644
index 0000000..5b2d644
--- /dev/null
+++ b/components/videos.py
@@ -0,0 +1,27 @@
+from typing import NamedTuple, Any, Self
+from datetime import datetime
+
+class VideoTuple(NamedTuple):
+ id: str
+ link: str
+ title: str
+ author: str
+ author_channel: str
+ published: datetime
+ updated: datetime
+ thumbnail: str
+ summary: str
+
+ @classmethod
+ def from_rss_entry(cls, entry: Any) -> Self:
+ return cls(
+ id = entry.id,
+ link = entry.link,
+ title = entry.title,
+ author = entry.author_detail.name,
+ author_channel = entry.author_detail.href,
+ published = datetime.fromisoformat(entry.published),
+ updated = datetime.fromisoformat(entry.updated),
+ thumbnail = entry.media_thumbnail[0]["url"],
+ summary = entry.summary,
+ )