50 lines
843 B
Python
50 lines
843 B
Python
|
|
import textwrap
|
|
from datetime import datetime
|
|
from dataclasses import dataclass
|
|
|
|
import feedparser
|
|
|
|
from .feed import Feeds
|
|
|
|
|
|
class Parser:
|
|
|
|
def __init__(self, feed:Feeds):
|
|
self.feed_url = feed.value
|
|
|
|
def get_latest(self):
|
|
result = feedparser.parse(self.feed_url)
|
|
entry = result.entries[0]
|
|
|
|
return Article(
|
|
title=entry.title,
|
|
description=entry.description,
|
|
content="", # textwrap.shorten(100, entry.content),
|
|
url=entry.link,
|
|
thumbnail_url=""
|
|
)
|
|
|
|
def get_source(self):
|
|
return Source()
|
|
|
|
|
|
@dataclass
|
|
class Article:
|
|
|
|
title: str
|
|
description: str
|
|
content: str
|
|
url: str
|
|
thumbnail_url: str
|
|
|
|
@dataclass
|
|
class Source:
|
|
|
|
name: str
|
|
description: str
|
|
url: str
|
|
icon_url: str
|
|
last_updated: datetime
|
|
|