diff --git a/recipes/icons/neu_osnabrucker_zeitung.png b/recipes/icons/noz.png similarity index 100% rename from recipes/icons/neu_osnabrucker_zeitung.png rename to recipes/icons/noz.png diff --git a/recipes/neu_osnabrucker_zeitung.recipe b/recipes/neu_osnabrucker_zeitung.recipe deleted file mode 100644 index cb0327f38b..0000000000 --- a/recipes/neu_osnabrucker_zeitung.recipe +++ /dev/null @@ -1,117 +0,0 @@ -# vim:fileencoding=utf-8 -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1380105782(BasicNewsRecipe): - title = u'Neue Osnabrücker Zeitung' - __author__ = 'vo_he' - description = 'HNY 2014' - encoding = 'utf-8' - language = 'de' - remove_javascript = True - no_stylesheets = True - - oldest_article = 2 - max_articles_per_feed = 100 - cover_url = 'http://www.noz.de/apple-touch-icon-144x144-precomposed.png' - - remove_tags_before = dict(id='feedContent') - remove_tags_before = dict(id='headline') - - remove_tags_after = [dict(id='footer-start')] - remove_tags_after = [dict(name='div', attrs={'class': 'accordion-group'})] - remove_tags_after = [ - dict(name='div', attrs={'class': 'accordion accordion-two-column most-read'})] - - remove_tags = [ - dict(name='div', attrs={'id': 'ui-datepicker-div'}), - dict(name='div', attrs={'class': 'nav-second'}), - dict(name='div', attrs={'class': 'nav-first'}), - dict(name='div', attrs={'class': 'icon-print'}), - dict(name='div', attrs={'class': 'social-button'}), - dict(name='div', attrs={'class': 'social-media-bar'}), - dict(name='div', attrs={'class': 'pull-right'}), - dict(name='div', attrs={'class': 'btn btn-primary flat-button'}), - dict(name='div', attrs={'class': 'carousel-wrapper'}), - dict(name='a', attrs={ - 'class': 'right-content merchandising hidden-tablet'}), - dict(name='div', attrs={'class': 'border-circle pull-left'}), - dict(name='div', attrs={ - 'class': 'row show-grid general-infoimageContainer '}), - dict(name='div', attrs={'class': 'location-list'}), - dict(name='div', attrs={'class': 'block'}), - dict(name='div', attrs={'class': 'furtherGalleries largeSpaceTop'}), - dict(name='div', attrs={'class': 'accordion-group'}), - dict(name='div', attrs={'class': 'accordion-heading'}), - dict(name='div', attrs={'class': 'accordion-toggle'}), - dict(name='div', attrs={'class': 'accordion-inner'}) - ] - - feeds = [(u'Melle', u'http://www.noz.de/rss/ressort/Melle'), - (u'Nordrhein Westfalen', - u'http://www.noz.de/rss/ressort/Nordrhein-Westfalen'), - (u'Niedersachsen', u'http://www.noz.de/rss/ressort/Niedersachsen'), - (u'Vermischtes', u'http://www.noz.de/rss/ressort/Vermischtes'), - (u'GutzuWissen', u'http://www.noz.de/rss/ressort/Gut%20zu%20Wissen'), - (u'Sport', u'http://www.noz.de/rss/ressort/Sport'), - (u'Kultur', u'http://www.noz.de/rss/ressort/Kultur'), - (u'Medien', u'http://www.noz.de/rss/ressort/Medien'), - (u'Belm', u'http://www.noz.de/rss/ressort/Belm'), - (u'Bissendorf', - u' [url]http://www.noz.de/rss/ressort/Bissendorf[/url]'), - (u'Osnabrueck', u'http://www.noz.de/rss/ressort/Osnabr%C3%BCck'), - (u'Bad Essen', u'http://www.noz.de/rss/ressort/Bad%20Essen'), - (u'Politik', u'http://www.noz.de/rss/ressort/Politik'), - (u'Wirtschaft', u'http://www.noz.de/rss/ressort/Wirtschaft'), - # (u'Fussball', u'http:/www.noz.de/rss/ressort/Fußball'), - # (u'VfL Osnabrueck', u'http://www.noz.de/rss/ressort/VfL%20Osnabr%C3%BCck'), - # (u'SF Lotte', u'http://www.noz.de/rss/ressort/SF%20Lotte'), - # (u'SV Meppen', u'http://www.noz.de/rss/ressort/SV%20Meppen'), - # (u'Artland Dragons', u'http://www.noz.de/rss/ressort/Artland%20Dragons'), - # (u'Panthers', u'http://www.noz.de/rss/ressort/Panthers'), - # (u'OS-Sport', u'http://www.noz.de/rss/ressort/OS-Sport'), - # (u'Emsland Sport', u'http://www.noz.de/rss/ressort/EL-Sport'), - # (u'Lingen', u'http://www.noz.de/rss/ressort/Lingen'), - # (u'Lohne', u'http://www.noz.de/rss/ressort/Lohne'), - # (u'Emsbueren', u'http://www.noz.de/rss/ressort/Emsb%C3%BCren'), - # (u'Salzbergen', u'http://www.noz.de/rss/ressort/Salzbergen'), - # (u'Spelle', u'http://www.noz.de/rss/ressort/Spelle'), - # (u'Freren', u'http://www.noz.de/rss/ressort/Freren'), - # (u'Lengerich', u'http://www.noz.de/rss/ressort/Lengerich'), - # (u'Bad Iburg', u'http://www.noz.de/rss/ressort/Bad%20Iburg'), - # (u'Bad Laer', u'http://www.noz.de/rss/ressort/Bad%20Laer'), - # (u'Bad Rothenfelde', u'http://www.noz.de/rss/ressort/Bad%20Rothenfelde'), - # (u'GMHütte', u'http://www.noz.de/rss/ressort/Georgsmarienh%C3%BCtte'), - # (u'Glandorf', u'http://www.noz.de/rss/ressort/Glandorf'), - # (u'Hagen', u'http://www.noz.de/rss/ressort/Hagen'), - # (u'Hasbergen', u'http://www.noz.de/rss/ressort/Hasbergen'), - # (u'Hilter', u'http://www.noz.de/rss/ressort/Hilter'), - # (u'Lotte', u'http://www.noz.de/rss/ressort/Lotte'), - # (u'Wallenhorst', u'http://www.noz.de/rss/ressort/Wallenhorst'), - # (u'Westerkappeln', u'http://www.noz.de/rss/ressort/Westerkappeln'), - # (u'Artland', u'http://www.noz.de/rss/ressort/Artland'), - # (u'Bersenbrück', u'http://www.noz.de/rss/ressort/Bersenbr%C3%BCck'), - # (u'Fürstenau', u'http://www.noz.de/rss/ressort/F%C3%BCrstenau'), - # (u'Neuenkirchen', u'http://www.noz.de/rss/ressort/Neuenkirchen'), - # (u'Lokalsport', u'http://www.noz.de/rss/ressort/Lokalsport%20Nordkreis'), - (u'Bramsche', u'http://www.noz.de/rss/ressort/Bramsche'), - (u'Bramsche Ortsteile', - u'http://www.noz.de/rss/ressort/Bramscher%20Ortsteile'), - # (u'Neuenkirchen Vörden', u'http://www.noz.de/rss/ressort/Neuenkirchen-V%C3%B6rden'), - # (u'Papenburg', u'http://www.noz.de/rss/ressort/Papenburg'), - # (u'Dörpen', u'http://www.noz.de/rss/ressort/D%C3%B6rpen'), - # (u'Rhede', u'http://www.noz.de/rss/ressort/Rhede'), - # (u'Lathen', u'http://www.noz.de/rss/ressort/Lathen'), - # (u'Sögel', u'http://www.noz.de/rss/ressort/S%C3%B6gel'), - # (u'Nordhümmling', u'http://www.noz.de/rss/ressort/Nordh%C3%BCmmling'), - # (u'Werlte', u'http://www.noz.de/rss/ressort/Werlte'), - # (u'Westoverledingen', u'http://www.noz.de/rss/ressort/Westoverledingen'), - # (u'Geeste', u'http://www.noz.de/rss/ressort/Geeste'), - # (u'Haren', u'http://www.noz.de/rss/ressort/Haren'), - # (u'Haselünne', u'http://www.noz.de/rss/ressort/Hasel%C3%BCnne'), - # (u'Herzlake', u'http://www.noz.de/rss/ressort/Herzlake'), - # (u'Meppen', u'http://www.noz.de/rss/ressort/Meppen'), - # (u'Twist', u'http://www.noz.de/rss/ressort/Twist'), - # (u'Bohmte', u'http://www.noz.de/rss/ressort/Bohmte'), - (u'Ostercappeln', u'http://www.noz.de/rss/ressort/Ostercappeln') - ] diff --git a/recipes/noz.recipe b/recipes/noz.recipe index 4453bc25bc..9312a626d5 100644 --- a/recipes/noz.recipe +++ b/recipes/noz.recipe @@ -1,31 +1,122 @@ +#!/usr/bin/env python2 +# vim:fileencoding=utf-8 + +from __future__ import unicode_literals, division, absolute_import, print_function + +''' +noz.de +''' + from calibre.web.feeds.news import BasicNewsRecipe -class AdvancedUserRecipe1344926684(BasicNewsRecipe): - title = u'Neue Osnabrücker Zeitung' - __author__ = 'Krittika Goyal' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False +class NeueOsnabrueckerZeitung(BasicNewsRecipe): + title = 'Neue Osnabrücker Zeitung' + __author__ = 'vo_he' + description = 'RSS-Feeds von noz.de' + publisher = 'Neue Osnabrücker Zeitung GmbH & Co. KG' + publication_type = 'newspaper' language = 'de' + + oldest_article = 7 + max_articles_per_feed = 5 + no_stylesheets = True remove_javascript = True + remove_empty_feeds = True + ignore_duplicate_articles = {'title', 'url'} - keep_only_tags = [dict(name='h1', attrs={'class': 'enlargeable'}), dict(name='h2', attrs={'class': 'enlargeable vorspann'}), dict( - name='div', attrs={'id': 'largePicContainer'}), dict(name='span', attrs={'id': 'articletext'})] - remove_tags = [dict(name='div', attrs={'id': 'retresco-title'}), dict(name='div', attrs={ - 'class': 'retresco-item s1 relative'}), dict(name='a', attrs={'class': 'medium2 largeSpaceTop icon'})] + masthead_url = 'http://www.noz.de/bundles/nozplatform/images/logos/osnabruecker-zeitung.png' - feeds = [(u'Lokales', u'http://www.noz.de/rss/Lokales'), - (u'Vermischtes', u'http://www.noz.de/rss/Vermischtes'), - (u'Politik', u'http://www.noz.de/rss/Politik'), - (u'Wirtschaft', u'http://www.noz.de/rss/Wirtschaft'), - (u'Kultur', u'http://www.noz.de/rss/Kultur'), - (u'Medien', u'http://www.noz.de/rss/Medien'), - (u'Wissenschaft', u'http://www.noz.de/rss/wissenschaft'), - (u'Sport', u'http://www.noz.de/rss/Sport'), - (u'Computer', u'http://www.noz.de/rss/Computer'), - (u'Musik', u'http://www.noz.de/rss/Musik'), - (u'Szene', u'http://www.noz.de/rss/Szene'), - (u'Niedersachsen', u'http://www.noz.de/rss/Niedersachsen'), - (u'Kino', u'http://www.noz.de/rss/Kino')] + feeds = [ + ('Politik', 'http://www.noz.de/rss/ressort/Politik'), + ('Wirtschaft', 'http://www.noz.de/rss/ressort/Wirtschaft'), + ('Kultur', 'http://www.noz.de/rss/ressort/Kultur'), + ('Medien', 'http://www.noz.de/rss/ressort/Medien'), + ('Gut zu wissen', 'http://www.noz.de/rss/ressort/Gut%20zu%20wissen'), + ('Vermischtes', 'http://www.noz.de/rss/ressort/Vermischtes'), + ('Sport', 'http://www.noz.de/rss/ressort/Sport'), + ('Fußball', 'http://www.noz.de/rss/ressort/Fu%C3%9Fball'), + ('Niedersachsen', 'http://www.noz.de/rss/ressort/Niedersachsen'), + ('Nordrhein-Westfalen', 'http://www.noz.de/rss/ressort/Nordrhein-Westfalen'), + # Neue Osnabrücker Zeitung + # ('Bad Iburg', 'http://www.noz.de/rss/ressort/Bad%20Iburg'), + # ('Bad Laer', 'http://www.noz.de/rss/ressort/Bad%20Laer'), + # ('Bad Rothenfelde', 'http://www.noz.de/rss/ressort/Bad%20Rothenfelde'), + # ('Belm', 'http://www.noz.de/rss/ressort/Belm'), + # ('Bissendorf', 'http://www.noz.de/rss/ressort/Bissendorf'), + # ('Dissen', 'http://www.noz.de/rss/ressort/Dissen'), + # ('GMHütte', 'http://www.noz.de/rss/ressort/Georgsmarienh%C3%BCtte'), + # ('Glandorf', 'http://www.noz.de/rss/ressort/Glandorf'), + # ('Hagen', 'http://www.noz.de/rss/ressort/Hagen'), + # ('Hasbergen', 'http://www.noz.de/rss/ressort/Hasbergen'), + # ('Hilter', 'http://www.noz.de/rss/ressort/Hilter'), + # ('Lotte', 'http://www.noz.de/rss/ressort/Lotte'), + # ('SF Lotte', 'http://www.noz.de/rss/ressort/SF%20Lotte'), + # ('Osnabrück', 'http://www.noz.de/rss/ressort/Osnabr%C3%BCck'), + # ('OS-Sport', 'http://www.noz.de/rss/ressort/OS-Sport'), + # ('Panthers', 'http://www.noz.de/rss/ressort/Panthers'), + # ('Wallenhorst', 'http://www.noz.de/rss/ressort/Wallenhorst'), + # ('Westerkappeln', 'http://www.noz.de/rss/ressort/Westerkappeln'), + # Bersenbrücker Kreisblatt + # ('Artland', 'http://www.noz.de/rss/ressort/Samtgemeinde%20Artland'), + # ('Artland Dragons', 'http://www.noz.de/rss/ressort/Artland%20Dragons'), + # ('Bersenbrück', 'http://www.noz.de/rss/ressort/Samtgemeinde%20Bersenbr%C3%BCck'), + # ('Fürstenau', 'http://www.noz.de/rss/ressort/Samtgemeinde%20F%C3%BCrstenau'), + # ('Neuenkirchen', 'http://www.noz.de/rss/ressort/Samtgemeinde%20Neuenkirchen'), + # Bramscher Nachrichten + # ('Bramsche', 'http://www.noz.de/rss/ressort/Bramsche'), + # ('Neuenkirchen-Vörden', 'http://www.noz.de/rss/ressort/Neuenkirchen-V%C3%B6rden'), + # Delmenhorster Kreisblatt + # ('Bremen', 'http://www.noz.de/rss/ressort/Bremen'), + # ('Delmenhorst', 'http://www.noz.de/rss/ressort/Delmenhorst'), + # ('Ganderkesee', 'http://www.noz.de/rss/ressort/Ganderkesee'), + # ('Stuhr', 'http://www.noz.de/rss/ressort/Stuhr'), + # Ems-Zeitung + # ('Dörpen', 'http://www.noz.de/rss/ressort/D%C3%B6rpen'), + # ('Lathen', 'http://www.noz.de/rss/ressort/Lathen'), + # ('Nordhümmling', 'http://www.noz.de/rss/ressort/Nordh%C3%BCmmling'), + # ('Papenburg', 'http://www.noz.de/rss/ressort/Papenburg'), + # ('Rhede', 'http://www.noz.de/rss/ressort/Rhede'), + # ('Sögel', 'http://www.noz.de/rss/ressort/S%C3%B6gel'), + # ('Werlte', 'http://www.noz.de/rss/ressort/Werlte'), + # ('Westoverledingen', 'http://www.noz.de/rss/ressort/Westoverledingen'), + # Lingener Tagespost + # ('Emsbueren', 'http://www.noz.de/rss/ressort/Emsb%C3%BCren'), + # ('Freren', 'http://www.noz.de/rss/ressort/Freren'), + # ('Lengerich', 'http://www.noz.de/rss/ressort/Lengerich'), + # ('Lingen', 'http://www.noz.de/rss/ressort/Lingen'), + # ('Lohne', 'http://www.noz.de/rss/ressort/Lohne'), + # ('Salzbergen', 'http://www.noz.de/rss/ressort/Salzbergen'), + # ('Spelle', 'http://www.noz.de/rss/ressort/Spelle'), + # Meller Kreisblatt + # ('Melle', 'http://www.noz.de/rss/ressort/Melle'), + # Wittlager Kreisblatt + # ('Bad Essen', 'http://www.noz.de/rss/ressort/Bad%20Essen'), + # ('Bohmte', 'http://www.noz.de/rss/ressort/Bohmte'), + # ('Ostercappeln', 'http://www.noz.de/rss/ressort/Ostercappeln'), + # Meppener Tagespost + # ('Geeste', 'http://www.noz.de/rss/ressort/Geeste'), + # ('Haren', 'http://www.noz.de/rss/ressort/Haren'), + # ('Haselünne', 'http://www.noz.de/rss/ressort/Hasel%C3%BCnne'), + # ('Herzlake', 'http://www.noz.de/rss/ressort/Herzlake'), + # ('Meppen', 'http://www.noz.de/rss/ressort/Meppen'), + # ('SV Meppen', 'http://www.noz.de/rss/ressort/SV%20Meppen'), + # ('Twist', 'http://www.noz.de/rss/ressort/Twist') + ] + + extra_css = ''' + h2 {margin-top: 0em} + ''' + + def print_version(self, url): + url_split = url.split('/') + return 'http://www.noz.de/socialmediabar/print/' + url_split[-2] + + def preprocess_html(self, soup): + # remove first paragraph + paragraph = soup.find('p') + if paragraph: + paragraph.extract() + else: + self.abort_article() + return soup