mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Update Saechsische Zeitung
This commit is contained in:
parent
4ae5fe59c0
commit
2c148fe3f5
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import re
|
|
||||||
import json
|
import json
|
||||||
|
import re
|
||||||
|
|
||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
##
|
##
|
||||||
## Written: March 2020
|
## Written: March 2020
|
||||||
## Version: 1.1
|
## Version: 1.2
|
||||||
## Last update: 2023-03-31
|
## Last update: 2024-09-26
|
||||||
##
|
##
|
||||||
from __future__ import absolute_import, division, print_function, unicode_literals
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
||||||
|
|
||||||
@ -13,17 +13,24 @@ Fetch RSS-Feeds from saechsische.de
|
|||||||
from calibre.web.feeds.news import BasicNewsRecipe
|
from calibre.web.feeds.news import BasicNewsRecipe
|
||||||
|
|
||||||
|
|
||||||
def classes(classes):
|
def prefixed_classes(classes):
|
||||||
q = frozenset(classes.split(' '))
|
q = frozenset(classes.split(' '))
|
||||||
return dict(attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)})
|
|
||||||
|
|
||||||
|
def matcher(x):
|
||||||
|
if x:
|
||||||
|
for candidate in frozenset(x.split()):
|
||||||
|
for x in q:
|
||||||
|
if candidate.startswith(x):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
return {'attrs': {'class': matcher}}
|
||||||
|
|
||||||
|
|
||||||
class Saechsische(BasicNewsRecipe):
|
class Saechsische(BasicNewsRecipe):
|
||||||
title = 'Saechsische Zeitung'
|
title = 'Saechsische Zeitung'
|
||||||
__author__ = 'epubli'
|
__author__ = 'epubli'
|
||||||
description = 'RSS-Feeds von saechsische.de'
|
description = 'RSS-Feeds von saechsische.de'
|
||||||
publisher = 'SZ'
|
publisher = 'Saechsische Zeitung'
|
||||||
publication_type = 'newspaper'
|
publication_type = 'newspaper'
|
||||||
language = 'de'
|
language = 'de'
|
||||||
encoding = 'UTF-8'
|
encoding = 'UTF-8'
|
||||||
@ -38,89 +45,192 @@ class Saechsische(BasicNewsRecipe):
|
|||||||
delay = 1
|
delay = 1
|
||||||
ignore_duplicate_articles = {'title', 'url'}
|
ignore_duplicate_articles = {'title', 'url'}
|
||||||
|
|
||||||
cover_url = 'https://www.saechsische.de/img/logo.svg'
|
cover_url = 'https://www.saechsische.de/pf/resources/wordmarks/Saez.svg?d=693'
|
||||||
|
|
||||||
feeds = [
|
keep_only_tags = [
|
||||||
('Dresden', 'feed://www.saechsische.de/rss/dresden'),
|
prefixed_classes('ArticleHeadstyled__ArticleHeader- Articlestyled__ArticleBodyWrapper- ArticleImagestyled__ArticleImage-')
|
||||||
('Sachsen', 'feed://saechsische.de/rss/sachsen'),
|
]
|
||||||
('Deutschland und Welt', 'feed://www.saechsische.de/rss/deutschland-welt'),
|
remove_tags = [
|
||||||
('Politik', 'feed://www.saechsische.de/rss/politik'),
|
prefixed_classes(
|
||||||
('Wirtschaft', 'feed://www.saechsische.de/rss/wirtschaft'),
|
'CallToActionBasestyled__Container- ArticleDetailsstyled__ArticleDetailsToggleCheckbox-'
|
||||||
('Feuilleton', 'feed://www.saechsische.de/rss/feuilleton'),
|
' ArticleDetailsstyled__ArticleDetailsToggleButton- ArticleImagestyled__ArticleImageCheckbox-'
|
||||||
('Sport', 'feed://www.saechsische.de/rss/sport'),
|
' Adstyled__AdWrapper- MoreItemsBlockstyled__TitleWrapper- MoreItemsBlockstyled__MoreItemsBlock-'
|
||||||
#('Dynamo', 'feed://www.saechsische.de/rss/dynamo'),
|
' ContentTeaserstyled__Article- Buttonstyled__Button-'),
|
||||||
#('Bautzen', 'feed://www.saechsische.de/rss/bautzen'),
|
dict(name='source')
|
||||||
#('Bischofswerda', 'feed://www.saechsische.de/rss/bischofswerda'),
|
|
||||||
#('Dippoldiswalde', 'feed://www.saechsische.de/rss/dippoldiswalde'),
|
|
||||||
#('Döbeln', 'feed://www.saechsische.de/rss/doebeln'),
|
|
||||||
#('Freital', 'feed://www.saechsische.de/rss/freital'),
|
|
||||||
#('Großenhain', 'feed://www.saechsische.de/rss/grossenhain'),
|
|
||||||
#('Görlitz', 'feed://www.saechsische.de/rss/goerlitz'),
|
|
||||||
#('Kamenz', 'feed://www.saechsische.de/rss/kamenz'),
|
|
||||||
#('Löbau', 'feed://www.saechsische.de/rss/loebau'),
|
|
||||||
#('Meißen', 'feed://www.saechsische.de/rss/meissen'),
|
|
||||||
#('Niesky', 'feed://www.saechsische.de/rss/niesky'),
|
|
||||||
#('Pirna', 'feed://www.saechsische.de/rss/pirna'),
|
|
||||||
#('Radeberg', 'feed://www.saechsische.de/rss/radeberg'),
|
|
||||||
#('Radebeul', 'feed://www.saechsische.de/rss/radebeul'),
|
|
||||||
#('Riesa', 'feed://www.saechsische.de/rss/riesa'),
|
|
||||||
#('Sebnitz', 'feed://www.saechsische.de/rss/sebnitz'),
|
|
||||||
#('Zittau', 'feed://www.saechsische.de/rss/zittau'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
template_css = '''
|
feeds = [
|
||||||
.article_date { color: gray; font-family: monospace;}
|
#('Alle Artikel der SZ', 'https://www.saechsische.de/arc/outboundfeeds/rss/'),
|
||||||
.article_description { text-indent: 0pt; }
|
('Stadt Dresden', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden'),
|
||||||
a.article { font-weight: bold; text-align:left; }
|
#('Altstadt', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/altstadt'),
|
||||||
a.feed { font-weight: bold; }
|
#('Blasewitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/blasewitz'),
|
||||||
.calibre_navbar { font-size: 200% !important; }
|
#('Cotta', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/cotta'),
|
||||||
'''
|
#('Klotzsche', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/klotzsche'),
|
||||||
|
#('Leuben', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/leuben'),
|
||||||
|
#('Loschwitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/loschwitz'),
|
||||||
|
#('Neustadt', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/neustadt'),
|
||||||
|
#('Pieschen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/pieschen'),
|
||||||
|
#('Plauen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/plauen'),
|
||||||
|
#('Prohlis', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/prohlis'),
|
||||||
|
#('Cossebaude', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/cossebaude'),
|
||||||
|
#('Langebrück', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/langebrueck'),
|
||||||
|
#('Gompitz/Altfranken', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/gompitz-altfranken'),
|
||||||
|
#('Weixdorf', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/weixdorf'),
|
||||||
|
#('Schönfeld-Weißig', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/dresden/schoenfeld-weissig'),
|
||||||
|
#('Landkreis Bautzen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk'),
|
||||||
|
#('Stadt Bautzen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/bautzen'),
|
||||||
|
#('Bischofswerda', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/bischofswerda'),
|
||||||
|
#('Kamenz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/kamenz'),
|
||||||
|
#('Pulsnitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/pulsnitz'),
|
||||||
|
#('Radeberg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/radeberg'),
|
||||||
|
#('Hoyerswerda', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/hoyerswerda'),
|
||||||
|
#('Bernsdorf', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/bernsdorf'),
|
||||||
|
#('Großröhrsdorf', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/grossroehrsdorf'),
|
||||||
|
#('Lauta', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/lauta'),
|
||||||
|
#('Schirgiswalde-Kirschau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/schirgiswalde-kirschau'),
|
||||||
|
#('Wittichenau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/bautzen-lk/wittichenau'),
|
||||||
|
#('Landkreis Görlitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk'),
|
||||||
|
#('Stadt Görlitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/goerlitz'),
|
||||||
|
#('Niesky', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/niesky'),
|
||||||
|
#('Löbau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/loebau'),
|
||||||
|
#('Zittau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/zittau'),
|
||||||
|
#('Ostritz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/ostritz'),
|
||||||
|
#('Rothenburg/Oberlausitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/rothenburg'),
|
||||||
|
#('Zittauer Gebirge', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/zittauer-gebirge'),
|
||||||
|
#('Vierkirchen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/vierkirchen'),
|
||||||
|
#('Bad Muskau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/bad-muskau'),
|
||||||
|
#('Weißwasser', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/weisswasser'),
|
||||||
|
#('Boxberg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/boxberg'),
|
||||||
|
#('Ebersbach-Neugersdorf', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/ebersbach-neugersdorf'),
|
||||||
|
#('Kodersdorf', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/goerlitz-lk/kodersdorf'),
|
||||||
|
#('Landkreis Sächsische Schweiz-Osterzgebirge', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge'),
|
||||||
|
#('Pirna', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/pirna'),
|
||||||
|
#('Sebnitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/sebnitz'),
|
||||||
|
#('Bad Schandau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/bad-schandau'),
|
||||||
|
#('Bad Gottleuba-Berggießhübel', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/bad-gottleuba-berggiesshuebel'),
|
||||||
|
#('Heidenau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/heidenau'),
|
||||||
|
#('Dippoldiswalde', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/dippoldiswalde'),
|
||||||
|
#('Altenberg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/altenberg'),
|
||||||
|
#('Freital', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/freital'),
|
||||||
|
#('Stolpen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/stolpen'),
|
||||||
|
#('Glashütte', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/glashuette'),
|
||||||
|
#('Wilsdruff', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/wilsdruff'),
|
||||||
|
#('Neustadt in Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/saechsische-schweiz-osterzgebirge/neustadt-in-sachsen'),
|
||||||
|
#('Landkreis Meißen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk'),
|
||||||
|
#('Meißen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/meissen'),
|
||||||
|
#('Radebeul', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/radebeul'),
|
||||||
|
#('Riesa', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/riesa'),
|
||||||
|
#('Großenhain', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/grossenhain'),
|
||||||
|
#('Nossen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/nossen'),
|
||||||
|
#('Lommatzsch', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/lommatzsch'),
|
||||||
|
#('Radeburg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/radeburg'),
|
||||||
|
#('Königsbrücker Heide', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/koenigsbruecker-heide'),
|
||||||
|
#('Weinböhla', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/weinboehla'),
|
||||||
|
#('Moritzburg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/moritzburg'),
|
||||||
|
#('Coswig', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/coswig'),
|
||||||
|
#('Gröditz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/groeditz'),
|
||||||
|
#('Klipphausen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/meissen-lk/klipphausen'),
|
||||||
|
#('Landkreis Mittelsachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen'),
|
||||||
|
#('Döbeln', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/doebeln'),
|
||||||
|
#('Freiberg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/freiberg'),
|
||||||
|
#('Mittweida', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/mittweida'),
|
||||||
|
#('Leisnig', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/leisnig'),
|
||||||
|
#('Waldheim', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/waldheim'),
|
||||||
|
#('Frankenberg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/frankenberg'),
|
||||||
|
#('Großschirma', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/grossschirma'),
|
||||||
|
#('Hainichen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/hainichen'),
|
||||||
|
#('Augustusburg', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/augustusburg'),
|
||||||
|
#('Jahnatal', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/mittelsachsen/jahnatal'),
|
||||||
|
#('Landkreis Zwickau', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/zwickau-lk'),
|
||||||
|
#('Stadt Leipzig', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/leipzig'),
|
||||||
|
#('Chemnitz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/chemnitz'),
|
||||||
|
#('Landkreis Nordsachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/nordsachsen'),
|
||||||
|
#('Landkreis Leipzig', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/leipzig-lk'),
|
||||||
|
#('Erzgebirgskreis', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/erzgebirgskreis'),
|
||||||
|
#('Annaberg-Buchholz', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/erzgebirgskreis/annaberg-buchholz'),
|
||||||
|
#('Seiffen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/erzgebirgskreis/seiffen'),
|
||||||
|
#('Vogtlandkreis', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/vogtland'),
|
||||||
|
#('Plauen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lokales/vogtland/plauen'),
|
||||||
|
#('Tschechien', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/tschechien'),
|
||||||
|
('Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/sachsen'),
|
||||||
|
#('Der Osten', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/der-osten'),
|
||||||
|
#('Politik in Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/politik/regional'),
|
||||||
|
#('Wirtschaft in Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/wirtschaft/regional'),
|
||||||
|
#('Sport in Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/sport/regional'),
|
||||||
|
#('Dynamo Dresden', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/dynamo-dresden'),
|
||||||
|
#('Outdoor in Sachsen', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/outdoor-in-sachsen'),
|
||||||
|
#('Autobahn 17 (A17)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/autobahn-17-(a17)'),
|
||||||
|
#('Autobahn 4 (A4)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/autobahn-4-(a4)'),
|
||||||
|
#('Autobahn 72 (A72)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/autobahn-72-(a72)'),
|
||||||
|
#('Autobahn 9 (A9)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/autobahn-9-(a9)'),
|
||||||
|
#('Bundesstraße 170 (B170)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/bundesstrasse-170-(b170)'),
|
||||||
|
#('Bundesstraße 178 (B178)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/bundesstrasse-178-(b178)'),
|
||||||
|
#('Bundesstraße 96 (B96)', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/bundesstrasse-96-(b96)'),
|
||||||
|
#('Erzgebirge', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/erzgebirge'),
|
||||||
|
#('Sachsen Freizeit', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/sachsen-freizeit'),
|
||||||
|
#('Sachsen Gastronomie', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/sachsen-gastronomie'),
|
||||||
|
#('Genuss und Kochen', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/genuss-und-kochen'),
|
||||||
|
#('Sächsische Schweiz', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/saechsische-schweiz'),
|
||||||
|
#('Sachsenkompass', 'https://www.saechsische.de/arc/outboundfeeds/rss/tags_slug/sachsenkompass'),
|
||||||
|
('Politik', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/politik'),
|
||||||
|
('Wirtschaft', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/wirtschaft'),
|
||||||
|
#('Sport', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/sport'),
|
||||||
|
('Panorama', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/panorama'),
|
||||||
|
#('Promis', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/promis'),
|
||||||
|
#('Reise', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/reise'),
|
||||||
|
#('Medien & TV', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/medien'),
|
||||||
|
#('Digital', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/digital'),
|
||||||
|
#('Kultur', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/kultur'),
|
||||||
|
#('Wissen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/wissen'),
|
||||||
|
#('Familie', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/familie'),
|
||||||
|
#('Gesundheit', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/gesundheit'),
|
||||||
|
#('Lifestyle', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/lifestyle'),
|
||||||
|
#('Mobilität', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/mobilitaet'),
|
||||||
|
#('Bauen & Wohnen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/bauen-und-wohnen'),
|
||||||
|
#('Geld & Finanzen', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/geld-und-finanzen'),
|
||||||
|
#('Liebe & Partnerschaft', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/liebe-und-partnerschaft'),
|
||||||
|
#('E-Mobility', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/e-mobility'),
|
||||||
|
#('Beruf & Bildung', 'https://www.saechsische.de/arc/outboundfeeds/rss/category/beruf-und-bildung')
|
||||||
|
]
|
||||||
|
|
||||||
extra_css = '''
|
|
||||||
h2 {margin-top: 0em;}
|
|
||||||
'''
|
|
||||||
keep_only_tags = [
|
|
||||||
dict(name='article', attrs={'class':'article-detail'}),
|
|
||||||
]
|
|
||||||
|
|
||||||
remove_tags = [ classes('article-fill'),
|
|
||||||
dict(name='div', attrs={'class':'related-articles'}),
|
|
||||||
dict(name='a', attrs={'class':'article-remember-link'}),
|
|
||||||
dict(name='a', attrs={'href':'https://www.saechsische.de/dresden'}),
|
|
||||||
dict(name='a', attrs={'href':'https://www.saechsische.de/content/newsletter-lp?utm_content=dresden_kompakt'}),
|
|
||||||
dict(name='div', attrs={'class':'article-detail-socials'}),
|
|
||||||
dict(name='div', attrs={'class':'d-desktop-none'}),
|
|
||||||
dict(name='div', attrs={'class':'floating-share-icon'}),
|
|
||||||
]
|
|
||||||
|
|
||||||
def parse_feeds(self):
|
def parse_feeds(self):
|
||||||
# Call parent's method.
|
# Call parent's method.
|
||||||
feeds = BasicNewsRecipe.parse_feeds(self)
|
feeds = BasicNewsRecipe.parse_feeds(self)
|
||||||
# Loop through all feeds.
|
# Loop through all feeds.
|
||||||
for feed in feeds:
|
for feed in feeds:
|
||||||
# Loop through all articles in feed.
|
# Loop through all articles in feed.
|
||||||
for article in feed.articles[:]:
|
for article in feed.articles[:]:
|
||||||
# Remove articles with '...' in the url.
|
# Remove articles with '...' in the url.
|
||||||
if '/anzeige/' in article.url:
|
if '/anzeige/' in article.url:
|
||||||
print('Removing:',article.title)
|
print('Removing:',article.title)
|
||||||
feed.articles.remove(article)
|
feed.articles.remove(article)
|
||||||
elif 'newsletter-dresden' in article.url:
|
# Remove articles with '...' in the title.
|
||||||
print('Removing:',article.title)
|
elif 'Liveticker' in article.title:
|
||||||
feed.articles.remove(article)
|
print('Removing:',article.title)
|
||||||
# Remove articles with '...' in the title.
|
feed.articles.remove(article)
|
||||||
elif 'Newsblog' in article.title:
|
elif 'Liveblog' in article.title:
|
||||||
print('Removing:',article.title)
|
print('Removing:',article.title)
|
||||||
feed.articles.remove(article)
|
feed.articles.remove(article)
|
||||||
elif 'Podcast' in article.title:
|
elif 'Newsblog' in article.title:
|
||||||
print('Removing:',article.title)
|
print('Removing:',article.title)
|
||||||
feed.articles.remove(article)
|
feed.articles.remove(article)
|
||||||
return feeds
|
elif 'Podcast' in article.title:
|
||||||
|
print('Removing:',article.title)
|
||||||
|
feed.articles.remove(article)
|
||||||
|
|
||||||
|
return feeds
|
||||||
|
|
||||||
def preprocess_raw_html(self, raw, url):
|
def preprocess_raw_html(self, raw, url):
|
||||||
# remove Newsblogs, articles requiring login and advertisements
|
# remove Newsblogs, articles requiring login and advertisements
|
||||||
unwanted_article_keywords = ['unser Newsblog', 'Zum Login', '00:00 Uhr',]
|
unwantedtag='ArticleHeadstyled__ArticleHeadPaidIconContainer'
|
||||||
for keyword in unwanted_article_keywords:
|
if unwantedtag in raw:
|
||||||
if keyword in raw:
|
print('Skipping unwanted article with tag:',unwantedtag)
|
||||||
print('Skipping unwanted article with keyword(s):',keyword)
|
self.abort_article('Skipping unwanted article')
|
||||||
self.abort_article('Skipping unwanted article')
|
|
||||||
return raw
|
unwanted_article_keywords = ['Zum Login']
|
||||||
|
for keyword in unwanted_article_keywords:
|
||||||
|
if keyword in raw:
|
||||||
|
print('Skipping unwanted article with keyword(s):',keyword)
|
||||||
|
#self.abort_article('Skipping unwanted article')
|
||||||
|
return raw
|
||||||
|
Loading…
x
Reference in New Issue
Block a user