From 66a13d29e3d30caa35479be0d4fe77afe0060d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Wed, 6 Mar 2013 20:39:17 +0100 Subject: [PATCH] new newspapers by fenuks --- recipes/dziennik_baltycki.recipe | 34 +++++++++++ recipes/dziennik_lodzki.recipe | 35 +++++++++++ recipes/dziennik_wschodni.recipe | 78 +++++++++++++++++++++++++ recipes/dziennik_zachodni.recipe | 34 +++++++++++ recipes/echo_dnia.recipe | 74 ++++++++++++++++++++++++ recipes/gazeta_krakowska.recipe | 34 +++++++++++ recipes/gazeta_lubuska.recipe | 64 +++++++++++++++++++++ recipes/gazeta_wroclawska.recipe | 34 +++++++++++ recipes/gazeta_wspolczesna.recipe | 63 ++++++++++++++++++++ recipes/gcn.recipe | 83 +++++++++++++++++++++++++++ recipes/glos_wielkopolski.recipe | 34 +++++++++++ recipes/icons/dziennik_baltycki.png | Bin 0 -> 865 bytes recipes/icons/dziennik_lodzki.png | Bin 0 -> 461 bytes recipes/icons/dziennik_wschodni.png | Bin 0 -> 414 bytes recipes/icons/dziennik_zachodni.png | Bin 0 -> 431 bytes recipes/icons/echo_dnia.png | Bin 0 -> 1163 bytes recipes/icons/gazeta_krakowska.png | Bin 0 -> 398 bytes recipes/icons/gazeta_lubuska.png | Bin 0 -> 1087 bytes recipes/icons/gazeta_wroclawska.png | Bin 0 -> 470 bytes recipes/icons/gazeta_wspolczesna.png | Bin 0 -> 921 bytes recipes/icons/gcn.png | Bin 0 -> 554 bytes recipes/icons/glos_wielkopolski.png | Bin 0 -> 446 bytes recipes/icons/kurier_lubelski.png | Bin 0 -> 483 bytes recipes/icons/kurier_poranny.png | Bin 0 -> 354 bytes recipes/icons/kurier_szczecinski.png | Bin 0 -> 1175 bytes recipes/icons/nto.png | Bin 0 -> 416 bytes recipes/icons/trojmiasto_pl.png | Bin 0 -> 537 bytes recipes/kurier_lubelski.recipe | 34 +++++++++++ recipes/kurier_poranny.recipe | 78 +++++++++++++++++++++++++ recipes/kurier_szczecinski.recipe | 27 +++++++++ recipes/nto.recipe | 63 ++++++++++++++++++++ recipes/trojmiasto_pl.recipe | 37 ++++++++++++ 32 files changed, 806 insertions(+) create mode 100644 recipes/dziennik_baltycki.recipe create mode 100644 recipes/dziennik_lodzki.recipe create mode 100644 recipes/dziennik_wschodni.recipe create mode 100644 recipes/dziennik_zachodni.recipe create mode 100644 recipes/echo_dnia.recipe create mode 100644 recipes/gazeta_krakowska.recipe create mode 100644 recipes/gazeta_lubuska.recipe create mode 100644 recipes/gazeta_wroclawska.recipe create mode 100644 recipes/gazeta_wspolczesna.recipe create mode 100644 recipes/gcn.recipe create mode 100644 recipes/glos_wielkopolski.recipe create mode 100644 recipes/icons/dziennik_baltycki.png create mode 100644 recipes/icons/dziennik_lodzki.png create mode 100644 recipes/icons/dziennik_wschodni.png create mode 100644 recipes/icons/dziennik_zachodni.png create mode 100644 recipes/icons/echo_dnia.png create mode 100644 recipes/icons/gazeta_krakowska.png create mode 100644 recipes/icons/gazeta_lubuska.png create mode 100644 recipes/icons/gazeta_wroclawska.png create mode 100644 recipes/icons/gazeta_wspolczesna.png create mode 100644 recipes/icons/gcn.png create mode 100644 recipes/icons/glos_wielkopolski.png create mode 100644 recipes/icons/kurier_lubelski.png create mode 100644 recipes/icons/kurier_poranny.png create mode 100644 recipes/icons/kurier_szczecinski.png create mode 100644 recipes/icons/nto.png create mode 100644 recipes/icons/trojmiasto_pl.png create mode 100644 recipes/kurier_lubelski.recipe create mode 100644 recipes/kurier_poranny.recipe create mode 100644 recipes/kurier_szczecinski.recipe create mode 100644 recipes/nto.recipe create mode 100644 recipes/trojmiasto_pl.recipe diff --git a/recipes/dziennik_baltycki.recipe b/recipes/dziennik_baltycki.recipe new file mode 100644 index 0000000000..3cbe3c0968 --- /dev/null +++ b/recipes/dziennik_baltycki.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class DziennikBaltycki(BasicNewsRecipe): + title = u'Dziennik Ba\u0142tycki' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Dziennik Bałtycki. Najnowsze Wiadomości Trójmiasto i Wiadomości Pomorskie. Czytaj!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/dziennikbaltycki.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds= True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Wiadomo\u015bci', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_wiadomosci.xml?201302'), (u'Sport', u'http://dziennikbaltycki.feedsportal.com/c/32980/f/533756/index.rss?201302'), (u'Rejsy', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_rejsy.xml?201302'), (u'Biznes na Pomorzu', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_biznesnapomorzu.xml?201302'), (u'GOM', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_gom.xml?201302'), (u'Opinie', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_opinie.xml?201302'), (u'Pitawal Pomorski', u'http://www.dziennikbaltycki.pl/rss/dziennikbaltycki_pitawalpomorski.xml?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/dziennik-baltycki/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) \ No newline at end of file diff --git a/recipes/dziennik_lodzki.recipe b/recipes/dziennik_lodzki.recipe new file mode 100644 index 0000000000..93a86fdaa2 --- /dev/null +++ b/recipes/dziennik_lodzki.recipe @@ -0,0 +1,35 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class DziennikLodzki(BasicNewsRecipe): + title = u'Dziennik \u0141\xf3dzki' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Dziennik Łódzki. Najnowsze Wiadomości Łódź. Czytaj Wiadomości Łódzkie!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/dzienniklodzki.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Na sygnale', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_nasygnale.xml?201302'), (u'\u0141\xf3d\u017a', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_lodz.xml?201302'), (u'Opinie', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_opinie.xml?201302'), (u'Pieni\u0105dze', u'http://dzienniklodzki.feedsportal.com/c/32980/f/533763/index.rss?201302'), (u'Kultura', u'http://dzienniklodzki.feedsportal.com/c/32980/f/533762/index.rss?201302'), (u'Sport', u'http://dzienniklodzki.feedsportal.com/c/32980/f/533761/index.rss?201302'), (u'Akcje', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_akcje.xml?201302'), (u'M\xf3j Reporter', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_mojreporter.xml?201302'), (u'Studni\xf3wki', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_studniowki.xml?201302'), (u'Kraj', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_kraj.xml?201302'), (u'Zdrowie', u'http://www.dzienniklodzki.pl/rss/dzienniklodzki_zdrowie.xml?201302')] + + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/dziennik-lodzki/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/dziennik_wschodni.recipe b/recipes/dziennik_wschodni.recipe new file mode 100644 index 0000000000..b44bc3f639 --- /dev/null +++ b/recipes/dziennik_wschodni.recipe @@ -0,0 +1,78 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe +class DziennikWschodni(BasicNewsRecipe): + title = u'Dziennik Wschodni' + __author__ = 'fenuks' + description = u'Dziennik Wschodni - portal regionalny województwa lubelskiego.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.dziennikwschodni.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + + feeds = [(u'Wszystkie', u'http://www.dziennikwschodni.pl/rss.xml'), + (u'Lublin', u'http://www.dziennikwschodni.pl/lublin.xml'), + (u'Zamość', u'http://www.dziennikwschodni.pl/zamosc.xml'), + (u'Biała Podlaska', u'http://www.dziennikwschodni.pl/biala_podlaska.xml'), + (u'Chełm', u'http://www.dziennikwschodni.pl/chelm.xml'), + (u'Kraśnik', u'http://www.dziennikwschodni.pl/krasnik.xml'), + (u'Puławy', u'http://www.dziennikwschodni.pl/pulawy.xml'), + (u'Świdnik', u'http://www.dziennikwschodni.pl/swidnik.xml'), + (u'Łęczna', u'http://www.dziennikwschodni.pl/leczna.xml'), + (u'Lubartów', u'http://www.dziennikwschodni.pl/lubartow.xml'), + (u'Sport', u'http://www.dziennikwschodni.pl/sport.xml'), + (u'Praca', u'http://www.dziennikwschodni.pl/praca.xml'), + (u'Dom', u'http://www.dziennikwschodni.pl/dom.xml'), + (u'Moto', u'http://www.dziennikwschodni.pl/moto.xml'), + (u'Zdrowie', u'http://www.dziennikwschodni.pl/zdrowie.xml'), + ] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/dziennik_zachodni.recipe b/recipes/dziennik_zachodni.recipe new file mode 100644 index 0000000000..126c876937 --- /dev/null +++ b/recipes/dziennik_zachodni.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class DziennikZachodni(BasicNewsRecipe): + title = u'Dziennik Zachodni' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Dziennik Zachodni. Najnowsze Wiadomości Śląskie. Wiadomości Śląsk. Czytaj!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/dziennikzachodni.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds= True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}), dict(attrs={'href':'http://www.dziennikzachodni.pl/piano'})] + + feeds = [(u'Wszystkie', u'http://dziennikzachodni.feedsportal.com/c/32980/f/533764/index.rss?201302'), (u'Wiadomo\u015bci', u'http://dziennikzachodni.feedsportal.com/c/32980/f/533765/index.rss?201302'), (u'Regiony', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_regiony.xml?201302'), (u'Opinie', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_regiony.xml?201302'), (u'Blogi', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_blogi.xml?201302'), (u'Serwisy', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_serwisy.xml?201302'), (u'Sport', u'http://dziennikzachodni.feedsportal.com/c/32980/f/533766/index.rss?201302'), (u'M\xf3j Reporter', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_mojreporter.xml?201302'), (u'Na narty', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_nanarty.xml?201302'), (u'Drogi', u'http://www.dziennikzachodni.pl/rss/dziennikzachodni_drogi.xml?201302'), (u'Pieni\u0105dze', u'http://dziennikzachodni.feedsportal.com/c/32980/f/533768/index.rss?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/dziennik-zachodni/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/echo_dnia.recipe b/recipes/echo_dnia.recipe new file mode 100644 index 0000000000..c84ef1d21f --- /dev/null +++ b/recipes/echo_dnia.recipe @@ -0,0 +1,74 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class EchoDnia(BasicNewsRecipe): + title = u'Echo Dnia' + __author__ = 'fenuks' + description = u'Echo Dnia - portal regionalny świętokrzyskiego radomskiego i podkarpackiego. Najnowsze wiadomości z Twojego regionu, galerie, video, mp3.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.echodnia.eu' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + feeds = [(u'Wszystkie', u'http://www.echodnia.eu/rss.xml'), + (u'Świętokrzyskie', u'http://www.echodnia.eu/swietokrzyskie.xml'), + (u'Radomskie', u'http://www.echodnia.eu/radomskie.xml'), + (u'Podkarpackie', u'http://www.echodnia.eu/podkarpackie.xml'), + (u'Sport \u015bwi\u0119tokrzyski', u'http://www.echodnia.eu/sport_swi.xml'), + (u'Sport radomski', u'http://www.echodnia.eu/sport_rad.xml'), + (u'Sport podkarpacki', u'http://www.echodnia.eu/sport_pod.xml'), + (u'Pi\u0142ka no\u017cna', u'http://www.echodnia.eu/pilka.xml'), + (u'Praca', u'http://www.echodnia.eu/praca.xml'), + (u'Dom', u'http://www.echodnia.eu/dom.xml'), + (u'Auto', u'http://www.echodnia.eu/auto.xml'), + (u'Zdrowie', u'http://www.echodnia.eu/zdrowie.xml')] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/gazeta_krakowska.recipe b/recipes/gazeta_krakowska.recipe new file mode 100644 index 0000000000..3abbcfdf39 --- /dev/null +++ b/recipes/gazeta_krakowska.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class GazetaKrakowska(BasicNewsRecipe): + title = u'Gazeta Krakowska' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Gazeta Krakowska. Najnowsze Wiadomości Kraków. Informacje Kraków. Czytaj!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/gazetakrakowska.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Fakty24', u'http://gazetakrakowska.feedsportal.com/c/32980/f/533770/index.rss?201302'), (u'Krak\xf3w', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_krakow.xml?201302'), (u'Tarn\xf3w', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_tarnow.xml?201302'), (u'Nowy S\u0105cz', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_nsacz.xml?201302'), (u'Ma\u0142. Zach.', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_malzach.xml?201302'), (u'Podhale', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_podhale.xml?201302'), (u'Sport', u'http://gazetakrakowska.feedsportal.com/c/32980/f/533771/index.rss?201302'), (u'Kultura', u'http://gazetakrakowska.feedsportal.com/c/32980/f/533772/index.rss?201302'), (u'Opinie', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_opinie.xml?201302'), (u'Magazyn', u'http://www.gazetakrakowska.pl/rss/gazetakrakowska_magazyn.xml?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/gazeta-krakowska/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/gazeta_lubuska.recipe b/recipes/gazeta_lubuska.recipe new file mode 100644 index 0000000000..f14c0fcce2 --- /dev/null +++ b/recipes/gazeta_lubuska.recipe @@ -0,0 +1,64 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class GazetaLubuska(BasicNewsRecipe): + title = u'Gazeta Lubuska' + __author__ = 'fenuks' + description = u'Gazeta Lubuska - portal regionalny województwa lubuskiego.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.gazetalubuska.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + feeds = [(u'Wszystkie', u'http://www.gazetalubuska.pl/rss.xml'), (u'Dreznenko', u'http://www.gazetalubuska.pl/drezdenko.xml'), (u'G\u0142og\xf3w', u'http://www.gazetalubuska.pl/glogow.xml'), (u'Gorz\xf3w Wielkopolski', u'http://www.gazetalubuska.pl/gorzow-wielkopolski.xml'), (u'Gubin', u'http://www.gazetalubuska.pl/gubin.xml'), (u'Kostrzyn', u'http://www.gazetalubuska.pl/kostrzyn.xml'), (u'Krosno Odrza\u0144skie', u'http://www.gazetalubuska.pl/krosno-odrzanskie.xml'), (u'Lubsko', u'http://www.gazetalubuska.pl/lubsko.xml'), (u'Mi\u0119dzych\xf3d', u'http://www.gazetalubuska.pl/miedzychod.xml'), (u'Mi\u0119dzyrzecz', u'http://www.gazetalubuska.pl/miedzyrzecz.xml'), (u'Nowa S\xf3l', u'http://www.gazetalubuska.pl/nowa-sol.xml'), (u'S\u0142ubice', u'http://www.gazetalubuska.pl/slubice.xml'), (u'Strzelce Kraje\u0144skie', u'http://www.gazetalubuska.pl/strzelce-krajenskie.xml'), (u'Sulech\xf3w', u'http://www.gazetalubuska.pl/sulechow.xml'), (u'Sul\u0119cin', u'http://www.gazetalubuska.pl/sulecin.xml'), (u'\u015awi\u0119bodzin', u'http://www.gazetalubuska.pl/swiebodzin.xml'), (u'Wolsztyn', u'http://www.gazetalubuska.pl/wolsztyn.xml'), (u'Wschowa', u'http://www.gazetalubuska.pl/wschowa.xml'), (u'Zielona G\xf3ra', u'http://www.gazetalubuska.pl/zielona-gora.xml'), (u'\u017baga\u0144', u'http://www.gazetalubuska.pl/zagan.xml'), (u'\u017bary', u'http://www.gazetalubuska.pl/zary.xml'), (u'Sport', u'http://www.gazetalubuska.pl/sport.xml'), (u'Auto', u'http://www.gazetalubuska.pl/auto.xml'), (u'Dom', u'http://www.gazetalubuska.pl/dom.xml'), (u'Praca', u'http://www.gazetalubuska.pl/praca.xml'), (u'Zdrowie', u'http://www.gazetalubuska.pl/zdrowie.xml')] + + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/gazeta_wroclawska.recipe b/recipes/gazeta_wroclawska.recipe new file mode 100644 index 0000000000..5bcb5654c0 --- /dev/null +++ b/recipes/gazeta_wroclawska.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class GazetaWroclawska(BasicNewsRecipe): + title = u'Gazeta Wroc\u0142awska' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Gazeta Wrocławska. Najnowsze Wiadomości Wrocław, Informacje Wrocław. Czytaj!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/gazetawroclawska.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Fakty24', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533775/index.rss?201302'), (u'Region', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_region.xml?201302'), (u'Kultura', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533777/index.rss?201302'), (u'Sport', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533776/index.rss?201302'), (u'Z archiwum', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_zarchiwum.xml?201302'), (u'M\xf3j reporter', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_mojreporter.xml?201302'), (u'Historia', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_historia.xml?201302'), (u'Listy do redakcji', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_listydoredakcji.xml?201302'), (u'Na drogach', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_nadrogach.xml?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/gazeta-wroclawska/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/gazeta_wspolczesna.recipe b/recipes/gazeta_wspolczesna.recipe new file mode 100644 index 0000000000..cfa70d4e2b --- /dev/null +++ b/recipes/gazeta_wspolczesna.recipe @@ -0,0 +1,63 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class GazetaWspolczesna(BasicNewsRecipe): + title = u'Gazeta Wsp\xf3\u0142czesna' + __author__ = 'fenuks' + description = u'Gazeta Współczesna - portal regionalny.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.wspolczesna.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + feeds = [(u'Wszystkie', u'http://www.wspolczesna.pl/rss.xml'), (u'August\xf3w', u'http://www.wspolczesna.pl/augustow.xml'), (u'Bia\u0142ystok', u'http://www.wspolczesna.pl/bialystok.xml'), (u'Bielsk Podlaski', u'http://www.wspolczesna.pl/bielsk.xml'), (u'E\u0142k', u'http://www.wspolczesna.pl/elk.xml'), (u'Grajewo', u'http://www.wspolczesna.pl/grajewo.xml'), (u'Go\u0142dap', u'http://www.wspolczesna.pl/goldap.xml'), (u'Hajn\xf3wka', u'http://www.wspolczesna.pl/hajnowka.xml'), (u'Kolno', u'http://www.wspolczesna.pl/kolno.xml'), (u'\u0141om\u017ca', u'http://www.wspolczesna.pl/lomza.xml'), (u'Mo\u0144ki', u'http://www.wspolczesna.pl/monki.xml'), (u'Olecko', u'http://www.wspolczesna.pl/olecko.xml'), (u'Ostro\u0142\u0119ka', u'http://www.wspolczesna.pl/ostroleka.xml'), (u'Powiat Bia\u0142ostocki', u'http://www.wspolczesna.pl/powiat.xml'), (u'Sejny', u'http://www.wspolczesna.pl/sejny.xml'), (u'Siemiatycze', u'http://www.wspolczesna.pl/siemiatycze.xml'), (u'Sok\xf3\u0142ka', u'http://www.wspolczesna.pl/sokolka.xml'), (u'Suwa\u0142ki', u'http://www.wspolczesna.pl/suwalki.xml'), (u'Wysokie Mazowieckie', u'http://www.wspolczesna.pl/wysokie.xml'), (u'Zambr\xf3w', u'http://www.wspolczesna.pl/zambrow.xml'), (u'Sport', u'http://www.wspolczesna.pl/sport.xml'), (u'Praca', u'http://www.wspolczesna.pl/praca.xml'), (u'Dom', u'http://www.wspolczesna.pl/dom.xml'), (u'Auto', u'http://www.wspolczesna.pl/auto.xml'), (u'Zdrowie', u'http://www.wspolczesna.pl/zdrowie.xml')] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/gcn.recipe b/recipes/gcn.recipe new file mode 100644 index 0000000000..3e4a3f365f --- /dev/null +++ b/recipes/gcn.recipe @@ -0,0 +1,83 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class GCN(BasicNewsRecipe): + title = u'Gazeta Codziennej Nowiny' + __author__ = 'fenuks' + description = u'nowiny24.pl - portal regionalny województwa podkarpackiego.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.nowiny24.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + feeds = [(u'Wszystkie', u'http://www.nowiny24.pl/rss.xml'), + (u'Podkarpacie', u'http://www.nowiny24.pl/podkarpacie.xml'), + (u'Bieszczady', u'http://www.nowiny24.pl/bieszczady.xml'), + (u'Rzeszów', u'http://www.nowiny24.pl/rzeszow.xml'), + (u'Przemyśl', u'http://www.nowiny24.pl/przemysl.xml'), + (u'Leżajsk', u'http://www.nowiny24.pl/lezajsk.xml'), + (u'Łańcut', u'http://www.nowiny24.pl/lancut.xml'), + (u'Dębica', u'http://www.nowiny24.pl/debica.xml'), + (u'Jarosław', u'http://www.nowiny24.pl/jaroslaw.xml'), + (u'Krosno', u'http://www.nowiny24.pl/krosno.xml'), + (u'Mielec', u'http://www.nowiny24.pl/mielec.xml'), + (u'Nisko', u'http://www.nowiny24.pl/nisko.xml'), + (u'Sanok', u'http://www.nowiny24.pl/sanok.xml'), + (u'Stalowa Wola', u'http://www.nowiny24.pl/stalowawola.xml'), + (u'Tarnobrzeg', u'http://www.nowiny24.pl/tarnobrzeg.xml'), + (u'Sport', u'http://www.nowiny24.pl/sport.xml'), + (u'Dom', u'http://www.nowiny24.pl/dom.xml'), + (u'Auto', u'http://www.nowiny24.pl/auto.xml'), + (u'Praca', u'http://www.nowiny24.pl/praca.xml'), + (u'Zdrowie', u'http://www.nowiny24.pl/zdrowie.xml'), + (u'Wywiady', u'http://www.nowiny24.pl/wywiady.xml')] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/glos_wielkopolski.recipe b/recipes/glos_wielkopolski.recipe new file mode 100644 index 0000000000..d7706c4173 --- /dev/null +++ b/recipes/glos_wielkopolski.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class GlosWielkopolski(BasicNewsRecipe): + title = u'G\u0142os Wielkopolski' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Głos Wielkopolski. Najnowsze Wiadomości Poznań. Czytaj Informacje Poznań!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/gloswielkopolski.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds= True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Wszystkie', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533779/index.rss?201302'), (u'Wiadomo\u015bci', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533780/index.rss?201302'), (u'Sport', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533781/index.rss?201302'), (u'Kultura', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533782/index.rss?201302'), (u'Porady', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_porady.xml?201302'), (u'Blogi', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_blogi.xml?201302'), (u'Nasze akcje', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_naszeakcje.xml?201302'), (u'Opinie', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_opinie.xml?201302'), (u'Magazyn', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_magazyn.xml?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/glos-wielkopolski/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/icons/dziennik_baltycki.png b/recipes/icons/dziennik_baltycki.png new file mode 100644 index 0000000000000000000000000000000000000000..6572da8a34f9633eee6528760c76882485f4157d GIT binary patch literal 865 zcmZ`&ZA?>V6g~w?h+lIveuiN;Cw`*0H8Y{%$7*PRY-p`yF~*n{TIy)aMOuQoKW^EU z=n}?sZa8sq>HxvP=0~8V7=j@3F{=eiTW;HX`?0pvf!y1BTNtc+`MDoU&N)w>bIy}D zZ_YUvWrqt^uh_Bz09F?j=F1VTUG|Jr6nEylaSTD4Mp7&R`2Cxei%LG?JcGR85VSwf zj36Q?E0h-loX-Zh@CCpEN?iy8)L;P93IK5fz{aXZ^U*w{Gs-?Hk;db3E*_7u9K&)f z$FVFIL(Xx@#YFO-`K5&f6Ju$VVp*DDQ2C)PSofG{c;X%QO#hwWmgYH{W@hJ@*EF*b zXW3Ycq3K|BR#Z0#+O8CBCulo))n>`nVe@z}5o40`Y%;-)dLmS02DQfMIh!ZUKVt?% zH^0V`T4UiEx;A9%0XOlC-Oucl z-ygI(DYMo6Iue?Vg#HW!Z}mC$U+RY{Gw4h_ooRyb`Fw#XH|6#E{FL8GkPd>31OgQ0 z>v-n;>Y?qk`!AdN9c~Zhobo!Rypt}E-RW_-JU)^P`=|g(*&W1$gBYJAY<6O7k{GkQ zUXDAH$z*W}rd%Fe>4ydRpB}M2T0~@|C|^>tX{<~kNWnzH0}ljU_jIo^8yim&d6o}) z{}>tR9klKc?0j$UySuaZ?R#g}z@Q*!+nyaAH(T!9yVcs-)c*6(&0l`K-PVjNPOEgK z73G!6A%$9BrqyUV@F*F+L+bPcq;Gm}C_7ZC#qnlMl#29`LH&$B8rn)`wcyQd>jDF7 zGvC^>AuH?6&FkM@7bUlDwAR-*eAjsSa{Z6r|Mcy(t2Y{Y>#tn@AvJBD|D{wqkju|q zwOuAV@$sosM^DK6WEaynwY~r_^yj57-W4{XZ*4b9j~i7=qgq^6twsPMOn4v%Lw2wP z%N4(WP%ISf!GvNAYrE33^dEs9SA9}`?*9d@=X`VquzC4~V|cl-R#~kEi3%@O3ySng Zjasf&s?MDmQlnJ|D3Tt|Z$G5?{9i(5!dU45bDP46hOx7_4S6Fo+k-*%fF5lt>8h z332^>cG>^`|GzdV{8*Xx=fUysQ=Ptb>HSz3@okdLpBp=WpO~vGuQ0K{zceG>-r8o@ z&Yd4We*ATy|HzDDLtVWS$B)mcjGH%i?&HUgA8qN43XhnP;nZALDh|8TB2Tyo8SMRcF-wC zZr6+bf378^X>`SIdd02~8YaniAn5T9W=_vGcIGbGa!vQ4TlM>P z9#sdsBR@DxBz`?Py|*?>+U?Qd8Ry%3r|!7%;duPET1HV{mId;!r^W;ARxNRjC`m~y zNwrEYN(E93Mh1q)x&}aG7Ghv&Wom9^Y^-fyXk}oqfcX|E9uOLG^HVa@DsgML7?-pS PsDZ)L)z4*}Q$iB}ao(*c literal 0 HcmV?d00001 diff --git a/recipes/icons/dziennik_wschodni.png b/recipes/icons/dziennik_wschodni.png new file mode 100644 index 0000000000000000000000000000000000000000..10c0b4fb58f6883dcc9e4536d6e58313ee9124f6 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=ES4z)+>ez|hdb!0-zw)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;15(WW2 zA+A9BU0V5F2EqS#@BRmZ-Dlp-TyAf83^R0c)B=-a9mGLaA0!s@=Cbn(a`8BdL)1$ zX&DO}TiAvI$q8(o1_q3Z9SaW}S-`?1HA{xaE7HryOUmmFkL%45bDP46hOx7_4S6Fo+k-*%fF5l<*7i z32~jVa`X4gHy;LMysYW__2}9E|Np-pJ#$^m^uzMapSB%%-8JjJQ}naE#y=lEZP>E+ z#{EZkjQv)$Oy0Er*p`f%r!U`JG7H#oEak7ak=#TO|b?6k=BQ68X(zm0Xkxq!^4042^XSfXFPwz|zXp(#qIO+rZGu kz~IfNqjD%3a`RI%(<*Umn7h7q5l{nzr>mdKI;Vst0M1>dvH$=8 literal 0 HcmV?d00001 diff --git a/recipes/icons/echo_dnia.png b/recipes/icons/echo_dnia.png new file mode 100644 index 0000000000000000000000000000000000000000..a7454b99647772215e7d2ff0393059daccf1e0ae GIT binary patch literal 1163 zcmZ`&c~Db#5dI;8C=YETDjqmOM{Gqjfr4YIorc2zB@q%!5i4>e;TEMx1+fJM3WADI zDKJ2bRRjw-DAK_ph*(i51UbTygEKsHy%!P^AeoTY$DjS9JG=Ysx3k|rJG=RTbgIp! zU7G*^Hh#X|3>-gN3oCOxf9kS@iNpG63XK9l^BrqrgayvczGqN9K@)F}3@7`dd>J$V z(wzXv%m%=Kw=$&wTqXh_4+nr;2EdMsl`n#h1F$YFFyOQgK5&qW**-web}to)vCI*J zKX>ty2G#Cbgx0=z^tsl)UbW}3%Dx`8uTvfAz$|}9^7{~zUaM217>4O}>TLx*;I>%0 zY%J*-2RVFDBnAaSP$=42uL^&sS1F_i^0*fHJZinL^yQ#+9*^EC!&X!$%U+t@odQLo z&+Ddb%f+^}=+$9^0!4!wrmOg9#<&S zk12IZm?scv7d5>jW0*nLC!C#EFAt85Yc&gh4T?-AV?nPBR4dE)s`(Fa@Nch&reTM? zmjO*;h5W0mw$Ct3-ImP~a?>9fv4rsB^ zKSxsEA4d6+-t=nk_hSYI zvd*99L`5bg#K&=1QWz%GF03ycw7xrX@Q+D)lPJAy?2S-@AjqOdqgJa`Ds;^dM4?ca zOeWvASZvR7tpt;-VhJ}U2>9`tr7-AB@D)7HStF5OQ@w4Ar+VD++RD$Ha@uY#lotIo^+)B@{D;T%RUGkY>|O|K5X->Jh`dAqR?JPetajY#(Z;_Vc^Jf1;2x8A~yY~&>{rP2`%`IBL3j{SLBKB41 z#3#7dR<}CQEBZQ#Y45bDP46hOx7_4S6Fo+k-*%fF5lrRqP z331)H^TPlC|37{CdFJwqoA=)J%{^@zxOmoziy5`M8Ydsyy!Vb%%*yDZEze$l_Df&C zZ1eS!jspf$f1d_wXH4>TcVYa`qFRasImQP_8JvwnC}Q!>*kaclUqG{*s`fx*+&&t;ucLK6TO;g16V literal 0 HcmV?d00001 diff --git a/recipes/icons/gazeta_lubuska.png b/recipes/icons/gazeta_lubuska.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2c30992e60ba3d94f8a6d85edc21d4a63fbc46 GIT binary patch literal 1087 zcmZ{iYfO^|6owD9+`j@M%BFKe1SUF6O9P2jmqECXcHAtiiA#}!VGicFxM-A!6BbY> zpkgJ$rrRKPP>}&{NTFPW0j1@#a_LuEOKEK>1zJ|5<a&aylzgy0|qCm}e?fq(+2?v`7vR+H+r(8Fuk-bsLW6}Wi{-1i6w zy9J1cz-5=f!Bt>KklPTXfH#f|E7^C^yex5Kq^9o4G>!IlQLV18(f4=i`r4O=`ZNtc zOPOgX*vx{RVel{Iy^4)>la^b*HZL0|2QPJZ&ELGKALvq6-C64GT$vQADk>xZ5*%*1 zr%Tt>wkk(;FI!D&`BZeQs;Xipm2MD=X6PxZ2lo~S_!>?<3by7J?p#Tcabi^4SZ7|; z>e{#)>;LGx|1eI9W;0m&UY==QZX6$x;R#l)X4E%8QTE*wBUPN5Ag0Hoh57RPw`R_> zWMxHD2~^3qIbwRkgmiKIQwZ-xM!t&Fc^c4nDEf#cP7%Ae7F@S_^9Cmzn{++b`QQ9=^Y*r;cnPo zN06`{pC@PMJSr2%gPL=V&InQ#J9LEe<-)#dhJ@07*@7VUC6WF9b(!kDRrJY_wu=a| z=K2Foc#NB~^nUFZvX46vq;T8ErYN-g;NvvKu8M>)1R*{D#^6*MGZ^qROZ)D_&k?)?YWO2r^Ugo1t!96>PTQ?w*CNu)SQ_;#k;z-+n-i_GGn1diy-7o zVfCqVOC4sHy~h|0t*iiCZ?ozsoy*{5>f25GLvkb?#YJhlHvNfrtN1e*)QGv$8TT{eNJx#I6<#KuiQJoEyfx{x2gk5*q*j literal 0 HcmV?d00001 diff --git a/recipes/icons/gazeta_wroclawska.png b/recipes/icons/gazeta_wroclawska.png new file mode 100644 index 0000000000000000000000000000000000000000..6003bd2823820ee8a117e7e6c94e39bf18e04a87 GIT binary patch literal 470 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5lt>Qn z32}Y$Zqxt&|F`bh);YC%#-f>zo;*5o>ZqZciHNrN%oRd;L?)@|AfH6 zETy$44Yyx5u9~7LXC`^>VXZ+92Q|4h2~fSfW<7sn8Z%c=dhnVJ*?Ty}Q&dc6qCSQhsG|I|ZD zX_fcB*_=7URp{_EI!T?bBvhcME-ZxlFHn z-iw2?Tu;b^ee_wlu*65H)k`$mdF}j98)lY2{CaPh^xHe>_x^9Hf7j0{eT~h>|D200 z&;_a`t`Q|Ei6yC4$wjF^iowXh&{)?1h|EF^4Xg}|tqcvc4GgUe3^u+{@Ild#o1c=I YR*74~fvqz>05vdpy85}Sb4q9e0GB|oHvj+t literal 0 HcmV?d00001 diff --git a/recipes/icons/gazeta_wspolczesna.png b/recipes/icons/gazeta_wspolczesna.png new file mode 100644 index 0000000000000000000000000000000000000000..c21b6fa4140313ac07f23c1ee3bb71e65eb29ba5 GIT binary patch literal 921 zcmZ`#dr(YK7(YAFkV_iR@qVVZEq5PQd#$wD+Ctab(qK%=);1YpDn^SY6r!QWzT3*u zCa?6EVdOC$vnKus!bN5o*f&bhl7`OcsIFmvxc_xsNG{a%%NUN<~sLI^@=cuKO? z0Ov^h4he#9M098x9E0*SsTzbjjtu*qJs4_HkwKS$+IlCwhhmyB*^r8mIUJ#~a)f?D ztE?ZPtt>(xvJm1N2#wp~?p~pWy#oER^h6jS9vx{~Oq{XAr6NbQLW>^PMhYia5>FDg zD@Z*@np6E9Cc(=Gu9QNF?Q+r>PuyzKun=44VoMBm%oAF8p*0=bq~w?mK(Hm6I25E| z5d}Q40-&HTG%v%>`Pd@CP9^+UgDc{Wqkw=` z&w&P*hdw2$S5bDm9D_m-b1WJ3Q{JWo>Zl=(iU)ich8dfT0Ha;z@5&d>W@0N#k)89Y zW>;+B$}Vaac!)(h*N;LTK3B8<^XYX5n*FzZ8@uej3;v=} z%1f{M9^d@v-;nw1-J6^*qaDxsak;X3kkQ^$F(+^Pu8Ctxr|&F$7z(_i^-Fcy63^3z z_nU0xxa5xb)P@feTx*_iOt;U>{Pg;Q_a)s5Z!rblGGlXX zOvWSS`E6u`>M-BSFfppOg3nVL6EmO3T`m11Vwl~zgDW(BD%JIh=^kJ9tN65;WxWxH zst)#6R-Qc&w0cxiwZr1Bb=ewgoYvH;<)Xf}Ihr3suZh9I?Bc{##W~r0!LIhH-mijMrVuxWEnzNzH@3r{v(l*0l_N#wO{30Zso0zK)f AX8-^I literal 0 HcmV?d00001 diff --git a/recipes/icons/gcn.png b/recipes/icons/gcn.png new file mode 100644 index 0000000000000000000000000000000000000000..287488590419379433811d938dd1ba9bd96749cb GIT binary patch literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5l-L;H z6XFV_ADVgIS1`PC#j~MtLF$h0mkbKM_`aoL$o}tVA#DYgGKq-lb zyef|w#U3k}KLQ%Xsq~mt?w+R2V=f>=_O_ApZ9}K0GRBXYrEeQJJZ2Dl#31^ZL*bc< z)e`}=CxRMJM6~Z%c|YY-ej=#;R6-BvTHCq5<$)AqNswPKgTu2MX&_FLx4R2N2dk_H zkdyD};us=vIXOXr-N49jvw^{eO&g0HSS@z$sI2(8;|D8Cs{+#@rA0}PgeC0=rS*gkDI-_BV(1f6{z<^fn6^xptnXJ4!8q_9SdgLa2LCw*@y)|Ck45bDP46hOx7_4S6Fo+k-*%fF5l!yxO z32~kB`q%&e|F2!WT2@>V6&|r>^=d<1J!N@?iT(X2jvs&g_;E&Rn!UA6?v&Xb6DHM9 zoLV+{2E(HL`(M28zxLQ*%V~vm#{>3XuD@{KVdwezcb?z>{C)kS*9E6<3#>To;phGZ zXbWSKx4R4DeY)jn(UyhfJCS7%b zbCyK8nLjxyUOnOVp2*hw{Q_R!G(#Q+ojzCiRw{4qM+cS?TQ(_2eV-ZPjy_zUcuqu$ zn%OhWW;(g0`yxBL-@%`a3%G?k*|x7;;p_mkQnkc2q9i4;B-JXpC>2OC7#SEE>ly%& yS%{&5m4T_1vAMQ^p_PGwbxGzA6b-rgDVb@NxHWibUUUI!VDNPHb6Mw<&;$Uyj-g@z literal 0 HcmV?d00001 diff --git a/recipes/icons/kurier_lubelski.png b/recipes/icons/kurier_lubelski.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d1a69752216592e482f6d918c64774e2ecac7c GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5lt>Hk z32{CD=;QzY{~dac%|H6+$EvlTLZiO|HKuLu-*fL<@5Hw3h8Y`inntl|l2tDHc&P>*jsyo0PEN!g~w*dy2a2&p%&r`l&+Y z-oD-U(wAJ)yuIK%&_>22Z+92Q|4h2~K<@H%aSV~ToOvH0_*N6P|UwLW=Q+rCeuzteP)`i3wg-nauwmlLG-G&)E& zO8@!B=-R;+TG|}(80Z$&64!{5l*E!$tK_0oAjM#0U}&ss07PaXh6Yv!W>$uV+6IPJ k1_mFuJ=lYyAvZrIGp!Q0hKAP>K=lj^p00i_>zopr03)}$o&W#< literal 0 HcmV?d00001 diff --git a/recipes/icons/kurier_poranny.png b/recipes/icons/kurier_poranny.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2742a1eb5b45b6a00a2fe081c17b4abaec0036 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=ES4z)+>ez|hdb!0-zw)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;15)uJE zA+G;{VE4@b9clmHz5Cx0`rlaTKLf-6@=&kl#UM3|N#5=*3>~bp9zc$-r;B3<$Mxid z24*)^RnpgtlOqgAJeZpp43tfEbUDv>B=LE-8%P`qQVd#}sp-IG?NMkjMKF&c zO~tS|Lx4GnRjv8r(g}=`3=F&Eg)Yxq?JWm1Shd78q9i4;B-JXpC>2OC7#SEE>ly%& yS%{&5m4TU+iLthUp_PGw-pT(TQ8eV{r(~v8;?@v9#T^(P3=E#GelF{r5}E*lZ)9Wu literal 0 HcmV?d00001 diff --git a/recipes/icons/kurier_szczecinski.png b/recipes/icons/kurier_szczecinski.png new file mode 100644 index 0000000000000000000000000000000000000000..06aadc5529bd8a7c45c53ddb0240ae70b05ed6a9 GIT binary patch literal 1175 zcmZ`%drXs86u-PWr(>8o=G@Q_1omJ}T52G6E&;;BMl4VYw6uJEetiIatWZ!!1%WXf zFJX&-aSq%Ns%#1d``DxfCXxa2kQK^kSIVx#WZ54(Io~}w_xyh6_1!b^ zj2m*Z@igs1OQiJd@MBz0zQ@q<(YyknYgt0 zlr){6A>=UVRFuPzh@Q)V4yQ}NLgVC+6t(NACv82d`3+IN1@4zW)sw=cZgJWZ34Gs14^K(|K zwXi^?%#uBOw!C4p)z{bYxk!#uVKC_X`}?_^G_7{fX0y%D&!19#f-sZ&zW>hYbn0|E zu?Rg|UB0leFf}zbIywrM|BdE~!{IQS%~=XLo0U3YHjRvoOiWB@G@ACdW}9teW@e_O z_;ehZbop|}($Z3AN5{&_%KG{`+=IpP$L#Fv@bKN<-fPRtOKWRuk01ZGx#_Um?M>=N zqtT$(>x~A3Ry$-endau^;8sNf4wubjBdKhJjxbVka}-aWO#kI@TxDmy#Yke% zC}Nb|-rn{~NWv}ndT7}c^7Ci;uegTNQeH@s*A4rh+p;l+omF$}R*u{GsrS9_b$Jq( z@?}m-%#K#0kFTNiCCZ9ZR<(He{!g#x7Hmr)#a%tnJpdECaF4}A3O>+33V@D-6d6u^ zQ^#Zf2rByW9j-+YxBdM5nz_@jg}IR46YrxRKI!4%5fy-XV=#e9*UE-F=IVaEu~9PQ zufz!6@En=>Qs1*yasSGq4_1PS-aldPa}?cfp04eA82ph6lk7HV`TXaeOHVJ1_uR}o z$isx}(Usn5`~95p`g%_lnUI5dHLF~+te(8(e0h&9ke=FwrWhI%4l?fW*tHjnbZ0+O#Jm%Y5uW!B3QGA}iX_%uHySF-8wOMpcF(s%C7Q`@r76cN z?f?dJb^nLC0sj7rli%jcYI?m6x)on-DhTu4?e6heN$IBqZr%Z~@B>*H8iu_G_YjaB zMa$-MvQZ*WfkFd#}V;|h45bDP46hOx7_4S6Fo+k-*%fF5lyD00 z32|lXzQxdU=l}oz%zc*`doD8c-(~DQ&Dnm1x$7cp&#nJ||FL(TW$U=f+i~Il|9_0# z*BH94{{Q!jqwB=GKmVC0-1+^8CF9M$9YE64fJ82rl7Rdn3W&i}A&TH+c} zl9E`GYL#4+3Zxi}3=EBR4S>ij#L&RX(9p`*LfgR5%D{j%GHo@AhTQy=%(P0}8cJC1 Ri32q-c)I$ztaD0e0sz|Yj&1+| literal 0 HcmV?d00001 diff --git a/recipes/icons/trojmiasto_pl.png b/recipes/icons/trojmiasto_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..665a62b0b5d049a72b7e4004b0eede4e3c731506 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5l-L#E z6XN>+|NkF9eqOln;^fI^Po8}E|Nq~uTc2}sKFP|yQ)~tIA7To;u<@<^i+uprYh7ML)47$EJWW&aRHpQ87_4 za7M!n3vK4rElZ|s=~**p4^zzCMUyslt(vu~P3?|~Zmz6ptZgl`^Nfy(8#`Cd+}XNR zbe8a%+zYa)-qXS_Ffe>v$Ue_+=^`VbZK@@%5hW>!C8<`)MX5lF!N|bSSl0lE%t8ze utPD-8jE%Gn46O_d+!;PCMA49&pOTqYiCcqNtd}fM1B0ilpUXO@geCy2o$QAI literal 0 HcmV?d00001 diff --git a/recipes/kurier_lubelski.recipe b/recipes/kurier_lubelski.recipe new file mode 100644 index 0000000000..4ae40b0eb5 --- /dev/null +++ b/recipes/kurier_lubelski.recipe @@ -0,0 +1,34 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class KurierLubelski(BasicNewsRecipe): + title = u'Kurier Lubelski' + __author__ = 'fenuks' + description = u'Gazeta Regionalna Kurier Lubelski. Najnowsze Wiadomości Lublin. Czytaj Informacje Lublin!' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/kurierlubelski.png?24' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + #preprocess_regexps = [(re.compile(ur'Czytaj także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur',Czytaj też:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Zobacz także:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TEŻ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ WIĘCEJ:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'CZYTAJ TAKŻE:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'\* CZYTAJ KONIECZNIE:.*', re.DOTALL), lambda match: ''), (re.compile(ur'Nasze serwisy:.*', re.DOTALL), lambda match: '') ] + remove_tags_after= dict(attrs={'src':'http://nm.dz.com.pl/dz.png'}) + remove_tags=[dict(id='mat-podobne'), dict(name='a', attrs={'class':'czytajDalej'}), dict(attrs={'src':'http://nm.dz.com.pl/dz.png'})] + + feeds = [(u'Wiadomo\u015bci', u'http://kurierlubelski.feedsportal.com/c/32980/f/533785/index.rss?201302'), (u'Region', u'http://www.kurierlubelski.pl/rss/kurierlubelski_region.xml?201302'), (u'Sport', u'http://kurierlubelski.feedsportal.com/c/32980/f/533786/index.rss?201302'), (u'Kultura', u'http://kurierlubelski.feedsportal.com/c/32980/f/533787/index.rss?201302'), (u'Rozmaito\u015bci', u'http://www.kurierlubelski.pl/rss/kurierlubelski_rozmaitosci.xml?201302'), (u'Dom', u'http://www.kurierlubelski.pl/rss/kurierlubelski_dom.xml?201302'), (u'Serwisy', u'http://www.kurierlubelski.pl/rss/kurierlubelski_serwisy.xml?201302'), (u'Motofakty', u'http://www.kurierlubelski.pl/rss/kurierlubelski_motofakty.xml?201302'), (u'M\xf3j Reporter', u'http://www.kurierlubelski.pl/rss/kurierlubelski_mojreporter.xml?201302'), (u'Praca', u'http://www.kurierlubelski.pl/rss/kurierlubelski_praca.xml?201302')] + + def print_version(self, url): + return url.replace('artykul', 'drukuj') + + def skip_ad_pages(self, soup): + if 'Advertisement' in soup.title: + nexturl=soup.find('a')['href'] + return self.index_to_soup(nexturl, raw=True) + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/kurier-lubelski/') + self.cover_url=soup.find(id='pojemnik').img['src'] + return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/kurier_poranny.recipe b/recipes/kurier_poranny.recipe new file mode 100644 index 0000000000..f303eb3295 --- /dev/null +++ b/recipes/kurier_poranny.recipe @@ -0,0 +1,78 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class KurierPoranny(BasicNewsRecipe): + title = u'Kurier Poranny' + __author__ = 'fenuks' + description = u'Kurier Poranny | poranny.pl - portal miejski Białegostoku,informacje,wydarzenia' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.poranny.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + + feeds = [(u'Wszystkie', u'http://www.poranny.pl/rss.xml'), + (u'Białystok', u'http://www.poranny.pl/bialystok.xml'), + (u'Bielsk Podlaski', u'http://www.poranny.pl/bielskpodlaski.xml'), + (u'Czarna Białostocka', u'http://www.poranny.pl/czarnabialostocka.xml'), + (u'Hajnówka', u'http://www.poranny.pl/hajnowka.xml'), + (u'Łapy', u'http://www.poranny.pl/lapy.xml'), + (u'Sokółka', u'http://www.poranny.pl/sokolka.xml'), + (u'Supraśl', u'http://www.poranny.pl/suprasl.xml'), + (u'Wasilków', u'http://www.poranny.pl/wasilkow.xml'), + (u'Sport', u'http://www.poranny.pl/sport.xml'), + (u'Praca', u'http://www.poranny.pl/praca.xml'), + (u'Kultura', u'http://www.poranny.pl/kultura.xml'), + (u'Dom', u'http://www.poranny.pl/dom.xml'), + (u'Auto', u'http://www.poranny.pl/auto.xml'), + (u'Polityka', u'http://www.poranny.pl/polityka.xml')] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/kurier_szczecinski.recipe b/recipes/kurier_szczecinski.recipe new file mode 100644 index 0000000000..b19e5ecd79 --- /dev/null +++ b/recipes/kurier_szczecinski.recipe @@ -0,0 +1,27 @@ +from calibre.web.feeds.news import BasicNewsRecipe + +class KurierSzczecinski(BasicNewsRecipe): + title = u'Kurier Szczeci\u0144ski' + __author__ = 'fenuks' + description = u'24Kurier jest portalem Kuriera Szczecińskiego. Zawiera aktualności ze Szczecina oraz wiadomości regionalne z województwa zachodniopomorskiego. ' + category = 'newspaper' + #publication_type = '' + language = 'pl' + #encoding = '' + #extra_css = '' + cover_url = 'http://www.24kurier.pl/Administracja/Img/24kurier_logo-copy-po-zapis' + #masthead_url = '' + use_embedded_content = False + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + remove_javascript = True + remove_attributes = ['style', 'font'] + ignore_duplicate_articles = {'title', 'url'} + + keep_only_tags = [dict(attrs={'class':'section'})] + remove_tags = [dict(attrs={'class':['Ikonki', 'rek', 'artComments']})] + remove_tags_after = dict(attrs={'class':'artComments'}) + #remove_tags_before = dict() + feeds = [(u'Aktualno\u015bci', u'http://www.24kurier.pl/cmspages/articles_rss.aspx'), (u'Kraj', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=kraj'), (u'\u015awiat', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=swiat'), (u'Sport', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=sport'), (u'Kultura', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=kultura'), (u'Gospodarka', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=gospodarka'), (u'Nauka', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=nauka'), (u'Region', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=region'), (u'Szczecin', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=szczecin'), (u'Bia\u0142ogard', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=bialogard'), (u'Choszczno', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=choszczno'), (u'Drawsko', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=drawsko'), (u'Goleni\xf3w', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=goleniow'), (u'Gryfice', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=gryfice'), (u'Gryfino', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=gryfino'), (u'Kamie\u0144 Pomorski', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=kamien'), (u'Ko\u0142obrzeg', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=kolobrzeg'), (u'Koszalin', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=koszalin'), (u'\u0141obez', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=lobez'), (u'My\u015blib\xf3rz', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=mysliborz'), (u'Police', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=police'), (u'Pyrzyce', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=pyrzyce'), (u'S\u0142awno', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=slawno'), (u'Stargard', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=stargard'), (u'Szczecinek', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=szczecinek'), (u'\u015awidwin', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=swidwin'), (u'\u015awinouj\u015bcie', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=swinoujscie'), (u'Wa\u0142cz', u'http://www.24kurier.pl/cmspages/articles_rss.aspx?dzial=walcz')] diff --git a/recipes/nto.recipe b/recipes/nto.recipe new file mode 100644 index 0000000000..56725adec4 --- /dev/null +++ b/recipes/nto.recipe @@ -0,0 +1,63 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class NTO(BasicNewsRecipe): + title = u'Nowa Trybuna Opolska' + __author__ = 'fenuks' + description = u'Nowa Trybuna Opolska - portal regionalny województwa opolskiego.' + category = 'newspaper' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + INDEX = 'http://www.nto.pl' + masthead_url = INDEX + '/images/top_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + remove_empty_feeds = True + no_stylesheets = True + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'Przeczytaj także:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'Przeczytaj również:.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też:.*?', re.DOTALL|re.IGNORECASE), lambda match: '')] + + keep_only_tags = [dict(id=['article', 'cover', 'photostory'])] + remove_tags = [dict(id=['articleTags', 'articleMeta', 'boxReadIt', 'articleGalleries', 'articleConnections', + 'ForumArticleComments', 'articleRecommend', 'jedynkiLinks', 'articleGalleryConnections', + 'photostoryConnections', 'articleEpaper', 'articlePoll', 'articleAlarm', 'articleByline']), + dict(attrs={'class':'articleFunctions'})] + + feeds = [(u'Wszystkie', u'http://www.nto.pl/rss.xml'), (u'Region', u'http://www.nto.pl/region.xml'), (u'Brzeg', u'http://www.nto.pl/brzeg.xml'), (u'G\u0142ubczyce', u'http://www.nto.pl/glubczyce.xml'), (u'K\u0119dzierzyn-Ko\u017ale', u'http://www.nto.pl/kedzierzynkozle.xml'), (u'Kluczbork', u'http://www.nto.pl/kluczbork.xml'), (u'Krapkowice', u'http://www.nto.pl/krapkowice.xml'), (u'Namys\u0142\xf3w', u'http://www.nto.pl/namyslow.xml'), (u'Nysa', u'http://www.nto.pl/nysa.xml'), (u'Olesno', u'http://www.nto.pl/olesno.xml'), (u'Opole', u'http://www.nto.pl/opole.xml'), (u'Prudnik', u'http://www.nto.pl/prudnik.xml'), (u'Strzelce Opolskie', u'http://www.nto.pl/strzelceopolskie.xml'), (u'Sport', u'http://www.nto.pl/sport.xml'), (u'Polska i \u015bwiat', u'http://www.nto.pl/apps/pbcs.dll/section?Category=RSS&channel=KRAJSWIAT'), (u'Zdrowy styl', u'http://www.nto.pl/apps/pbcs.dll/section?Category=rss_zdrowystyl'), (u'Reporta\u017c', u'http://www.nto.pl/reportaz.xml'), (u'Studia', u'http://www.nto.pl/akademicka.xml')] + + def get_cover_url(self): + soup = self.index_to_soup(self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') + nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] + soup = self.index_to_soup(nexturl) + self.cover_url = self.INDEX + soup.find(id='cover').find(name='img')['src'] + return getattr(self, 'cover_url', self.cover_url) + + def append_page(self, soup, appendtag): + tag = soup.find('span', attrs={'class':'photoNavigationPages'}) + if tag: + number = int(tag.string.rpartition('/')[-1].replace(' ', '')) + baseurl = self.INDEX + soup.find(attrs={'class':'photoNavigationNext'})['href'][:-1] + + for r in appendtag.findAll(attrs={'class':'photoNavigation'}): + r.extract() + for nr in range(2, number+1): + soup2 = self.index_to_soup(baseurl + str(nr)) + pagetext = soup2.find(id='photoContainer') + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoMeta'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'photoStoryText'}) + if pagetext: + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/trojmiasto_pl.recipe b/recipes/trojmiasto_pl.recipe new file mode 100644 index 0000000000..8ac35c2edb --- /dev/null +++ b/recipes/trojmiasto_pl.recipe @@ -0,0 +1,37 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe + +class Trojmiasto(BasicNewsRecipe): + title = u'Tr\xf3jmiasto.pl' + __author__ = 'fenuks' + description = u'Wiadomości, imprezy, wydarzenia, spektakle.Gdańsk, Gdynia, Sopot - NOCLEGI, Katalog firm, repertuar kin, wydarzenia, przewodnik, mapa, kwatery, hotele. Portal regionalny trojmiasto.pl' + category = '' + #publication_type = '' + language = 'pl' + encoding = 'iso-8859-2' + extra_css = 'ul {list-style: none; padding:0; margin:0;}' + cover_url = 'http://www.trojmiasto.pl/_img/toplong2/logo_trojmiasto.gif' + #masthead_url = '' + use_embedded_content = False + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + remove_javascript = True + remove_attributes = ['style', 'font'] + ignore_duplicate_articles = {'title', 'url'} + + preprocess_regexps = [(re.compile(ur'Czytaj więcej.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), (re.compile(ur'Zobacz też.*?', re.DOTALL|re.IGNORECASE), lambda match: ''), + (re.compile(ur'[A-ZĄĆĘŁŃÓŚŹŻ \-,.:]*?', re.DOTALL), lambda match: ''),] + + #keep_only_tags = [] + remove_tags = [dict(id=['logo', 'font_small', 'font_big']), dict(attrs={'class':['title-long', 'ankieta', 'newsletter-inside-content newsletter-wrap', 'copyright_box', + 'logo', 'btn btn-photo-add', 'related-info-wrap', 'nTabs', 'article-list', 'rate-player horizontal', 'type-box', 'rate-player' + 'hover-nav', 'live-head tC', 'prev-link', 'next-link', 'ie6']}), dict(attrs={'title':[u'drukuj artykuł', u'podziel się na Facebooku', u'prześlij artykuł']})] + remove_tags_after = dict(attrs={'class':'author-wrap'}) + remove_tags_before = dict(attrs={'class':'text-container'}) + + feeds = [(u'Wszystkie', u'http://rss.trojmiasto.pl/rss,0.xml'), (u'Fakty i opinie', u'http://rss.trojmiasto.pl/rss,1.xml'), (u'Sport', u'http://rss.trojmiasto.pl/rss,2.xml'), (u'Dom', u'http://rss.trojmiasto.pl/rss,3.xml'), (u'Moto', u'http://rss.trojmiasto.pl/rss,4.xml'), (u'Nauka', u'http://rss.trojmiasto.pl/rss,5.xml'), (u'Rozrywka', u'http://rss.trojmiasto.pl/rss,6.xml'), (u'Kultura', u'http://rss.trojmiasto.pl/rss,7.xml'), (u'Rowery', u'http://rss.trojmiasto.pl/rss,8.xml'), (u'Dziecko', u'http://rss.trojmiasto.pl/rss,9.xml'), (u'Zdrowie i uroda', u'http://rss.trojmiasto.pl/rss,10.xml'), (u'Praca', u'http://rss.trojmiasto.pl/rss,11.xml'), (u'Artyku\u0142y czytelnik\xf3w', u'http://rss.trojmiasto.pl/rss,12.xml'), (u'Korki', u'http://rss.trojmiasto.pl/rss,13.xml'), (u'Historia', u'http://rss.trojmiasto.pl/rss,14.xml'), (u'Biznes', u'http://rss.trojmiasto.pl/rss,16.xml'), (u'Kryminalne Tr\xf3jmiasto', u'http://rss.trojmiasto.pl/rss,17.xml'), (u'Przewodnik', u'http://rss.trojmiasto.pl/rss,18.xml'), (u'Aktywne Tr\xf3jmiasto', u'http://rss.trojmiasto.pl/rss,19.xml'), (u'Delux', u'http://rss.trojmiasto.pl/rss,20.xml')] + + def print_version(self, url): + return url + '?print=1'