fix attribute error on Source and Article class
This commit is contained in:
parent
56224d8d20
commit
85b6f118bc
39
src/feed.py
39
src/feed.py
@ -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)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user