From ac2cc2834c8d0f1b4205e2c8224f3bdb6adbb76d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 20 Feb 2012 11:11:32 +0530 Subject: [PATCH] Various Polish nwes sources by fenuks --- recipes/ciekawostki_historyczne.recipe | 48 +++++++++++++ recipes/gameplay_pl.recipe | 21 ++++++ recipes/icons/ciekawostki_historyczne.png | Bin 0 -> 994 bytes recipes/icons/gameplay_pl.png | Bin 0 -> 991 bytes recipes/icons/in4_pl.png | Bin 0 -> 357 bytes recipes/icons/informacje_usa.png | Bin 0 -> 808 bytes recipes/icons/kresy_pl.png | Bin 0 -> 4063 bytes recipes/icons/oclab_pl.png | Bin 0 -> 881 bytes recipes/icons/overclock_pl.png | Bin 0 -> 817 bytes recipes/icons/palmtop_pl.png | Bin 0 -> 366 bytes recipes/icons/pc_arena.png | Bin 0 -> 1104 bytes recipes/icons/pc_centre_pl.png | Bin 0 -> 2846 bytes recipes/icons/pc_foster.png | Bin 0 -> 694 bytes recipes/icons/polska_times.png | Bin 0 -> 322 bytes recipes/icons/pure_pc.png | Bin 0 -> 386 bytes recipes/icons/tanuki.png | Bin 0 -> 1017 bytes recipes/icons/tvn24.png | Bin 0 -> 5234 bytes recipes/icons/webhosting_pl.png | Bin 0 -> 1419 bytes recipes/in4_pl.recipe | 44 ++++++++++++ recipes/informacje_usa.recipe | 18 +++++ recipes/kresy_pl.recipe | 14 ++++ recipes/oclab_pl.recipe | 31 +++++++++ recipes/overclock_pl.recipe | 37 ++++++++++ recipes/palmtop_pl.recipe | 14 ++++ recipes/pc_arena.recipe | 31 +++++++++ recipes/pc_centre_pl.recipe | 41 +++++++++++ recipes/pc_foster.recipe | 35 ++++++++++ recipes/polska_times.recipe | 81 ++++++++++++++++++++++ recipes/pure_pc.recipe | 33 +++++++++ recipes/tanuki.recipe | 37 ++++++++++ recipes/tvn24.recipe | 24 +++++++ recipes/webhosting_pl.recipe | 39 +++++++++++ 32 files changed, 548 insertions(+) create mode 100644 recipes/ciekawostki_historyczne.recipe create mode 100644 recipes/gameplay_pl.recipe create mode 100644 recipes/icons/ciekawostki_historyczne.png create mode 100644 recipes/icons/gameplay_pl.png create mode 100644 recipes/icons/in4_pl.png create mode 100644 recipes/icons/informacje_usa.png create mode 100644 recipes/icons/kresy_pl.png create mode 100644 recipes/icons/oclab_pl.png create mode 100644 recipes/icons/overclock_pl.png create mode 100644 recipes/icons/palmtop_pl.png create mode 100644 recipes/icons/pc_arena.png create mode 100644 recipes/icons/pc_centre_pl.png create mode 100644 recipes/icons/pc_foster.png create mode 100644 recipes/icons/polska_times.png create mode 100644 recipes/icons/pure_pc.png create mode 100644 recipes/icons/tanuki.png create mode 100644 recipes/icons/tvn24.png create mode 100644 recipes/icons/webhosting_pl.png create mode 100644 recipes/in4_pl.recipe create mode 100644 recipes/informacje_usa.recipe create mode 100644 recipes/kresy_pl.recipe create mode 100644 recipes/oclab_pl.recipe create mode 100644 recipes/overclock_pl.recipe create mode 100644 recipes/palmtop_pl.recipe create mode 100644 recipes/pc_arena.recipe create mode 100644 recipes/pc_centre_pl.recipe create mode 100644 recipes/pc_foster.recipe create mode 100644 recipes/polska_times.recipe create mode 100644 recipes/pure_pc.recipe create mode 100644 recipes/tanuki.recipe create mode 100644 recipes/tvn24.recipe create mode 100644 recipes/webhosting_pl.recipe diff --git a/recipes/ciekawostki_historyczne.recipe b/recipes/ciekawostki_historyczne.recipe new file mode 100644 index 0000000000..7c5138196d --- /dev/null +++ b/recipes/ciekawostki_historyczne.recipe @@ -0,0 +1,48 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re +class Ciekawostki_Historyczne(BasicNewsRecipe): + title = u'Ciekawostki Historyczne' + oldest_article = 7 + __author__ = 'fenuks' + description = u'Serwis popularnonaukowy - odkrycia, kontrowersje, historia, ciekawostki, badania, ciekawostki z przeszłości.' + category = 'history' + language = 'pl' + masthead_url= 'http://ciekawostkihistoryczne.pl/wp-content/themes/Wordpress_Magazine/images/logo-ciekawostki-historyczne-male.jpg' + cover_url='http://ciekawostkihistoryczne.pl/wp-content/themes/Wordpress_Magazine/images/logo-ciekawostki-historyczne-male.jpg' + max_articles_per_feed = 100 + preprocess_regexps = [(re.compile(ur'Ten artykuł ma kilka stron.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

Zobacz też:

.*?', re.DOTALL), lambda match: '')] + no_stylesheets=True + remove_empty_feeds=True + keep_only_tags=[dict(name='div', attrs={'class':'post'})] + remove_tags=[dict(id='singlepostinfo')] + feeds = [(u'Staro\u017cytno\u015b\u0107', u'http://ciekawostkihistoryczne.pl/tag/starozytnosc/feed/'), (u'\u015aredniowiecze', u'http://ciekawostkihistoryczne.pl/tag/sredniowiecze/feed/'), (u'Nowo\u017cytno\u015b\u0107', u'http://ciekawostkihistoryczne.pl/tag/nowozytnosc/feed/'), (u'XIX wiek', u'http://ciekawostkihistoryczne.pl/tag/xix-wiek/feed/'), (u'1914-1939', u'http://ciekawostkihistoryczne.pl/tag/1914-1939/feed/'), (u'1939-1945', u'http://ciekawostkihistoryczne.pl/tag/1939-1945/feed/'), (u'Powojnie (od 1945)', u'http://ciekawostkihistoryczne.pl/tag/powojnie/feed/'), (u'Recenzje', u'http://ciekawostkihistoryczne.pl/category/recenzje/feed/')] + + def append_page(self, soup, appendtag): + tag=soup.find(name='h7') + if tag: + if tag.br: + pass + elif tag.nextSibling.name=='p': + tag=tag.nextSibling + nexturl = tag.findAll('a') + for nextpage in nexturl: + tag.extract() + nextpage= nextpage['href'] + soup2 = self.index_to_soup(nextpage) + pagetext = soup2.find(name='div', attrs={'class':'post'}) + for r in pagetext.findAll('div', attrs={'id':'singlepostinfo'}): + r.extract() + for r in pagetext.findAll('div', attrs={'class':'wp-caption alignright'}): + r.extract() + for r in pagetext.findAll('h1'): + r.extract() + pagetext.find('h6').nextSibling.extract() + pagetext.find('h7').nextSibling.extract() + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup + + \ No newline at end of file diff --git a/recipes/gameplay_pl.recipe b/recipes/gameplay_pl.recipe new file mode 100644 index 0000000000..f3384263d6 --- /dev/null +++ b/recipes/gameplay_pl.recipe @@ -0,0 +1,21 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class Gameplay_pl(BasicNewsRecipe): + title = u'Gameplay.pl' + oldest_article = 7 + __author__ = 'fenuks' + description = u'gameplay.pl - serwis o naszych zainteresowaniach, grach, filmach, książkach, muzyce, fotografii i konsolach.' + category = 'games, movies, books, music' + language = 'pl' + masthead_url= 'http://gameplay.pl/img/gpy_top_logo.png' + cover_url= 'http://gameplay.pl/img/gpy_top_logo.png' + max_articles_per_feed = 100 + no_stylesheets= True + keep_only_tags=[dict(name='div', attrs={'class':['news_endpage_tit', 'news']})] + remove_tags=[dict(name='div', attrs={'class':['galeria', 'noedit center im']})] + feeds = [(u'Wiadomo\u015bci', u'http://gameplay.pl/rss/')] + + def image_url_processor(self, baseurl, url): + if 'http' not in url: + return 'http://gameplay.pl'+ url[2:] + else: + return url diff --git a/recipes/icons/ciekawostki_historyczne.png b/recipes/icons/ciekawostki_historyczne.png new file mode 100644 index 0000000000000000000000000000000000000000..fa0e2c05918ad211c78bddc01dec56fd524b0d9e GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4n0NzxLR|m<|NjpN{{LUNcu{;} z0uWSGRQ&$^`~UyHKYsoE^yTxFYgZYV7#SFW`WWQpC+HGE%m74vQ8o+P!->8yg$Y2B1Cj=g#x?^r|Q?{r>F>Cnx)(M-S4{(oBqu z^|iHtP6t}U&cMLIz#tV|B6k1za_W$FD|9}7e|NZCx=g(J`Eb4Z!y;G3a&d%1&#@-+za-^*6|MM6BzkmDx z^XLDM?|KUQ_KHn&;Nh@^8fFz{~zA{KXr1do_-w<&%?=+|382J|HqI2 z|Nj2}@@-dpTZOt>8z+0Uv`mG$>HjBB{{Q*)|MS;#lO`>4ciZG(zsuHokB#*o*|K~&lqnR8a((#o5&{vNK57INBoYGz7CTJo`} zRkFIOrgGZZiH4e%^7=Zmsp;m*#@gB1+SW2VD<=yFv#A*ub9-xNOG`^fTUWEYtFy7C zi-(7sm-GAk`|Ib+$J?{9{ckw1;K76o8$Mj`jjU7K)jx2dH<;s>XJw6j0 z!pi*e;_4g|>xu#k)jYh@JToIJT~k9#eRE|4xSeaAlY@)Bvs0t1-P5Pr2OLvwIaKXk-%vg5wQFR$krl}42w{UT|cewMBJeEzvRm6e}A{}$JY*&^{KcE76kblv!k zMOR;$e$2jZ$iVQe!c+AV!-q0p0I8O^MwFx^mZVxG7o`Fz1|tJQBV7X{T_b}K14}DY zODkh@Z39y)1B0dp7dI3Qx%nxXX_X)ih9C_F#vz6#RtCma1}54DWVH@9=?9 z>`4Ojq=5CWknoLR^P_QSV_Q?MeddR1)ujQSWy_@|bbxNCNkyfc2z+@nIqLO9AwmaqMa`^NwNec0uut zVeyV(@{VEfYclUu67X~9L>7F}s2KnN010qNS#tmY07w7;07w8v$!k6U z00K2hL_t(Y$JLc>chWEv$H~J@(u7h{N`pEyFgFT{;s&}ob>h=DzyAla(3A~rQ#{8v z-Z$+zxxXg8|NqTxwf>(#m{0(q4CU`GeCZ6h2&9y%9TGx2ob#wl>IqDB+)Mgtnwr5Q zp&vgv8V;X6i&$Mg3+-@}x)>inKPlb>t^0l_I87hKBrBd0YR=ycl5{Vo#bZ_tAS$x7 zGHL)Ez1XFUjA;g_Ee|w(IgjP5$=DB|=(Sr<7CHoo)Ehs*+Gnnu=X|R&1eq5g*41RG z=vGHa5Da~WGT zf8XHN7URQRJ5RH$-`Ef6z9A0lxcm-~WxoVUWj39OmBx}r9R6dd2 zt(6ebm+q1ZD(_YzoC;rUNbsfr3%5ZcNTmw;o2$-uDYRb4tFm4_jw`DKvb^c1ldG#A zJJm-qR1XxQdzHpG(lzr0fjzCrzY(-kE{-7_*LBZd6l_-D zVN2NESl`KP5^-PDih+q);X3QC{{pI=HU;-v|LiodEtp?fW#sOZR>xb$wNK)4x{daI z)5cQ^uj(ueei6&$W%{n6_*OUDgh?Cw*n*ZBB)t@R=eOc&nB)BluIsA(3ohyJ6_xSY z_bo;E$9BP+e0#n|zm0Xkxq!^40 z42^URjC73*LJTaeOf9X9&9x0otqcsB8eH5^H00)|WTsUDH5i!d8d&HW8-^H~TNxQz bnHXssm;p5;Y@E0fsDZ)L)z4*}Q$iB}$b@wS literal 0 HcmV?d00001 diff --git a/recipes/icons/informacje_usa.png b/recipes/icons/informacje_usa.png new file mode 100644 index 0000000000000000000000000000000000000000..4c30e3bcbc1cf57f55d5c8803b97fd9411373209 GIT binary patch literal 808 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�=S_bH5{R(slEbR(RG4by3lHC@hl7L!iSYKbu%IaLQ!FHM;8uU z<$Vzp$Sc^dQL006%F2AaP5Rn$lXqrVS(WCUw)5c~3FoZRfXWs6rXV|>_8 z@!SVU*Co)og}~M>l!c_Tlt$H>8X|l5kvn#b(%2~Z6DO#??|xG033=^cNsUB^?B7qI zyPIJ5HvI7f{?=AD_iPjC%%n6fe26_Zx|9gYlUdw+o~r$K(fz=u#n|OhSsqVgCzIHN zgSbW!Uqi#H0Gz2w^2gtxoKB+z0z~il9rQ$EsY_e}py)cG+jkS$yO-I_I7VL|GcW#( zU{}`)rCMz*wZH!mLRD7~nRFaVW22N(siiP;W@ad!?WOvjPXbi9VnLE)Y3UgTN+`5q zo#bdr=8n8Z{`he`+a|QVhv=RAD;%(B%i8W>nA7_XMavE<6w&q|}epUG!`LMb_h8V(aZa5uqQZzX=! zcxPGiO|->DbpL*;4&03r3Q?YzVB*Pt!#LZ^M#Zx%?7=}i%Ubrmb$JLol_EW!l^fCH zp`IQP0^{5{lHYoQp_6Z4cj0tq zQkJt>tjj~ovJ^lmoyHyyxq*pp|U{t>gUAH^#cQ9~iB?mbBSYhP!}Cl0J>=XJS#Y-m_!pLvFf zr=G;gP9QxGe@hFo!=EAczyk!gZbhw$-Ef1F9?wd*Sil||BY*rjGcW!Ov+q1!sf1cx zP3+T$Y5wcKq4Ul=KH3u+faJ)SoPPd!rhf8Yn0@CfPilfef?Ki?@lNLB^`(zYpQvy>;Z6waI`fBZPb)2Azptg86paW*~p5Di~=jP^ademl>| zph7CeQ>U1D@p#bShZ-A?U;4^i`b_tCb!`?vR$a#2$030caFGk@Y&%>DA` z7$1Cqok}B1HYiG^PLD=W!{G|ED(X@?m6nBT6!8qBGEs1xN<&gxOK|5-st$aD>U%y( zu)CZ18szqo0bB{Gq_mSs%>F(K@4bt8z7O-mKFU)YE5Q}NAHA!K(9YWk@4Su3zK>Nr z7m3{P)B2C}u0(1qEuDq_)*iV`DVfAhCMl=WlxJs_nj)d9XtlLywYBK2ZTRDH^o|bn z);84YYLsB;rUwHb`DG8NWEAPTNXMzv`Xw7#cCI|=TYS+&(@=szgwK!g`EJ_i|5x(A zVXh(&LVL}C0000bbVXQnWMOn=I%9HWVRU5xGB7bREif`IGB8vyIXX2tIx{ybFf}?b zFoJ+YMgRZ+C3HntbYx+4WjbwdWNBu305UK!FfA}PEipM%F*Z6gFgi3gD=;-WFfh1j Rx}^XB002ovPDHLkV1jJ?yYT=3 literal 0 HcmV?d00001 diff --git a/recipes/icons/oclab_pl.png b/recipes/icons/oclab_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..45ecd2533e2bb03f69b4257ba25f0a28daf372e6 GIT binary patch literal 881 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U~~!a32~LJ&ys1#mTkMBv}E>!@co-)PWG9@7Dt5EE( z(CMvAT{E};@Q%hk>pkc7>Q1apU%z0&(Onac?M~mg&~A3SQh#Of=4BthfBXOc|M7=+ zyyo|oY+Ld1$G3^c_b5-O3|lhg_`}<)FP(b);qBFzPidU7ee|+b&c;dBJ&rUqPd*boE6Ho44 zef6|-=jx9?zN=2D)t^+?ynmD7^u~@d&q{X1yp^4sS3Z6D?&Gh&{`}kM@FD;GMw=x?d|ST61ysmu#4xu8FW8#B;6vSt z-v<_~d+mJqk#geU4i~rMH;y0t(&;%x-|FdS|MN47duqjwJbz)o?!3N&+MjL{^-12R zMHH4Z%wMm(?!(X39ocM;cFoy;a3AL-{XUJq+XS|22E0E$kLjg9JQ!JNSeId@tr^8Hy+k+8VNt^tavxg*I+%t9CqLn^Mt>F4Re{>-9<8f7@nx}7w|vX z?0F=I=cCV`IkxPZ{&Pp2TUt2P{Y*CNto8X_t~wi^ANX8t|1*z!R#|!eIn{6M2KV(p zODy|ddCKem^XWxDzrOw3yq9U2`QH4+^3|-b_0(xqkw%4?<8s-)~TR@v+EV(6*@%S~SvJ?ldgHXp{iwrLf#K4fvbQY{Ow_;(ggO{Rki-l@u$0^pNgFBmK zK#8;~5G|5ecNM7X;c#Mxo9a|K+#mT4i|9zcJIQmNP+&i&(4JsxLn6nZM3%KQXl6`L zDpTbMn?Igoxo)$2J10E864=Q17YJ(rN#?w$lLdZ1WV6^*x-EvE;IN!`8FY=eMFM@~rDRl*c$_AL}#9@fx;$Y!2gN#Iny;a%814 zwVJ?8m&=j!Nfd64yuvGKXO6hpT1aVc0;#UR%kLz}E(-HEGl4&xsbom^X;nlXMuKu- zek3R@?Fq^yCbYUO+ny{hFAjOjiyL^h;Mk~&1G8hivT26Z7R)RWg?c=R@q$!%r9AWb vJZYU3mi3WC&xF#a5$JDK303C5(gywkyv=eIh26?X00000NkvXXu0mjfO1*c` literal 0 HcmV?d00001 diff --git a/recipes/icons/palmtop_pl.png b/recipes/icons/palmtop_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..d711a4168254495d92c85a6798dc1740a48f1bdd GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU{r~^}mv4X0T>G-;(3d~I z{;b*bCa3C2PTi9?@BXy(J^6C$&YNvpjxe#@NlG~*Ci0}M<*G$)2v9F$NswPKgTu2M zX&_FLx4R2Zzopr07^i8!vFvP literal 0 HcmV?d00001 diff --git a/recipes/icons/pc_arena.png b/recipes/icons/pc_arena.png new file mode 100644 index 0000000000000000000000000000000000000000..10be204b36ef71e5f0efe7fc747803a2d3f8e024 GIT binary patch literal 1104 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 PNCShXtDnm{r-UW|>D(US literal 0 HcmV?d00001 diff --git a/recipes/icons/polska_times.png b/recipes/icons/polska_times.png new file mode 100644 index 0000000000000000000000000000000000000000..f233f4551819cfe0b32be3757633c9a22de84470 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VWRT5PC|NsB0RjX!pbeuVJ zX7}#h<>lp}p`pe~N;7B9ba8Qc_wJpsv2j{j+VYCpRX|;gN#5=*jQ^Q*?*TcS1s;*b zK-vS0-A-oP0U7?DE{-7_*OL<(7~LEV1QHTL%*?_VjSoqj;>$e3< zS4L-*c|>JomNzb5v#Ggn+KU%2D_VLF96h;f&%Rj;m#^Kv`#e|JSD;?TByV>YrZn!F z6d;GQz$3C4NPB>>+sSM@AfwaM#W95AdU8TYnXmQ>9q(k1uS}aRT`DtJ!Wg-B;_@jH z+m%x_gI@W|{(lxm4u(UF@v@$l= zHZZj^FlcIUaYNCNo1c=IRteHzple{FYh)Q>Xkuk#4pgdbUL)0lXG8W=oX{an^L HB{Ts5xps}g literal 0 HcmV?d00001 diff --git a/recipes/icons/tanuki.png b/recipes/icons/tanuki.png new file mode 100644 index 0000000000000000000000000000000000000000..fe46d7e8dc59ead8604d29cb63e7812664a0c54c GIT binary patch literal 1017 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 literal 0 HcmV?d00001 diff --git a/recipes/icons/webhosting_pl.png b/recipes/icons/webhosting_pl.png new file mode 100644 index 0000000000000000000000000000000000000000..0e11a3065ea9667b2687c661d0dfea446fccb248 GIT binary patch literal 1419 zcmV;61$6p}P)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy32;bRa{vGi!vFvd!vV){sAK>D010+*L1zE}05AXm05AZ~?u=Ie z00gp0L_t(o!|j+`NE=xgfX|E>8;!D?)Yzs`+)h+9ilRu0c&Wh<5QGGjQi=%mL9srm zZ=(1h6siS@4}I}gER_m^B2}ciCTg325ig*NRYNpY5Y5d=GUjqJvk%#gaW&Smu$E>1 z$8YAG|2zMGIGh=TrfKjq1$x^8j1VKl2r)vpEx-sdLjQXq*1sH2(=>u0;hqu%VYk~k z91f4iyXLjfxS~R8wYt8(zN4e#^z<|ceLi1bUteu)?a0VT=oLz<)iyLVw70k0Y_`i& z>Gk^3($dz}RtVt@S9pbxP$-<8omHt+27@68F$^O~vbVQ)YHEt2s37NZxuc__tE;PQ zHv95aB9X}HbehfPo0t3wq14n=g+gJmShQMgD0es<0Dz5+4Xf1}ge(>-GBUEPtSl-j z>he?(5fL}+)OA7t0J&VwX0z35wcG6u5U10*u&@9C*xA|H+}sRp3Wj0D#l-*s|K6VG z(U3U$w_E|Zz`0NlOq<3^?JR@WD1a-ogI_Oq*N+hE|*55 z2|$XX)M|BFdiuk=cge0UqPm*w>T^B_OzkO@X$gn9CzOP^5{ysFBylZQg{CvAq zy0^S6c<`X2qQc|x1g2eGUBz)+BoY}6hAZ=iJ%@60b44Q2=g*&yj*bX|*xuf*udk1Z zi76>5nVp^0>2!H{c{4LJ>0&YNa`~-RWOvu`;>Gzo34-$ZsN-XR{1pM7ot-U{$%cl8 zwzs!&9KW15tdKw;C@Lx%92{I*TRT2J=5RPUIXM7;l9H0x*jSB5qfjVxI$ibi=Nt$L z2=6?8eCO#?@b?jgAPCB0IbvhM#qT}@LE_`%A%x+!QCJ}qMWs^dz`(%ddA=l9WoN=++iMQQGUp9z8-LBQK=?_U#`+5W@Za{pjfEgoK12 z+e0)>8;!=4loX**n3R+>F)Jk2FP{k0;6f z-Ccn|P+3{&^?CzLqtOTi0=Zmnx7)8wdYur2u(7cb0FaT9ad2=D

', re.DOTALL), lambda match: ''), (re.compile(ur'

Zobacz też:.*?

', re.DOTALL), lambda match: '')] + keep_only_tags=[dict(name='div', attrs={'class':'box box-single'})] + remove_tags_after= dict(attrs={'class':'tags'}) + remove_tags= [dict(attrs={'class':['postmetadata', 'tags', 'banner']}), dict(name='a', attrs={'title':['Drukuj', u'Wyślij']})] + feeds = [(u'Informacje', u'http://www.informacjeusa.com/feed/')] diff --git a/recipes/kresy_pl.recipe b/recipes/kresy_pl.recipe new file mode 100644 index 0000000000..3dfc2c057c --- /dev/null +++ b/recipes/kresy_pl.recipe @@ -0,0 +1,14 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class Kresy(BasicNewsRecipe): + title = u'Kresy' + __author__ = 'fenuks' + description = u'portal społeczności kresowej' + language = 'pl' + masthead_url= 'http://www.kresy.pl/public/img/logo.png' + cover_url= 'http://www.kresy.pl/public/img/logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + keep_only_tags= [dict(id='artykul')] + remove_tags= [dict(attrs={'class':['twitter-share-button', 'likefbborder', 'tagi']})] + feeds = [(u'Wszystkie', u'http://www.kresy.pl/rss')] diff --git a/recipes/oclab_pl.recipe b/recipes/oclab_pl.recipe new file mode 100644 index 0000000000..b0df89ba72 --- /dev/null +++ b/recipes/oclab_pl.recipe @@ -0,0 +1,31 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class OCLab(BasicNewsRecipe): + title = u'OCLab.pl' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Portal OCLab.pl jest miejscem przyjaznym pasjonatom sprzętu komputerowego, w szczególności overclockerom, które będzie służyć im za aktualną bazę wiedzy o podkręcaniu komputera, źródło aktualnych informacji z rynku oraz opinii na temat sprzętu komputerowego.' + category = 'IT' + language = 'pl' + cover_url= 'http://www.idealforum.ru/attachment.php?attachmentid=7963&d=1316008118' + no_stylesheets = True + keep_only_tags=[dict(id='main')] + remove_tags_after= dict(attrs={'class':'single-postmetadata'}) + remove_tags=[dict(attrs={'class':['single-postmetadata', 'pagebar']})] + feeds = [(u'Wpisy', u'http://oclab.pl/feed/')] + + + def append_page(self, soup, appendtag): + tag=soup.find(attrs={'class':'contentjumpddl'}) + if tag: + nexturl=tag.findAll('option') + for nextpage in nexturl[1:-1]: + soup2 = self.index_to_soup(nextpage['value']) + pagetext = soup2.find(attrs={'class':'single-entry'}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for r in appendtag.findAll(attrs={'class':'post-nav-bottom-list'}): + r.extract() + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup diff --git a/recipes/overclock_pl.recipe b/recipes/overclock_pl.recipe new file mode 100644 index 0000000000..d7f4c8093d --- /dev/null +++ b/recipes/overclock_pl.recipe @@ -0,0 +1,37 @@ +import re +from calibre.web.feeds.news import BasicNewsRecipe +class Overclock_pl(BasicNewsRecipe): + title = u'Overclock.pl' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Vortal poświęcony tematyce hardware, kładący największy nacisk na podkręcanie / overclocking (włącznie z extreme) i chłodzenie / cooling (air cooling, water cooling, freon cooling, dry ice, liquid nitrogen).' + category = 'IT' + language = 'pl' + masthead_url='http://www.overclock.pl/gfx/logo_m.png' + cover_url='http://www.overclock.pl/gfx/logo_m.png' + no_stylesheets = True + remove_empty_feeds = True + preprocess_regexps = [(re.compile(ur'Komentarze do aktualności:.*?', re.DOTALL), lambda match: ''), (re.compile(ur'

Nawigacja

', re.DOTALL), lambda match: '') ] + keep_only_tags=[dict(name='div', attrs={'class':'news'}), dict(id='articleContent')] + remove_tags=[dict(name='span', attrs={'class':'info'}), dict(attrs={'class':'shareit'})] + feeds = [(u'Aktualno\u015bci', u'http://www.overclock.pl/rss.news.xml'), (u'Testy i recenzje', u'http://www.overclock.pl/rss.articles.xml')] + + + def append_page(self, soup, appendtag): + tag=soup.find(id='navigation') + if tag: + nexturl=tag.findAll('option') + tag.extract() + for nextpage in nexturl[2:]: + soup2 = self.index_to_soup(nextpage['value']) + pagetext = soup2.find(id='content') + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + rem=appendtag.find(attrs={'alt':'Pierwsza'}) + if rem: + rem.parent.extract() + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/palmtop_pl.recipe b/recipes/palmtop_pl.recipe new file mode 100644 index 0000000000..ace772e7e7 --- /dev/null +++ b/recipes/palmtop_pl.recipe @@ -0,0 +1,14 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class palmtop_pl(BasicNewsRecipe): + title = u'Palmtop.pl' + __author__ = 'fenuks' + description = 'wortal technologii mobilnych' + category = 'mobile' + language = 'pl' + cover_url='http://cdn.g-point.biz/wp-content/themes/palmtop-new/images/header_palmtop_logo.png' + masthead_url='http://cdn.g-point.biz/wp-content/themes/palmtop-new/images/header_palmtop_logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + + feeds = [(u'Newsy', u'http://palmtop.pl/feed/atom/')] diff --git a/recipes/pc_arena.recipe b/recipes/pc_arena.recipe new file mode 100644 index 0000000000..faefeb25c0 --- /dev/null +++ b/recipes/pc_arena.recipe @@ -0,0 +1,31 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class PC_Arena(BasicNewsRecipe): + title = u'PCArena' + oldest_article = 18300 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Najnowsze informacje z branży IT - testy, recenzje, aktualności, rankingi, wywiady. Twoje źródło informacji o sprzęcie komputerowym.' + category = 'IT' + language = 'pl' + masthead_url='http://pcarena.pl/public/design/frontend/images/logo.gif' + cover_url= 'http://pcarena.pl/public/design/frontend/images/logo.gif' + no_stylesheets = True + keep_only_tags=[dict(attrs={'class':['artHeader', 'art']})] + remove_tags=[dict(attrs={'class':'pages'})] + feeds = [(u'Newsy', u'http://pcarena.pl/misc/rss/news'), (u'Artyku\u0142y', u'http://pcarena.pl/misc/rss/articles')] + + def append_page(self, soup, appendtag): + tag=soup.find(name='div', attrs={'class':'pagNum'}) + if tag: + nexturl=tag.findAll('a') + tag.extract() + for nextpage in nexturl[1:]: + nextpage= 'http://pcarena.pl' + nextpage['href'] + soup2 = self.index_to_soup(nextpage) + pagetext = soup2.find(attrs={'class':'artBody'}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/pc_centre_pl.recipe b/recipes/pc_centre_pl.recipe new file mode 100644 index 0000000000..68a17888ce --- /dev/null +++ b/recipes/pc_centre_pl.recipe @@ -0,0 +1,41 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class PC_Centre(BasicNewsRecipe): + title = u'PC Centre' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Portal komputerowy, a w nim: testy sprzętu komputerowego, recenzje gier i oprogramowania. a także opisy produktów związanych z komputerami.' + category = 'IT' + language = 'pl' + masthead_url= 'http://pccentre.pl/views/images/logo.gif' + cover_url= 'http://pccentre.pl/views/images/logo.gif' + no_stylesheets = True + keep_only_tags= [dict(id='content')] + remove_tags=[dict(attrs={'class':['ikony r', 'list_of_content', 'dot accordion']}), dict(id='comments')] + feeds = [(u'Publikacje', u'http://pccentre.pl/backend.php?mode=a'), (u'Aktualno\u015bci', u'http://pccentre.pl/backend.php'), (u'Sprz\u0119t komputerowy', u'http://pccentre.pl/backend.php?mode=n§ion=2'), (u'Oprogramowanie', u'http://pccentre.pl/backend.php?mode=n§ion=3'), (u'Gry komputerowe i konsole', u'http://pccentre.pl/backend.php?mode=n§ion=4'), (u'Internet', u'http://pccentre.pl/backend.php?mode=n§ion=7'), (u'Bezpiecze\u0144stwo', u'http://pccentre.pl/backend.php?mode=n§ion=5'), (u'Multimedia', u'http://pccentre.pl/backend.php?mode=n§ion=6'), (u'Biznes', u'http://pccentre.pl/backend.php?mode=n§ion=9')] + + + def append_page(self, soup, appendtag): + tag=soup.find(name='div', attrs={'class':'pages'}) + if tag: + nexturl=tag.findAll('a') + tag.extract() + for nextpage in nexturl[:-1]: + nextpage= 'http://pccentre.pl' + nextpage['href'] + soup2 = self.index_to_soup(nextpage) + pagetext = soup2.find(id='content') + rem=pagetext.findAll(attrs={'class':['subtitle', 'content_info', 'list_of_content', 'pages', 'social2', 'pcc_acc', 'pcc_acc_na']}) + for r in rem: + r.extract() + rem=pagetext.findAll(id='comments') + for r in rem: + r.extract() + rem=pagetext.findAll('h1') + for r in rem: + r.extract() + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/pc_foster.recipe b/recipes/pc_foster.recipe new file mode 100644 index 0000000000..ab8c2b66b1 --- /dev/null +++ b/recipes/pc_foster.recipe @@ -0,0 +1,35 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class PC_Foster(BasicNewsRecipe): + title = u'PC Foster' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Vortal technologiczny: testy, recenzje sprzętu komputerowego i telefonów, nowinki hardware, programy i gry dla Windows. Podkręcanie, modding i Overclocking.' + category = 'IT' + language = 'pl' + masthead_url='http://pcfoster.pl/public/images/logo.png' + cover_url= 'http://pcfoster.pl/public/images/logo.png' + no_stylesheets= True + remove_empty_feeds= True + keep_only_tags= [dict(id=['news_details', 'review_details']), dict(attrs={'class':'pager more_top'})] + remove_tags=[dict(name='p', attrs={'class':'right'})] + feeds = [(u'G\u0142\xf3wny', u'http://pcfoster.pl/public/rss/main.xml')] + + + def append_page(self, soup, appendtag): + nexturl= appendtag.find(attrs={'alt':u'Następna strona'}) + if nexturl: + appendtag.find(attrs={'class':'pager more_top'}).extract() + while nexturl: + nexturl='http://pcfoster.pl' + nexturl.parent['href'] + soup2 = self.index_to_soup(nexturl) + nexturl=soup2.find(attrs={'alt':u'Następna strona'}) + pagetext = soup2.find(attrs={'class':'content'}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for r in appendtag.findAll(attrs={'class':'review_content double'}): + r.extract() + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/polska_times.recipe b/recipes/polska_times.recipe new file mode 100644 index 0000000000..4126576fe2 --- /dev/null +++ b/recipes/polska_times.recipe @@ -0,0 +1,81 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re +class Polska_times(BasicNewsRecipe): + title = u'Polska Times' + __author__ = 'fenuks' + description = u'Internetowe wydanie dziennika ogólnopolskiego Polska The Times. Najświeższe informacje: wydarzenia w kraju i na świecie, reportaże, poradniki, opinie.' + category = 'newspaper' + language = 'pl' + masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/polska.gif?17' + oldest_article = 7 + max_articles_per_feed = 100 + remove_emty_feeds= True + no_stylesheets = True + 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: '') ] + keep_only_tags= [dict(id=['tytul-artykulu', 'kontent'])] + remove_tags_after= dict(id='material-tagi') + remove_tags=[dict(attrs={'id':'reklama_srodtekst_0'}), dict(attrs={'id':'material-tagi'}), dict(name='div', attrs={'class':'zakladki'}), dict(attrs={'title':u'CZYTAJ TAKŻE'}), dict(attrs={'id':'podobne'}), dict(name='a', attrs={'href':'http://www.dzienniklodzki.pl/newsletter'})] + feeds = [(u'Fakty', u'http://polskatimes.feedsportal.com/c/32980/f/533648/index.rss'), (u'Opinie', u'http://www.polskatimes.pl/rss/opinie.xml'), (u'Sport', u'http://polskatimes.feedsportal.com/c/32980/f/533649/index.rss'), (u'Pieni\u0105dze', u'http://polskatimes.feedsportal.com/c/32980/f/533657/index.rss'), (u'Twoje finanse', u'http://www.polskatimes.pl/rss/twojefinanse.xml'), (u'Kultura', u'http://polskatimes.feedsportal.com/c/32980/f/533650/index.rss'), (u'Dodatki', u'http://www.polskatimes.pl/rss/dodatki.xml')] + + 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 append_page(self, soup, appendtag): + nexturl=soup.find(id='nastepna_strona') + while nexturl: + soup2= self.index_to_soup(nexturl['href']) + nexturl=soup2.find(id='nastepna_strona') + pagetext = soup2.find(id='tresc') + for dictionary in self.remove_tags: + v=pagetext.findAll(attrs=dictionary['attrs']) + for delete in v: + delete.extract() + for b in pagetext.findAll(name='b'): + if b.string: + if u'CZYTAJ TEŻ' in b.string or u'Czytaj także' in b.string or u'Czytaj też' in b.string or u'Zobacz także' in b.string: + b.extract() + for center in pagetext.findAll(name='center'): + if center.h4: + if center.h4.a: + center.extract() + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for paginator in appendtag.findAll(attrs={'class':'stronicowanie'}): + paginator.extract() + + def image_article(self, soup, appendtag): + nexturl=soup.find('a', attrs={'class':'nastepna'}) + urls=[] + while nexturl: + if nexturl not in urls: + urls.append(nexturl) + else: + break + soup2= self.index_to_soup('http://www.polskatimes.pl/artykul/' + nexturl['href']) + nexturl=soup2.find('a', attrs={'class':'nastepna'}) + if nexturl in urls: + break; + pagetext = soup2.find(id='galeria-material') + pos = len(appendtag.contents) + appendtag.insert(pos, '
') + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for rem in appendtag.findAll(attrs={'class':['galeriaNawigator', 'miniaturyPojemnik']}): + rem.extract() + for paginator in appendtag.findAll(attrs={'class':'stronicowanie'}): + paginator.extract() + + def preprocess_html(self, soup): + if soup.find('a', attrs={'class':'nastepna'}): + self.image_article(soup, soup.body) + elif soup.find(id='nastepna_strona'): + self.append_page(soup, soup.body) + return soup + + + def get_cover_url(self): + soup = self.index_to_soup('http://www.prasa24.pl/gazeta/metropolia-warszawska/') + 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/pure_pc.recipe b/recipes/pure_pc.recipe new file mode 100644 index 0000000000..7a6c43bb7e --- /dev/null +++ b/recipes/pure_pc.recipe @@ -0,0 +1,33 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class PurePC(BasicNewsRecipe): + title = u'PurePC' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Artykuły, aktualności, sprzęt, forum, chłodzenie, modding, urządzenia mobilne - wszystko w jednym miejscu.' + category = 'IT' + language = 'pl' + masthead_url= 'http://www.purepc.pl/themes/new/images/purepc.jpg' + cover_url= 'http://www.purepc.pl/themes/new/images/purepc.jpg' + no_stylesheets = True + keep_only_tags= [dict(id='content')] + remove_tags_after= dict(attrs={'class':'fivestar-widget'}) + remove_tags= [dict(id='navigator'), dict(attrs={'class':['box-tools', 'fivestar-widget', 'PageMenuList']})] + feeds = [(u'Wiadomo\u015bci', u'http://www.purepc.pl/node/feed')] + + + def append_page(self, soup, appendtag): + nexturl= appendtag.find(attrs={'class':'pager-next'}) + if nexturl: + while nexturl: + soup2 = self.index_to_soup('http://www.purepc.pl'+ nexturl.a['href']) + nexturl=soup2.find(attrs={'class':'pager-next'}) + pagetext = soup2.find(attrs={'class':'article'}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for r in appendtag.findAll(attrs={'class':['PageMenuList', 'pager', 'fivestar-widget']}): + r.extract() + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/tanuki.recipe b/recipes/tanuki.recipe new file mode 100644 index 0000000000..666cb8aa77 --- /dev/null +++ b/recipes/tanuki.recipe @@ -0,0 +1,37 @@ +from calibre.web.feeds.news import BasicNewsRecipe +import re +class tanuki(BasicNewsRecipe): + title = u'Tanuki' + oldest_article = 7 + __author__ = 'fenuks' + category = 'anime, manga' + language = 'pl' + max_articles_per_feed = 100 + encoding='utf-8' + extra_css= 'ul {list-style: none; padding: 0; margin: 0;} .kadr{float: left;} .dwazdania {float: right;}' + preprocess_regexps = [(re.compile(ur'

', re.DOTALL), lambda match: ''), (re.compile(ur'', re.DOTALL), lambda match: '')] + remove_empty_feeds= True + no_stylesheets = True + keep_only_tags=[dict(attrs={'class':['animename', 'storyname', 'nextarrow','sideinfov', 'sidelinfov', 'sideinfo', 'sidelinfo']}), dict(name='table', attrs={'summary':'Technikalia'}), dict(attrs={'class':['chaptername','copycat']}), dict(id='rightcolumn'), dict(attrs={'class':['headn_tt', 'subtable']})] + remove_tags=[dict(name='div', attrs={'class':'screen'}), dict(id='randomtoplist'), dict(attrs={'class':'note'})] + feeds = [(u'Anime', u'http://anime.tanuki.pl/rss_anime.xml'), (u'Manga', u'http://manga.tanuki.pl/rss_manga.xml'), (u'Tomiki', u'http://manga.tanuki.pl/rss_mangabooks.xml'), (u'Artyku\u0142y', u'http://czytelnia.tanuki.pl/rss_czytelnia_artykuly.xml'), (u'Opowiadania', u'http://czytelnia.tanuki.pl/rss_czytelnia.xml')] + + + def append_page(self, soup, appendtag): + nexturl= appendtag.find(attrs={'class':'nextarrow'}) + if nexturl: + while nexturl: + soup2 = self.index_to_soup('http://czytelnia.tanuki.pl'+ nexturl['href']) + nexturl=soup2.find(attrs={'class':'nextarrow'}) + pagetext = soup2.find(attrs={'class':['chaptername', 'copycat']}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + pagetext = soup2.find(attrs={'class':'copycat'}) + pos = len(appendtag.contents) + appendtag.insert(pos, pagetext) + for r in appendtag.findAll(attrs={'class':'nextarrow'}): + r.extract() + + def preprocess_html(self, soup): + self.append_page(soup, soup.body) + return soup \ No newline at end of file diff --git a/recipes/tvn24.recipe b/recipes/tvn24.recipe new file mode 100644 index 0000000000..5d3791efb0 --- /dev/null +++ b/recipes/tvn24.recipe @@ -0,0 +1,24 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class tvn24(BasicNewsRecipe): + title = u'TVN24' + oldest_article = 7 + max_articles_per_feed = 100 + __author__ = 'fenuks' + description = u'Sport, Biznes, Gospodarka, Informacje, Wiadomości Zawsze aktualne wiadomości z Polski i ze świata' + category = 'news' + language = 'pl' + masthead_url= 'http://www.tvn24.pl/_d/topmenu/logo2.gif' + cover_url= 'http://www.tvn24.pl/_d/topmenu/logo2.gif' + extra_css= 'ul {list-style: none; padding: 0; margin: 0;} li {float: left;margin: 0 0.15em;}' + remove_empty_feeds = True + remove_javascript = True + no_stylesheets = True + keep_only_tags=[dict(id='tvn24_wiadomosci_detal'), dict(name='h1', attrs={'class':'standardHeader1'}), dict(attrs={'class':['date60m rd5', 'imageBackground fl rd7', 'contentFromCMS']})] + remove_tags_after= dict(name='div', attrs={'class':'socialBoxesBottom'}) + remove_tags=[dict(attrs={'class':['tagi_detal', 'socialBoxesBottom', 'twitterBox', 'commentsInfo', 'textSize', 'obj_ukrytydruk obj_ramka1_r', 'related newsNews align-right', 'box', 'newsUserList', 'watchMaterial text']})] + feeds = [(u'Najnowsze', u'http://www.tvn24.pl/najnowsze.xml'), (u'Polska', u'www.tvn24.pl/polska.xml'), (u'\u015awiat', u'http://www.tvn24.pl/swiat.xml'), (u'Sport', u'http://www.tvn24.pl/sport.xml'), (u'Biznes', u'http://www.tvn24.pl/biznes.xml'), (u'Meteo', u'http://www.tvn24.pl/meteo.xml'), (u'Micha\u0142ki', u'http://www.tvn24.pl/michalki.xml'), (u'Kultura', u'http://www.tvn24.pl/kultura.xml')] + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/recipes/webhosting_pl.recipe b/recipes/webhosting_pl.recipe new file mode 100644 index 0000000000..aeb98477f3 --- /dev/null +++ b/recipes/webhosting_pl.recipe @@ -0,0 +1,39 @@ +from calibre.web.feeds.news import BasicNewsRecipe +class webhosting_pl(BasicNewsRecipe): + title = u'Webhosting.pl' + __author__ = 'fenuks' + description = 'Webhosting.pl to pierwszy na polskim rynku serwis poruszający w szerokim aspekcie tematy związane z hostingiem, globalną Siecią i usługami internetowymi. Głównym celem przedsięwzięcia jest dostarczanie przydatnej i bogatej merytorycznie wiedzy osobom, które chcą tworzyć i efektywnie wykorzystywać współczesny Internet.' + category = 'web' + language = 'pl' + cover_url='http://webhosting.pl/images/logo.png' + masthead_url='http://webhosting.pl/images/logo.png' + oldest_article = 7 + max_articles_per_feed = 100 + no_stylesheets = True + remove_empty_feeds = True + #keep_only_tags= [dict(name='div', attrs={'class':'content_article'}), dict(attrs={'class':'paging'})] + #remove_tags=[dict(attrs={'class':['tags', 'wykop', 'facebook_button_count', 'article_bottom']})] + feeds = [(u'Newsy', u'http://webhosting.pl/feed/rss/an'), + (u'Artyku\u0142y', u'http://webhosting.pl/feed/rss/aa'), + (u'Software', u'http://webhosting.pl/feed/rss/n/12'), + (u'Internet', u'http://webhosting.pl/feed/rss/n/9'), + (u'Biznes', u'http://webhosting.pl/feed/rss/n/13'), + (u'Bezpiecze\u0144stwo', u'http://webhosting.pl/feed/rss/n/10'), + (u'Blogi', u'http://webhosting.pl/feed/rss/ab'), + (u'Programowanie', u'http://webhosting.pl/feed/rss/n/8'), + (u'Kursy', u'http://webhosting.pl/feed/rss/n/11'), + (u'Tips&Tricks', u'http://webhosting.pl/feed/rss/n/15'), + (u'Imprezy', u'http://webhosting.pl/feed/rss/n/22'), + (u'Wywiady', u'http://webhosting.pl/feed/rss/n/24'), + (u'Porady', u'http://webhosting.pl/feed/rss/n/3027'), + (u'Znalezione w sieci', u'http://webhosting.pl/feed/rss/n/6804'), + (u'Dev area', u'http://webhosting.pl/feed/rss/n/24504'), + (u"Webmaster's blog", u'http://webhosting.pl/feed/rss/n/29195'), + (u'Domeny', u'http://webhosting.pl/feed/rss/n/11513'), + (u'Praktyka', u'http://webhosting.pl/feed/rss/n/2'), + (u'Serwery', u'http://webhosting.pl/feed/rss/n/11514'), + (u'Inne', u'http://webhosting.pl/feed/rss/n/24811'), + (u'Marketing', u'http://webhosting.pl/feed/rss/n/11535')] + + def print_version(self, url): + return url.replace('webhosting.pl', 'webhosting.pl/print') \ No newline at end of file