From 76c2715518f156a6d7b8ec293ec846528a605e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Mon, 4 Mar 2013 22:02:06 +0100 Subject: [PATCH 1/8] hatalska and favicon for money.pl --- recipes/hatalska.recipe | 28 ++++++++++++++++++++++++++++ recipes/icons/hatalska.png | Bin 0 -> 387 bytes recipes/icons/money_pl.png | Bin 0 -> 428 bytes 3 files changed, 28 insertions(+) create mode 100644 recipes/hatalska.recipe create mode 100644 recipes/icons/hatalska.png create mode 100644 recipes/icons/money_pl.png diff --git a/recipes/hatalska.recipe b/recipes/hatalska.recipe new file mode 100644 index 0000000000..10502a427a --- /dev/null +++ b/recipes/hatalska.recipe @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +__license__ = 'GPL v3' +__copyright__ = 'teepel 2012' + +''' +hatalska.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe +import re + +class hatalska(BasicNewsRecipe): + title = u'Hatalska' + __author__ = 'teepel ' + language = 'pl' + description = u'Blog specjalistki z branży mediowo-reklamowej - Natalii Hatalskiej' + oldest_article = 7 + masthead_url='http://hatalska.com/wp-content/themes/jamel/images/logo.png' + max_articles_per_feed = 100 + simultaneous_downloads = 5 + remove_javascript=True + no_stylesheets=True + + remove_tags =[] + remove_tags.append(dict(name = 'div', attrs = {'class' : 'feedflare'})) + + feeds = [(u'Blog', u'http://feeds.feedburner.com/hatalskacom')] diff --git a/recipes/icons/hatalska.png b/recipes/icons/hatalska.png new file mode 100644 index 0000000000000000000000000000000000000000..f6d20feb34ee06ed1cc5deccb1b3d476fcfbe8b3 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF=ES4z)+>ez|hdb!0-zw)bN6Vq11qZ;Z*_ygVhWM2JwP9y8>;15(WW2 zA+Aor$%VCD3s!FY|NnnrLViMC^_#cvW3nqQT)A=V^o7jw=9_mPELpR~KQ6bbZQ|!I zU->8Ny#nfGO!9VjVHV`^`2^%}7I;J!18EO1b~~AE2V^*Ux;Tb#Tu)ADV0Kg0Xg(>y zeOUBVf|*%z0-IsOf&&sq3?3NFV@T6UFu2EXHFZxT`!Rzyqi=^Ke)n8lYF5)`&BP$s zz_-rM#B4v%Fx3**h?11Vl2ohYqEsNoU}Ruuq-$uXYiJ%~Xli9@U}a#UZD43+V4zsO s*bGHOZhlH;S|wbAfn|uHft87cm9YgxLt%LOC7=cdPgg&ebxsLQ03M8aKmY&$ literal 0 HcmV?d00001 diff --git a/recipes/icons/money_pl.png b/recipes/icons/money_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..7a6958856e37b4f6b547558a6217cfa11a0cd52b GIT binary patch literal 428 zcmV;d0aN~oP)JV`uCvV>Ypfc4?D#55%3?a^T`XIk@e=;@@y|a3LuX7v!{UDQ!`HB@|g^ z?X+Xqnc=Xd##$FScy8~v=lwk2@7wzbEaW_XQQ~hd{|#VmHc394Vyw62Q=3n>k>i!yOTMU@4%E}khlwGZ2?D~%(>nq|xvm#Y8H z!HtFIzmvPIU^*VYU+Zbtet3iB!V}x)WdKaaV{YY~8|w`KtLl+mzvS@F4giGzzf2!i W4|T^J!u~n{0000 Date: Mon, 4 Mar 2013 23:42:09 +0100 Subject: [PATCH 2/8] lifehacker_pl --- recipes/icons/lifehacker_pl.png | Bin 0 -> 1143 bytes recipes/lifehacker_pl.recipe | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 recipes/icons/lifehacker_pl.png create mode 100644 recipes/lifehacker_pl.recipe diff --git a/recipes/icons/lifehacker_pl.png b/recipes/icons/lifehacker_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..2019e9169154d6ecc92e2cfa95f4582af7aaf240 GIT binary patch literal 1143 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fHRz`*n+ zz$e7@^S@vJfBygf;?Mst|Ib{$IqUG==FQ9J9on+w@W$D@m(1I|;NIo)|3Ccyf8)dd zA0YbQk3aAJ|8Jf-{n+^{yLKO_?QD07@%M=JYiTMwx@pbXL;EJrnf~?v|Nnpf|9=TI z_Sg6S{}a|tTk-aGXhgg$1G|BkqPU`@xRjt46LXNLY;IiSIxkYGz zovZh${by%&Op_Oqkr5P)_4QlT(^nrItIWcwuc>Vp9@4me&DaCffakVv7F==rp_U&KXI8ljLu5jk;%#(Z5mQ43gNY|G&*3q(G zef>egf<>Dy-#NVPlp?>pkdhL=mEoZ~Hu?4E9R^W7KKE#oh6&T&{QdXmfA*5qoMnX!0pWsHQ9Qzq3__L+mH`YJ zHVjPis!}$r(nbs(UJ?!UF*8?x2d0O2|F3-dWxsq5Z%HA)eJB&337?@qgN7-CmZ_R` z06(X)hD(4}bFKY?ndgD&?DhZuU;lsq{r~E(|9J~mx|Ozi)lT5>i(>E#Vh9Y93|?f?6~fB*mb|M$oL9gjbIFJ3O$P%l?kBUYHDQd5w#e%X<` zkN&^?|Nqnf2jBkxzR)QH%ov;n9+AaB+5?Q;PG;Ky8K#~tjv*44lamrslF|}Wlb=6$ z^61&ar;pQ Date: Mon, 4 Mar 2013 23:44:07 +0100 Subject: [PATCH 3/8] partial fix for telepolis_pl --- recipes/telepolis_pl.recipe | 58 ++++++------------------------------- 1 file changed, 9 insertions(+), 49 deletions(-) diff --git a/recipes/telepolis_pl.recipe b/recipes/telepolis_pl.recipe index ff4803697f..06739fe31d 100644 --- a/recipes/telepolis_pl.recipe +++ b/recipes/telepolis_pl.recipe @@ -8,60 +8,20 @@ import re class telepolis(BasicNewsRecipe): title = u'Telepolis.pl' - __author__ = 'Artur Stachecki ' + __author__ = 'Artur Stachecki , Tomasz Długosz ' + language = 'pl' - description = u'Twój telekomunikacyjny serwis informacyjny.\ - Codzienne informacje, testy i artykuły,\ - promocje, baza telefonów oraz centrum rozrywki' - oldest_article = 7 + description = u'Twój telekomunikacyjny serwis informacyjny.' masthead_url = 'http://telepolis.pl/i/telepolis-logo2.gif' - max_articles_per_feed = 100 - simultaneous_downloads = 5 - remove_javascript = True no_stylesheets = True use_embedded_content = False - remove_tags = [] - remove_tags.append(dict(attrs={'alt': 'TELEPOLIS.pl'})) - - preprocess_regexps = [(re.compile(r'<: .*? :>'), - lambda match: ''), - (re.compile(r'Zobacz:.*?', re.DOTALL), - lambda match: ''), - (re.compile(r'<-ankieta.*?>'), - lambda match: ''), - (re.compile(r'\(Q\!\)'), - lambda match: ''), - (re.compile(r'\(plik.*?\)'), - lambda match: ''), - (re.compile(r'', re.DOTALL), - lambda match: '') - ] - - extra_css = '''.tb { font-weight: bold; font-size: 20px;}''' - feeds = [ - (u'Wiadomości', u'http://www.telepolis.pl/rss/news.php'), - (u'Artykuły', u'http://www.telepolis.pl/rss/artykuly.php') + (u'Wiadomości', u'http://www.telepolis.pl/rss/news.php')#, + #(u'Artykuły', u'http://www.telepolis.pl/rss/artykuly.php') ] - def print_version(self, url): - if 'news.php' in url: - print_url = url.replace('news.php', 'news_print.php') - else: - print_url = url.replace('artykuly.php', 'art_print.php') - return print_url - - def preprocess_html(self, soup): - for image in soup.findAll('img'): - if 'm.jpg' in image['src']: - image_big = image['src'] - image_big = image_big.replace('m.jpg', '.jpg') - image['src'] = image_big - logo = soup.find('tr') - logo.extract() - for tag in soup.findAll('tr'): - for strings in ['Wiadomość wydrukowana', 'copyright']: - if strings in self.tag_to_string(tag): - tag.extract() - return self.adeify_images(soup) + keep_only_tags = [ + dict(name='div', attrs={'class':'flol w510'}), + dict(name='div', attrs={'class':'main_tresc_news'}) + ] From e0aac8018fd0a3abf937d399292fa385b3cdd27f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Tue, 5 Mar 2013 00:02:56 +0100 Subject: [PATCH 4/8] fix indentation --- recipes/antyweb.recipe | 6 +++--- recipes/app_funds.recipe | 1 - recipes/bankier_pl.recipe | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/recipes/antyweb.recipe b/recipes/antyweb.recipe index c2576191dd..b7d3d2583c 100644 --- a/recipes/antyweb.recipe +++ b/recipes/antyweb.recipe @@ -43,6 +43,6 @@ class AntywebRecipe(BasicNewsRecipe): def preprocess_html(self, soup): for alink in soup.findAll('a'): if alink.string is not None: - tstr = alink.string - alink.replaceWith(tstr) - return soup + tstr = alink.string + alink.replaceWith(tstr) + return soup diff --git a/recipes/app_funds.recipe b/recipes/app_funds.recipe index d5734fc451..b0ecbc87b3 100644 --- a/recipes/app_funds.recipe +++ b/recipes/app_funds.recipe @@ -24,4 +24,3 @@ class app_funds(BasicNewsRecipe): auto_cleanup = True feeds = [(u'blog', u'http://feeds.feedburner.com/blogspot/etVI')] - diff --git a/recipes/bankier_pl.recipe b/recipes/bankier_pl.recipe index 8a68d844b3..a9701a80fe 100644 --- a/recipes/bankier_pl.recipe +++ b/recipes/bankier_pl.recipe @@ -47,4 +47,3 @@ class bankier(BasicNewsRecipe): segments = urlPart.split('-') urlPart2 = segments[-1] return 'http://www.bankier.pl/wiadomosci/print.html?article_id=' + urlPart2 - From 37c9111b363f97376f590d73aaca1c025b6b89bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Tue, 5 Mar 2013 00:06:55 +0100 Subject: [PATCH 5/8] fix indentation --- recipes/gazeta_pl_krakow.recipe | 13 ++++++------- recipes/gazeta_pl_warszawa.recipe | 13 ++++++------- recipes/gazeta_pomorska.recipe | 12 +++++------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/recipes/gazeta_pl_krakow.recipe b/recipes/gazeta_pl_krakow.recipe index 59188a5d6a..59b3b00933 100644 --- a/recipes/gazeta_pl_krakow.recipe +++ b/recipes/gazeta_pl_krakow.recipe @@ -49,8 +49,8 @@ class gw_krakow(BasicNewsRecipe): feeds = [(u'Wiadomości', u'http://rss.gazeta.pl/pub/rss/krakow.xml')] def skip_ad_pages(self, soup): - tag=soup.find(name='a', attrs={'class':'btn'}) - if tag: + tag=soup.find(name='a', attrs={'class':'btn'}) + if tag: new_soup=self.index_to_soup(tag['href'], raw=True) return new_soup @@ -95,8 +95,7 @@ class gw_krakow(BasicNewsRecipe): rem.extract() def preprocess_html(self, soup): - self.append_page(soup, soup.body) - if soup.find(id='container_gal'): - self.gallery_article(soup.body) - return soup - + self.append_page(soup, soup.body) + if soup.find(id='container_gal'): + self.gallery_article(soup.body) + return soup diff --git a/recipes/gazeta_pl_warszawa.recipe b/recipes/gazeta_pl_warszawa.recipe index 2d95bcc06f..9e10a0610c 100644 --- a/recipes/gazeta_pl_warszawa.recipe +++ b/recipes/gazeta_pl_warszawa.recipe @@ -46,8 +46,8 @@ class gw_wawa(BasicNewsRecipe): feeds = [(u'Wiadomości', u'http://rss.gazeta.pl/pub/rss/warszawa.xml')] def skip_ad_pages(self, soup): - tag=soup.find(name='a', attrs={'class':'btn'}) - if tag: + tag=soup.find(name='a', attrs={'class':'btn'}) + if tag: new_soup=self.index_to_soup(tag['href'], raw=True) return new_soup @@ -92,8 +92,7 @@ class gw_wawa(BasicNewsRecipe): rem.extract() def preprocess_html(self, soup): - self.append_page(soup, soup.body) - if soup.find(id='container_gal'): - self.gallery_article(soup.body) - return soup - + self.append_page(soup, soup.body) + if soup.find(id='container_gal'): + self.gallery_article(soup.body) + return soup diff --git a/recipes/gazeta_pomorska.recipe b/recipes/gazeta_pomorska.recipe index 083f5cbeed..c611a513c8 100644 --- a/recipes/gazeta_pomorska.recipe +++ b/recipes/gazeta_pomorska.recipe @@ -47,12 +47,12 @@ class GazetaPomorska(BasicNewsRecipe): # # PomorskaRSS - wiadomosci kazdego typu, zakomentuj znakiem "#" # # przed odkomentowaniem wiadomosci wybranego typu: (u'PomorskaRSS', u'http://www.pomorska.pl/rss.xml') - + # # wiadomosci z regionu nie przypisane do okreslonego miasta: # (u'Region', u'http://www.pomorska.pl/region.xml'), - + # # wiadomosci przypisane do miast: - # (u'Bydgoszcz', u'http://www.pomorska.pl/bydgoszcz.xml'), + # (u'Bydgoszcz', u'http://www.pomorska.pl/bydgoszcz.xml'), # (u'Nak\u0142o', u'http://www.pomorska.pl/naklo.xml'), # (u'Koronowo', u'http://www.pomorska.pl/koronowo.xml'), # (u'Solec Kujawski', u'http://www.pomorska.pl/soleckujawski.xml'), @@ -73,9 +73,9 @@ class GazetaPomorska(BasicNewsRecipe): # (u'\u015awiecie', u'http://www.pomorska.pl/swiecie.xml'), # (u'Tuchola', u'http://www.pomorska.pl/tuchola.xml'), # (u'\u017bnin', u'http://www.pomorska.pl/znin.xml') - + # # wiadomosci tematyczne (redundancja z region/miasta): - # (u'Sport', u'http://www.pomorska.pl/sport.xml'), + # (u'Sport', u'http://www.pomorska.pl/sport.xml'), # (u'Zdrowie', u'http://www.pomorska.pl/zdrowie.xml'), # (u'Auto', u'http://www.pomorska.pl/moto.xml'), # (u'Dom', u'http://www.pomorska.pl/dom.xml'), @@ -100,5 +100,3 @@ class GazetaPomorska(BasicNewsRecipe): extra_css = '''h1 { font-size: 1.4em; } h2 { font-size: 1.0em; }''' - - From b201c488e503b30bd03cfef5b2d4ccfefa3947f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Tue, 5 Mar 2013 00:12:57 +0100 Subject: [PATCH 6/8] mainly indentation --- recipes/money_pl.recipe | 6 +++--- recipes/myapple_pl.recipe | 4 ++-- recipes/satkurier.recipe | 5 +---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/recipes/money_pl.recipe b/recipes/money_pl.recipe index 475c2059ff..8171d05a07 100644 --- a/recipes/money_pl.recipe +++ b/recipes/money_pl.recipe @@ -60,7 +60,7 @@ class FocusRecipe(BasicNewsRecipe): ] def print_version(self, url): - if url.count ('money.pl.feedsportal.com'): + if url.count ('money.pl.feedsportal.com'): u = url.find('0Cartykul0C') u = 'http://www.m.money.pl/wiadomosci/artykul/' + url[u + 21:] u = u.replace('0C', '/') @@ -71,6 +71,6 @@ class FocusRecipe(BasicNewsRecipe): u = u.replace ('0B','.') u = u.replace (',0,',',-1,') u = u.replace('0Tutm0Isource0Frss0Gutm0Imedium0Frss0Gutm0Icampaign0Frss/story01.htm', '') - else: + else: u = url.replace('/nc/1','/do-druku/1') - return u + return u diff --git a/recipes/myapple_pl.recipe b/recipes/myapple_pl.recipe index df5708a325..6f7f37633e 100644 --- a/recipes/myapple_pl.recipe +++ b/recipes/myapple_pl.recipe @@ -44,6 +44,6 @@ class MyAppleRecipe(BasicNewsRecipe): def preprocess_html(self, soup): for alink in soup.findAll('a'): if alink.string is not None: - tstr = alink.string - alink.replaceWith(tstr) + tstr = alink.string + alink.replaceWith(tstr) return soup diff --git a/recipes/satkurier.recipe b/recipes/satkurier.recipe index 382f7f8180..6c7520f47b 100644 --- a/recipes/satkurier.recipe +++ b/recipes/satkurier.recipe @@ -8,10 +8,7 @@ class SATKurier(BasicNewsRecipe): title = u'SATKurier.pl' __author__ = 'Artur Stachecki ' language = 'pl' - description = u'Największy i najstarszy serwis poświęcony\ - telewizji cyfrowej, przygotowywany przez wydawcę\ - miesięcznika SAT Kurier. Bieżące wydarzenia\ - z rynku mediów i nowych technologii.' + description = u'Serwis poświęcony telewizji cyfrowej' oldest_article = 7 masthead_url = 'http://satkurier.pl/img/header_sk_logo.gif' max_articles_per_feed = 100 From 99df29c9edce7778bf54aab60e4ca2ce65045018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Tue, 5 Mar 2013 00:22:37 +0100 Subject: [PATCH 7/8] mainly indentation --- recipes/michalkiewicz.recipe | 3 --- recipes/rynek_kolejowy.recipe | 1 - recipes/rzeczpospolita.recipe | 2 -- recipes/samcik_blox.recipe | 2 +- recipes/swiatkindle.recipe | 1 - 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/recipes/michalkiewicz.recipe b/recipes/michalkiewicz.recipe index 7a1e424f0b..4e4aee0db6 100644 --- a/recipes/michalkiewicz.recipe +++ b/recipes/michalkiewicz.recipe @@ -8,8 +8,6 @@ michalkiewicz.pl from calibre.web.feeds.news import BasicNewsRecipe -# - class michalkiewicz(BasicNewsRecipe): title = u'Stanis\u0142aw Michalkiewicz' description = u'Strona autorska * felietony * artyku\u0142y * komentarze' @@ -23,4 +21,3 @@ class michalkiewicz(BasicNewsRecipe): remove_tags = [dict(name='ul', attrs={'class':'menu'})] feeds = [(u'Teksty', u'http://www.michalkiewicz.pl/rss.xml')] - diff --git a/recipes/rynek_kolejowy.recipe b/recipes/rynek_kolejowy.recipe index f68b33f84b..181bf5b6d3 100644 --- a/recipes/rynek_kolejowy.recipe +++ b/recipes/rynek_kolejowy.recipe @@ -37,4 +37,3 @@ class rynek_kolejowy(BasicNewsRecipe): segment = url.split('/') urlPart = segment[3] return 'http://www.rynek-kolejowy.pl/drukuj.php?id=' + urlPart - diff --git a/recipes/rzeczpospolita.recipe b/recipes/rzeczpospolita.recipe index 40cb4db3ac..d1453ab57e 100644 --- a/recipes/rzeczpospolita.recipe +++ b/recipes/rzeczpospolita.recipe @@ -70,5 +70,3 @@ class RzeczpospolitaRecipe(BasicNewsRecipe): forget, sep, index = rest.rpartition(',') return start + '/' + index + '?print=tak' - - diff --git a/recipes/samcik_blox.recipe b/recipes/samcik_blox.recipe index 69bb836c76..0db6b7e8af 100644 --- a/recipes/samcik_blox.recipe +++ b/recipes/samcik_blox.recipe @@ -22,5 +22,5 @@ class samcik(BasicNewsRecipe): remove_tags =[] remove_tags.append(dict(name = 'table', attrs = {'border' : '0'})) - + feeds = [(u'Wpisy', u'http://samcik.blox.pl/rss2')] diff --git a/recipes/swiatkindle.recipe b/recipes/swiatkindle.recipe index 9847d1359e..d8e0e3f403 100644 --- a/recipes/swiatkindle.recipe +++ b/recipes/swiatkindle.recipe @@ -22,4 +22,3 @@ class swiatczytnikow(BasicNewsRecipe): remove_tags = [dict(name = 'ul', attrs = {'class' : 'similar-posts'})] preprocess_regexps = [(re.compile(u'

Czytaj dalej:

'), lambda match: '')] - From 83007ffdfaca49a6e91137c43f7a3f4ce136b70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C5=82ugosz?= Date: Tue, 5 Mar 2013 00:40:16 +0100 Subject: [PATCH 8/8] 2 more indentation fixes and fixed icons size --- recipes/icons/eksiazki.png | Bin 475 -> 1077 bytes recipes/icons/tvn24.png | Bin 5234 -> 1385 bytes recipes/icons/wprost.png | Bin 1727 -> 1018 bytes recipes/icons/wprost_rss.png | Bin 1709 -> 1018 bytes recipes/kp.recipe | 4 ++-- recipes/naszdziennik.recipe | 8 ++++---- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/recipes/icons/eksiazki.png b/recipes/icons/eksiazki.png index 6f4f18d9911808064b0cc7c3136dc3e836675b15..f17e877f0936a4e16fdc5be3691652d5a76a7582 100644 GIT binary patch literal 1077 zcmZ`%e@t3e6uy8q>So2wiCVCo>8#p{59ypTqteO5uDVvurfbsZ1e95ns#6pr&!1q^ zf;yuXg}P*Mt92GI=^srNT-GgWMZ1A+i?b*^pVZinYL>Kw@^;z&+8?{gz2`gM`M%tH zPfp+Y!o1Lsm=FL!Xg)u;2u7-Z2T|aekQ`PFLqHX`fD3?8^NP135ay(YqP#O;W|{sN zCdVrIMFjw~#sh$M1K@!a>H^?%1c2Rg063!n(4^z{E@VOdw6m4#9 zmR*%~tGbm+WoKt+U0ogIx#?VGt8&&ftI=p6DU->d%&(Nm6beO0M+ekU0Tn%g&V4_p zQmN!}xkMsqYHI50>e6WX)oQ;BYQjL+(9jUXy}iAV92?WQT-dd1s_g6>ScS`MHbd{g zz#xu0dwL`Z@kvw)H3$UNN7o+)hoQZiTpa)c=zuOJiJ>0iBj5YO(6sI zWI%=h+F=#{9aqp5`_BC*PoH3ztX z6eML_H@>>IdR?t~H}f543hg~!&ic}NdrZ68WM(iJvEi}o<81k5`NY7)E$x);CmS}8 zDWVl(ikKD2ilM}mfieL}APtqaywTE1YZXyMun$5Y3$73WqG-< za%WQ@=p-Ft*2Z4SYA1;zxo=j4Ul7F~VqFP7nx80+F3V^M z@Le^Ne+=P&XrDvUkK5*dyB{$fcPcY3HHj0S#(cCykL&Lr9U6b_3+=FeAo%t9#pS*} zi{-&eZZRn`AtB(lN}ZU*Otc87vxZYA?|d^oHFN9R+jU@S(`33UzWiCOSW@$+YmXeW zD5$BjZ&=rV&8~2KwNN}s4jjEtpDeh^YFOLLXgK(Kc`PhK8qxg8=AL7B^3{N+u{k7W z@k)>W(xbC*4mVEZDS3D>3P1c-Bd@ekP|+ylRMrb&0I3KoHJQaqMlwoR2B lVQ~-ygxG8UW02Gd#G;n}H(dF+>KAAL`Mkp1nKR{`e*+m5wMqa0 literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI zAngIhZYQ(tK!Rljj_E*J0gT&!&6&%YAu1zPCizZ`zvf=q{q;<0)!I>#>o=*UXA8V!C8<`)MX5lF!N|bSK-a)n*U&h`(Adhz$jZP>*TCG$z(Cn~4KIp@-29Zxv`U}` n0}EZCA|s0s0}CrtV=DtAAQz}%yQbR@paup{S3j3^P6iI2&_i)K(M#K-tp5 z6c3@=S|}o*TT4gP9s;DlG1eFW;jMLFJ>?({i@=+kfQm=kXCbo7+X9aT;G!k~@ks!z zKu_^A07RhynDYR@Fb9Aw;q?1E1efe2Hq~o3Tk@vT~fR* z7sk@c!%~@189c|(gqrpdNEUUIscICh=ao&2DI{LVb&RHYC*(H_j7tW_{jL-_P#Iyg zmOSyeczC8~e75t+3sz&_9Zpj=r|HqtN!LqsER|hS*Uf4ggi^W1&rCF@+PM9Ikrp{7%&nr*hrwW_!*wzfy^4rhi*1cwlvcRoJLmdY}}Sb4}d z-y|^eaerIrHHLdak$-x##4*U zgYLS<dhHDAVd)O2!a4^UyUGC%Q=XYNFwdfdU8QeSdOHBYToSEI(a-B zX~#w2$`tWjls!+uj;G{Mp+MlPxmFud${L3zm%n`#4@@%Kq-K|Dj*u&hTE;l-(hR|1 zu|%4{9o*^EdB4tr%UX+wIPb zXLkL$yn>Atq;PxZ7eBvx|1pc-GcrA2{ovX4(zeBwZ&r!Tn+OF__c~T&GIocQm{c|Q zacSm{Ps9Y#lh+GX55`hUJC?r4?2=ox{dvipo+Qpg4X=_2dTS)TeWzP#Y;m_=W|K`q z%}wF3MM5(YTZphKL|PRhtc&2*41_fUZc~iF79ng{NPO7_7vbsH78Je&hAoC+OJTNb z7>)(UvEg=Hq<-hhb{453)6bimKX%jhnvP{5=c? zQ2^hf{=?R7+kf1#bJuPaXw#8D?b++?*e@^hX5Lrka#8O>b2yQ)U@k2boGG#&GcItw==Wu(6aC5o+sAbGA4;B>+%(dxFE;ckkzkBuA%pYwfN-=j`I@=I-I?1ycrq(ndCT>N2Me zeP~3QIY#<;M*13hpZA3T=%O*YIv9)&+JJyT8|oi3)H|k)#u%c}05uWzA44eFC(tkE V{|yw9|Ik`(OEVkO3KNgSzX1iAYp?(S literal 5234 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 diff --git a/recipes/icons/wprost.png b/recipes/icons/wprost.png index f81878f2d2f131df98c36ce189201cca216c3005..d8449781754e5955484813f125468657904e81d6 100644 GIT binary patch delta 915 zcmdnb`-@$%Gr-TCmrII^fq{Y7)59eQNDF{42Q!e=(B%)FsOVkKI3vI(#1$y;=fT52 zH*f#{|NjmH!!8DfZ+(-#b@%_;ci`vtUH||6`~Um**M^oarPaSrp8ir$`lY_**Rc~o z#mL}mW80_LlluV%DdlTyq4sJj} zpcq zpHs7de)ze0+j~=+kN%-wo7=yX)K`3|r~!(8432znZ1r=)=D$y$eF};C6chn;=J#3i zzAsq(PTS~XU^o!{xpNn2`j^tG4=!FnKm9s-{DZqM(2GF9A4`_MH?#eml@DZp&MgAE z^~e0h|K7g)+Sm#-6KLh<>;j-Ie_y-+DtIfa`c_Wut(4L`HNE=x=63Hb9p0(yy;IYD zr>q6k2{h=flIB}!<+q9&Z)H^USf()nqo=YY$S)X3qX7;9E=JC|2M-)tXg_a(!~6yJ zfB$~8?$@975B@zg&wTN--E;rp=I^hwEqFGUXg+?Xo4THZ6}E;HBMS?|5`zTy0S_uT*a|Ic^6^PS)KsU|(9u?tp)2h$9#40UvL zXd%l2Bf;NJ`%RtzeBjl>=cn1Bd_8hySX2-oG#U*hk&r`Q$#37uuiwaFAz-v5f>JOt zj!EGNg`xnfyWVIh3IJLD@o`D@;-&mTxrQKsqTof*N`NhS2QjGFDow5s8j&pIeEZSs94q53_2!-e4#Ww zOV$3893ECZc}9+iC~Q>O&`2VvvZ+OzisQDXZ7$hZ?0ttj#qbNRDDKD)UuL2H7^nN72 z45{1N$H%Kt6CjQJ@h>I8C|pK-{xY@>bfE&n7{^540GJIjiwoO0!|a)`-3)lTBYq$U zwx5Y-AI9?vVU`nY>x{T?MEb_Cr7dh}12gPkCL1!PBYbBLG;KO;!GcT~sJoZQ*aD{8 zi6+ueo-blQ3vqUXtsP)1d&J2NqFF%37Kp=abdD#Mv;q2w0huwe*hKN7U}%~(Y|cWx z7mlvmB#DlPOe|pw8!sE4m4EK(Ak0GV4OZXTnlJ0KIf zBs4-C5R4_JNS1~n?3t2?7zE_coQurn;#qvjsyNur1zWpebn7lj$O_2P28&+@O`Rq( zG?VVw4eq08iWy{N&KEBU!D7~k7c60NrNQ7CoZAx_zDkFEw)$#yRb;@~^UFdjN?e|L z`BNdT9oWA5r)gN7Iu(=Sk1P+I6x=^q;I}2iGynD<+18VWvm2hKiA@C^x@IEG>Tzun zZW9!NZnsxN9sNF3tnMi7xOn1y;k$`PdlZWa_x7{%CFf;KKk)_8(kY*nul`aFoBVz} z`))#5DkfGqHQm4VJZ3?%-mNov_4)>x*ES|yJLtPj(g`}$O%4qX)Ya&@eJZ}BN9XIA zgaigedB0kp#IVdhU2sv~DE4D7li}^%_<+gC%#33vzur$6>8%nhpOnkwZJJ^@rK{3E zIB*Zr%rvc0PHknh(mB60rwF^9is*CVIqb&dA758TcHjEon%HdVSiiZ#C>K)Eti87P z`5jQ67p7r`@c>_&akqBeD~wjg2f>2_N4dF$H%nEWYntSnH*ZN5L4yscJ=BDUS*lWl zNg1$z%Jq#YMrncq;gCb{-`Pf^>qAR8gZl^c+H3uOO)EP$@3o7k;C*F%-THeO-uD$y zV_X093I?OR6&_H8d zl%YQ{F?J6xKOm*+4)4j8UHa*40ez>@hRMErMd_KX6>Uup%qs}zktr*8a%bbi zp6_hh^_e&H1mP8gyflgN|2e=AefwgCv7mZk%RM)T9-poKg_}Ok?~h*46%=`@grC_~ zbf_ehW6pIqzn$>s4aK`7{OwNF?Ge$kEJ;~h5xvE2Q_^+shuHTfR*_)!mDbdE>cKMq zZJ+QOE5_xj^V|LFgirsoGS?5U>-TgUti2t6B4+avnu!;0zP!FscNm_1FNT~QmRt9gdMJN zSzdW2xN72xIXXHwx_|UU@617qk4<2idqr`%J|6RZJUnK*&-HP4w=t_RC~ld+baeM} ibLU0Po#(^#_Td7N3&hh|5gKsGbV7o{1Me(OI`luBdaWk_ diff --git a/recipes/icons/wprost_rss.png b/recipes/icons/wprost_rss.png index 5ce1b5563d78b4da0af01342f35ae1fabbe5744e..d8449781754e5955484813f125468657904e81d6 100644 GIT binary patch delta 922 zcmZ3>`-@$%Gr-TCmrII^fq{Y7)59eQNDF{42Q!e=(B%)FsOVkKI3vI(#1$y;=fT52 zH*f#{|NjmH!!8DfZ+(-#b@%_;ci`vtUH||6`~Um**M^oarPaSrp8ir$`lY_**Rc~o z#mL}mW80_LlluV%DdlTyq4sJj} zpcq zpHs7de)ze0+j~=+kN%-wo7=yX)K`3|r~!(8432znZ1r=)=D$y$eF};C6chn;=J#3i zzAsq(PTS~XU^o!{xpNn2`j^tG4=!FnKm9s-{DZqM(2GF9A4`_MH?#eml@DZp&MgAE z^~e0h|K7g)+Sm#-6KLh<>;j-Ie_y-+DtIfa`c_Wut(4L`HNE=x=63Hb9p0(yy;IYD zr>q6k2{h=flIB}!<+q9&Z)H^USf()nqo=YY$S)X3qX7;9E=JC|2M-)tXg_a(!~6yJ zfB$~8?$@975B@zg&wTN--E;rp=I^hwEqFGUXg+?Xo4(-eW8krhz-;k29 zWz)Ki8@H}ryScnzO?gpTQbJnc%EHp(?;pN=`j+`2H8m|E;qzyHjvOAYJRVM7?sWEB zrv(LXiipYzON-y1GvNfM$OA90yi8wDU+?_f(n(wHc z3Xhl)d`3SYC@M^kqtLe4b)AOs=8Qa6B8{zOTb`Z@O1TaS?83{1OS!0$mRe5 literal 1709 zcmY*YXIK+i6de#ONE3l1G(iL`B&G;rKokX$r6>^r7YkKHMO{QeECjJo)?QF)t1HH` zwpCCBbuB2Oiz`@=qGH)4WJ)qHsWX#(kw3fd`{v$r&$;)`d-r>>7o`)LdVSoiXko~8j%7VR67v`?R@PE_bg5=h!dO$KS-A+n>BC@cbaaLbN? zbsGVrd({R)TB!v6ss4USCNuOzzxO9eTCFyy7)Hrp15Xej1WR3Wo>r;I&Mw_wufQ)< zCo2I-_I%JiZTYV2RpnL6{f7b8wY}E8eygV_Vo&Li1g!E%nO>^}fGF4lERD&v^^IV| zlvFynIZxaCjOy#tK6pg+%V>N+bE}?0F-^l=Lnc9JZrvgF8d?$C#K3|yS}q4*FfZRg zem|Y^z!3v3`WaZT)RK#2SGV@=eQk3K`L07%Q4L7y>o+h)dT+1U*ygHGlnE}n?nB*b+h z;xvKSUVx0BM2L40drA;z4`iGt>cx?nS|ax25PKJd>58!2U~2~I$$`f@A$HENH521b zms#2&3|Egq)NPU?It~T-lX&P9K9QHNShNIj^}<)A4XoLq2wMQ#yWj~) z@aVBJGn>J68^KkSjk1BwZRK;r@VI62nRCG;`Rp-i;0+wh7DX+B+>X|qt*I6T9X&oj zyt2&e;q*W{%)15OTK6yuuhnJXD&n5~_5+d|2Z{q$=lB*~{!Q#SqECG5VV2xl(qd#I z!yWG5Oe9=FqOr{J>X^M>dynW^PPLre|F-0f$=-JL9Fp67bcW)%k|jSOn>XsC=J_9* zKC55%iLWk=$iU@lkA@rPp2W>eHokOtPo3%T+;b}v&+YJEt7ruqG)fK+4K~snvp+zP zu~k@bP>kR6ltiYz_)zglQ}g)u9W17wU;S+sGdFjMTk?x-q`C1TN#uw^mLPqU*{GLQ zfuX_KXd}z|x@Poa=3@ru$Hr7?n@1^QY68ctKKa|{#iF)L@4S~c+E1ukRcT%bYb_k7 zXLbf`*BqB-;bsW{pPP8~X3}%qq8#Ac+xPMdOD>+$wk~T>ty;A@Lk9QU%4nyD-O1CQ z8a^Ti2~0h|GSxgwQY`It5B*bYK9CY##_8GCZQOh_;HRweV?Hmud?jzI>S|N2<@nuD z!}U#FPL)h%McI`e*jRN@rWxJU-OUQ%pu%lZytgMVfECl&TG7~V5%=j!1Jb!^)^NRJ zX^yGM^7w2)QBdm3D}o1SHkfX9lQ7nsr;YUABHNt%xU#9ioplD~+_QEr9NF5jbxO|D z;wS4HHhdKHK0pP@;CYRvK^+pUV@lxqLRyH-^s>^7uj@ zzbRZ_A(tDRmeBscg3R@)87sH^w}3Z8$nzEQe1;12-km2w0TdPz6?|n*;?92oa6`kq diff --git a/recipes/kp.recipe b/recipes/kp.recipe index f52fcef60b..85bf356b4d 100644 --- a/recipes/kp.recipe +++ b/recipes/kp.recipe @@ -47,6 +47,6 @@ class KrytykaPolitycznaRecipe(BasicNewsRecipe): def preprocess_html(self, soup): for alink in soup.findAll('a'): if alink.string is not None: - tstr = alink.string - alink.replaceWith(tstr) + tstr = alink.string + alink.replaceWith(tstr) return soup diff --git a/recipes/naszdziennik.recipe b/recipes/naszdziennik.recipe index 4c7b78c199..7d3f27da8b 100644 --- a/recipes/naszdziennik.recipe +++ b/recipes/naszdziennik.recipe @@ -15,7 +15,7 @@ class naszdziennik(BasicNewsRecipe): no_stylesheets = True keep_only_tags =[dict(attrs = {'id' : 'article'})] - + #definiujemy nową funkcje; musi zwracać listę feedów wraz z artykułami def parse_index(self): #adres do parsowania artykułów @@ -28,7 +28,7 @@ class naszdziennik(BasicNewsRecipe): sections = [] #deklaracja pierwszej sekcji jako pusty string section = '' - + #pętla for, która analizuje po kolei każdy tag "news-article" for item in soup.findAll(attrs = {'class' : 'news-article'}) : #w tagu "news-article szukamy pierwszego taga h4" @@ -51,11 +51,11 @@ class naszdziennik(BasicNewsRecipe): #jako tytuł użyty będzie tekst pomiędzy tagami article_title = self.tag_to_string(article_a) #a data będzie tekstem z pierwszego taga h4 znalezionego w tagu title-datetime - article_date = self.tag_to_string(article_title_datetime.find('h4')) + article_date = self.tag_to_string(article_title_datetime.find('h4')) #zebrane elementy dodajemy do listy zadeklarowanej w linijce 44 articles[section].append( { 'title' : article_title, 'url' : article_url, 'date' : article_date }) #po dodaniu wszystkich artykułów dodajemy sekcje do listy feedów, korzystając z list sekcji znajdujących się w słowniku for section in sections: feeds.append((section, articles[section])) #zwracamy listę feedów, której parsowaniem zajmie się calibre - return feeds \ No newline at end of file + return feeds