fix attribute error on Source and Article class

This commit is contained in:
Corban-Lee Jones 2023-12-15 17:49:02 +00:00
parent 56224d8d20
commit 85b6f118bc

View File

@ -21,19 +21,19 @@ class Feeds(Enum):
@dataclass
class Source:
name: str
url: str
icon_url: str
name: str | None
url: str | None
icon_url: str | None
feed: FeedParserDict
@classmethod
def from_parsed(cls, feed:FeedParserDict):
# print(json.dumps(feed, indent=8))
return cls(
name=feed.channel.title,
url=feed.channel.link,
icon_url=feed.feed.image.href,
name=feed.get("channel", {}).get("title"),
url=feed.get("channel", {}).get("link"),
icon_url=feed.get("feed", {}).get("image", {}).get("href"),
feed=feed
)
@ -44,10 +44,10 @@ class Source:
@dataclass
class Article:
title: str
description: str
url: str
published: datetime
title: str | None
description: str | None
url: str | None
published: datetime | None
author: str | None
@classmethod
@ -55,12 +55,15 @@ class Article:
entry = feed.entries[0]
# log.debug(json.dumps(entry, indent=8))
published_parsed = entry.get("published_parsed")
published = datetime(*entry.published_parsed[0:-2]) if published_parsed else None
return cls(
title=entry.title,
description=entry.description,
url=entry.link,
published=datetime(*entry.published_parsed[0:-2]),
author = entry.get("author", None)
title=entry.get("title"),
description=entry.get("description"),
url=entry.get("link"),
published=published,
author = entry.get("author")
)
async def get_thumbnail_url(self):
@ -78,12 +81,12 @@ class Article:
return image_element.get("content") if image_element else None
def get_source(feed: Feeds) -> Source:
def get_source(rss_url: str) -> Source:
"""
"""
parsed_feed = parse("https://gitea.corbz.dev/corbz/BBC-News-Bot/rss/branch/main/src/extensions/news.py")
parsed_feed = parse(rss_url)
return Source.from_parsed(parsed_feed)