From e4942fdab9a43712d56b38dbdb8421d38d7743df Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 31 Mar 2020 22:23:38 +0200 Subject: ebknotify: add feed --- ebknotify/feed.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ebknotify/feed.py (limited to 'ebknotify/feed.py') diff --git a/ebknotify/feed.py b/ebknotify/feed.py new file mode 100644 index 0000000..ce0e4a2 --- /dev/null +++ b/ebknotify/feed.py @@ -0,0 +1,43 @@ +from feedgen.feed import FeedGenerator + +class Feed(FeedGenerator): + def __init__(self,ident='root'): + super().__init__() + super().add_entry + self.ident = ident + self.id(f'http://ebk.euer.krebsco.de/{ident}') + self.title(f'Ebay Kleinanzeigen Feed {ident}') + self.author({'name':'Felix Richter', 'email': 'ebk-notify@syntax-fehler.de'}) + self.link( href=f'http://ebk.euer.krebsco.de/{ident}.atom', rel='self' ) + self.subtitle(f'Results for ebay kleinanzeingen for identity {ident}') + self.language('de') + + def load_cache(self,cache) -> None: + for item in cache.store.values(): + print(item) + fe = self.add_entry() + available = 'available' if item['notify']['seen'] else 'sold' + fe.id(f"{item['notify']['url']}#{available}") + fe.category({'term':item['category']['localized-name']['value']}) + fe.link({'href':item['notify']['url'],'title':'Link to item'}) + fe.pubDate(item['notify']['creation']) + fe.title(f"{item['title']['value']} ({available})") + fe.content(f''' + + + +
+ {item['description']['value']} +
+ ''',type='CDATA') + + def add_article(self,entry) -> None: + pass + + def to_atom(self) -> str: + return self.atom_str(pretty=True) + + def to_atom_file(self,filename=None) -> None: + if not filename: + filename = f'{self.ident}.atom' + self.atom_file(filename) -- cgit v1.2.3