Ruby-Cogs/rss/rss_feed.py
2025-02-19 22:02:13 -05:00

53 lines
2.3 KiB
Python

from typing import List
class RssFeed():
"""RSS feed object"""
def __init__(self, **kwargs):
super().__init__()
self.name: str = kwargs.get("name", None)
self.last_title: str = kwargs.get("last_title", None)
self.last_link: str = kwargs.get("last_link", None)
self.last_time: str = kwargs.get("last_time", None)
self.template: str = kwargs.get("template", None)
self.url: str = kwargs.get("url", None)
self.template_tags: List[str] = kwargs.get("template_tags", [])
self.is_special: List[str] = kwargs.get("is_special", [])
self.embed: bool = kwargs.get("embed", True)
self.embed_color: str = kwargs.get("embed_color", None)
self.embed_image: str = kwargs.get("embed_image", None)
self.embed_thumbnail: str = kwargs.get("embed_thumbnail", None)
def to_json(self) -> dict:
return {
"name": self.name,
"last_title": self.last_title,
"last_link": self.last_link,
"last_time": self.last_time,
"template": self.template,
"url": self.url,
"template_tags": self.template_tags,
"is_special": self.is_special,
"embed": self.embed,
"embed_color": self.embed_color,
"embed_image": self.embed_image,
"embed_thumbnail": self.embed_thumbnail,
}
@classmethod
def from_json(cls, data: dict):
return cls(
name=data["name"] if data["name"] else None,
last_title=data["last_title"] if data["last_title"] else None,
last_link=data["last_link"] if data["last_link"] else None,
last_time=data["last_time"] if data["last_time"] else None,
template=data["template"] if data["template"] else None,
url=data["url"] if data["url"] else None,
template_tags=data["template_tags"] if data["template_tags"] else [],
is_special=data["is_special"] if data["is_special"] else [],
embed=data["embed"] if data["embed"] else True,
embed_color=data["embed_color"] if data["embed_color"] else None,
embed_image=data["embed_image"] if data["embed_image"] else None,
embed_thumbnail=data["embed_thumbnail"] if data["embed_thumbnail"] else None,
)