diff options
author | makefu <github@syntax-fehler.de> | 2020-03-31 22:23:38 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2020-03-31 22:23:38 +0200 |
commit | e4942fdab9a43712d56b38dbdb8421d38d7743df (patch) | |
tree | f45314001e9e80bcf9ca1d6ec22126db0907e751 /ebknotify/feed.py | |
parent | b9471e7b0576dfbb1157c639c4a34b243f9dd61e (diff) |
ebknotify: add feed
Diffstat (limited to 'ebknotify/feed.py')
-rw-r--r-- | ebknotify/feed.py | 43 |
1 files changed, 43 insertions, 0 deletions
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''' + <a href="{item['notify']['url']}"> + <img src="{item['notify']['image']}" /> + </a> + <div> + {item['description']['value']} + </div> + ''',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) |