From bb284a240e4040ba1ec2524532c41720eae2af5c Mon Sep 17 00:00:00 2001 From: unkn0w7n <51942695+unkn0w7n@users.noreply.github.com> Date: Mon, 14 Oct 2024 09:48:49 +0530 Subject: [PATCH] remove dead recipes These recipes are based on RSS feeds that no longer work. --- recipes/icons/rabble_ca.png | Bin 190 -> 0 bytes recipes/icons/radikal_tr.png | Bin 1429 -> 0 bytes recipes/icons/radio_praha.png | Bin 236 -> 0 bytes recipes/icons/randerslokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/realitatea.png | Bin 3555 -> 0 bytes recipes/icons/rebelion.png | Bin 736 -> 0 bytes recipes/icons/red_aragon.png | Bin 366 -> 0 bytes recipes/icons/replicavedetelor.png | Bin 523 -> 0 bytes recipes/icons/republica.png | Bin 1371 -> 0 bytes recipes/icons/reuters_ja.png | Bin 430 -> 0 bytes recipes/icons/revista_bla.png | Bin 134 -> 0 bytes recipes/icons/revista_cromos.png | Bin 1032 -> 0 bytes recipes/icons/revista_piaui.png | Bin 2139 -> 0 bytes recipes/icons/revista_semana.png | Bin 554 -> 0 bytes recipes/icons/revista_summa.png | Bin 1308 -> 0 bytes recipes/icons/rga.png | Bin 916 -> 0 bytes recipes/icons/rheinische_post.png | Bin 677 -> 0 bytes recipes/icons/rian_eng.png | Bin 2440 -> 0 bytes recipes/icons/rian_spa.png | Bin 2440 -> 0 bytes recipes/icons/roger_ebert.png | Bin 579 -> 0 bytes recipes/icons/roger_ebert_blog.png | Bin 579 -> 0 bytes recipes/icons/rollingstone.png | Bin 590 -> 0 bytes recipes/icons/romanialibera.png | Bin 195 -> 0 bytes recipes/icons/roskildelokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/rubikon_de.png | Bin 309 -> 0 bytes recipes/icons/rudersdallokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/rue89.png | Bin 639 -> 0 bytes recipes/icons/rusiahoy.png | Bin 190 -> 0 bytes recipes/icons/rynek_infrastruktury.png | Bin 723 -> 0 bytes recipes/icons/rynek_zdrowia.png | Bin 240 -> 0 bytes recipes/icons/sabit_fikir.png | Bin 1065 -> 0 bytes recipes/icons/sage_news.png | Bin 689 -> 0 bytes recipes/icons/sage_news_opinion.png | Bin 2617 -> 0 bytes recipes/icons/salonica_press_news.png | Bin 2373 -> 0 bytes recipes/icons/samanyolu_haber.png | Bin 456 -> 0 bytes recipes/icons/samanyolu_teknoloji.png | Bin 3078 -> 0 bytes recipes/icons/sarajevo_x.png | Bin 227 -> 0 bytes recipes/icons/sardinia_post.png | Bin 1164 -> 0 bytes recipes/icons/satira.png | Bin 703 -> 0 bytes recipes/icons/sb_nation.png | Bin 2945 -> 0 bytes recipes/icons/schattenblick.png | Bin 223 -> 0 bytes recipes/icons/schwarzerpfeil.png | Bin 1309 -> 0 bytes recipes/icons/science_news_recent_issues.png | Bin 600 -> 0 bytes recipes/icons/science_x.png | Bin 0 -> 784 bytes recipes/icons/sciencedaily.png | Bin 306 -> 0 bytes recipes/icons/seanhannity.png | Bin 1083 -> 0 bytes recipes/icons/security_watch.png | Bin 4077 -> 0 bytes recipes/icons/serverside.png | Bin 1056 -> 0 bytes recipes/icons/sg_hu.png | Bin 514 -> 0 bytes recipes/icons/shacknews.png | Bin 1167 -> 0 bytes recipes/icons/shortlist.png | Bin 498 -> 0 bytes recipes/icons/sigma_live.png | Bin 1723 -> 0 bytes recipes/icons/sign_on_sd.png | Bin 562 -> 0 bytes recipes/icons/silicon_republic.png | Bin 510 -> 0 bytes recipes/icons/singtao_daily.png | Bin 2395 -> 0 bytes recipes/icons/siol.png | Bin 165 -> 0 bytes recipes/icons/sisainlive.png | Bin 1319 -> 0 bytes recipes/icons/sizinti_derigisi.png | Bin 1828 -> 0 bytes recipes/icons/skanderborglokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/skylife.png | Bin 1872 -> 0 bytes recipes/icons/slate_star_codex.png | Bin 2066 -> 0 bytes recipes/icons/slovo.png | Bin 1500 -> 0 bytes recipes/icons/sme.png | Bin 990 -> 0 bytes recipes/icons/sn_dk.png | Bin 1050 -> 0 bytes recipes/icons/snopes.png | Bin 1410 -> 0 bytes recipes/icons/socialdiva.png | Bin 921 -> 0 bytes recipes/icons/soenderborglokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/soldiers.png | Bin 245 -> 0 bytes recipes/icons/something_awful.png | Bin 159 -> 0 bytes recipes/icons/sondagsavisen_dk.png | Bin 495 -> 0 bytes recipes/icons/southernstar.png | Bin 1654 -> 0 bytes recipes/icons/spin_magazine.png | Bin 317 -> 0 bytes recipes/icons/sportowefakty.png | Bin 350 -> 0 bytes recipes/icons/sporza_be.png | Bin 802 -> 0 bytes recipes/icons/sputnik.png | Bin 0 -> 316 bytes recipes/icons/stamgasten.png | Bin 545 -> 0 bytes recipes/icons/standardmoney.png | Bin 364 -> 0 bytes recipes/icons/stars_and_stripes.png | Bin 1181 -> 0 bytes recipes/icons/starwars.png | Bin 652 -> 0 bytes recipes/icons/stnn.png | Bin 2248 -> 0 bytes recipes/icons/strategic_culture.png | Bin 626 -> 0 bytes recipes/icons/strategy-business.png | Bin 120 -> 0 bytes recipes/icons/sueddeutsche_mobil.png | Bin 1126 -> 0 bytes recipes/icons/sueddeutschezeitung.png | Bin 267 -> 0 bytes recipes/icons/superbebe.png | Bin 300 -> 0 bytes recipes/icons/superesportes.png | Bin 1678 -> 0 bytes recipes/icons/svd_se.png | Bin 147 -> 0 bytes recipes/icons/syddjurslokalavisen_dk.png | Bin 801 -> 0 bytes recipes/rabble_ca.recipe | 56 -------- recipes/radikal_tr.recipe | 59 -------- recipes/radio_praha.recipe | 45 ------ recipes/randerslokalavisen_dk.recipe | 32 ----- recipes/realitatea.recipe | 40 ------ recipes/rebelion.recipe | 37 ----- recipes/red_aragon.recipe | 51 ------- recipes/replicavedetelor.recipe | 50 ------- recipes/republica.recipe | 21 --- recipes/republika.recipe | 70 --------- recipes/reuters_ja.recipe | 22 --- recipes/revista_bla.recipe | 57 -------- recipes/revista_cromos.recipe | 38 ----- recipes/revista_piaui.recipe | 34 ----- recipes/revista_semana.recipe | 11 -- recipes/revista_summa.recipe | 22 --- recipes/rga.recipe | 60 -------- recipes/rheinische_post.recipe | 57 -------- recipes/rian_spa.recipe | 33 ----- recipes/roger_ebert.recipe | 108 -------------- recipes/roger_ebert_blog.recipe | 125 ---------------- recipes/rollingstone.recipe | 28 ---- recipes/romanialibera.recipe | 48 ------- recipes/roskildelokalavisen_dk.recipe | 32 ----- recipes/rubikon_de.recipe | 33 ----- recipes/rudersdallokalavisen_dk.recipe | 32 ----- recipes/rue89.recipe | 80 ----------- recipes/rusiahoy.recipe | 43 ------ recipes/rynek_infrastruktury.recipe | 38 ----- recipes/rynek_zdrowia.recipe | 35 ----- recipes/sa_gazeta.recipe | 18 --- recipes/sabit_fikir.recipe | 14 -- recipes/sage_news.recipe | 33 ----- recipes/sage_news_opinion.recipe | 37 ----- recipes/salonica_press_news.recipe | 35 ----- recipes/samanyolu_haber.recipe | 53 ------- recipes/samanyolu_teknoloji.recipe | 49 ------- recipes/sarajevo_x.recipe | 73 ---------- recipes/sardinia_post.recipe | 19 --- recipes/satira.recipe | 18 --- recipes/sb_nation.recipe | 57 -------- recipes/schattenblick.recipe | 14 -- recipes/schwarzerpfeil.recipe | 30 ---- recipes/sciencedaily.recipe | 40 ------ recipes/seanhannity.recipe | 31 ---- recipes/security_watch.recipe | 19 --- recipes/serverside.recipe | 33 ----- recipes/sg_hu.recipe | 17 --- recipes/shacknews.recipe | 17 --- recipes/shortlist.recipe | 66 --------- recipes/sigma_live.recipe | 14 -- recipes/sign_on_sd.recipe | 54 ------- recipes/silicon_republic.recipe | 19 --- recipes/singtao_daily.recipe | 79 ---------- recipes/siol.recipe | 58 -------- recipes/sisainlive.recipe | 49 ------- recipes/sizinti_derigisi.recipe | 31 ---- recipes/skanderborglokalavisen_dk.recipe | 32 ----- recipes/skylife.recipe | 31 ---- recipes/slate_star_codex.recipe | 49 ------- recipes/slovo.recipe | 41 ------ recipes/sme.recipe | 79 ---------- recipes/smilezilla.recipe | 68 --------- recipes/sn_dk.recipe | 27 ---- recipes/snopes.recipe | 43 ------ recipes/socialdiva.recipe | 53 ------- recipes/soenderborglokalavisen_dk.recipe | 32 ----- recipes/soldiers.recipe | 42 ------ recipes/something_awful.recipe | 89 ------------ recipes/sondagsavisen_dk.recipe | 26 ---- recipes/southernstar.recipe | 144 ------------------- recipes/spin_magazine.recipe | 18 --- recipes/sportowefakty.recipe | 60 -------- recipes/sporza_be.recipe | 52 ------- recipes/{rian_eng.recipe => sputnik.recipe} | 15 +- recipes/stamgasten.recipe | 20 --- recipes/standardmoney.recipe | 41 ------ recipes/stars_and_stripes.recipe | 35 ----- recipes/starwars.recipe | 53 ------- recipes/stnn.recipe | 54 ------- recipes/strategic_culture.recipe | 88 ------------ recipes/strategy-business.recipe | 104 -------------- recipes/sueddeutsche_mobil.recipe | 133 ----------------- recipes/sueddeutschezeitung.recipe | 126 ---------------- recipes/superbebe.recipe | 49 ------- recipes/superesportes.recipe | 76 ---------- recipes/syddjurslokalavisen_dk.recipe | 32 ----- 175 files changed, 4 insertions(+), 4082 deletions(-) delete mode 100644 recipes/icons/rabble_ca.png delete mode 100644 recipes/icons/radikal_tr.png delete mode 100644 recipes/icons/radio_praha.png delete mode 100644 recipes/icons/randerslokalavisen_dk.png delete mode 100644 recipes/icons/realitatea.png delete mode 100644 recipes/icons/rebelion.png delete mode 100644 recipes/icons/red_aragon.png delete mode 100644 recipes/icons/replicavedetelor.png delete mode 100644 recipes/icons/republica.png delete mode 100644 recipes/icons/reuters_ja.png delete mode 100644 recipes/icons/revista_bla.png delete mode 100644 recipes/icons/revista_cromos.png delete mode 100644 recipes/icons/revista_piaui.png delete mode 100644 recipes/icons/revista_semana.png delete mode 100644 recipes/icons/revista_summa.png delete mode 100644 recipes/icons/rga.png delete mode 100644 recipes/icons/rheinische_post.png delete mode 100644 recipes/icons/rian_eng.png delete mode 100644 recipes/icons/rian_spa.png delete mode 100644 recipes/icons/roger_ebert.png delete mode 100644 recipes/icons/roger_ebert_blog.png delete mode 100644 recipes/icons/rollingstone.png delete mode 100644 recipes/icons/romanialibera.png delete mode 100644 recipes/icons/roskildelokalavisen_dk.png delete mode 100644 recipes/icons/rubikon_de.png delete mode 100644 recipes/icons/rudersdallokalavisen_dk.png delete mode 100644 recipes/icons/rue89.png delete mode 100644 recipes/icons/rusiahoy.png delete mode 100644 recipes/icons/rynek_infrastruktury.png delete mode 100644 recipes/icons/rynek_zdrowia.png delete mode 100644 recipes/icons/sabit_fikir.png delete mode 100644 recipes/icons/sage_news.png delete mode 100644 recipes/icons/sage_news_opinion.png delete mode 100644 recipes/icons/salonica_press_news.png delete mode 100644 recipes/icons/samanyolu_haber.png delete mode 100644 recipes/icons/samanyolu_teknoloji.png delete mode 100644 recipes/icons/sarajevo_x.png delete mode 100644 recipes/icons/sardinia_post.png delete mode 100644 recipes/icons/satira.png delete mode 100644 recipes/icons/sb_nation.png delete mode 100644 recipes/icons/schattenblick.png delete mode 100644 recipes/icons/schwarzerpfeil.png delete mode 100644 recipes/icons/science_news_recent_issues.png create mode 100644 recipes/icons/science_x.png delete mode 100644 recipes/icons/sciencedaily.png delete mode 100644 recipes/icons/seanhannity.png delete mode 100644 recipes/icons/security_watch.png delete mode 100644 recipes/icons/serverside.png delete mode 100644 recipes/icons/sg_hu.png delete mode 100644 recipes/icons/shacknews.png delete mode 100644 recipes/icons/shortlist.png delete mode 100644 recipes/icons/sigma_live.png delete mode 100644 recipes/icons/sign_on_sd.png delete mode 100644 recipes/icons/silicon_republic.png delete mode 100644 recipes/icons/singtao_daily.png delete mode 100644 recipes/icons/siol.png delete mode 100644 recipes/icons/sisainlive.png delete mode 100644 recipes/icons/sizinti_derigisi.png delete mode 100644 recipes/icons/skanderborglokalavisen_dk.png delete mode 100644 recipes/icons/skylife.png delete mode 100644 recipes/icons/slate_star_codex.png delete mode 100644 recipes/icons/slovo.png delete mode 100644 recipes/icons/sme.png delete mode 100644 recipes/icons/sn_dk.png delete mode 100644 recipes/icons/snopes.png delete mode 100644 recipes/icons/socialdiva.png delete mode 100644 recipes/icons/soenderborglokalavisen_dk.png delete mode 100644 recipes/icons/soldiers.png delete mode 100644 recipes/icons/something_awful.png delete mode 100644 recipes/icons/sondagsavisen_dk.png delete mode 100644 recipes/icons/southernstar.png delete mode 100644 recipes/icons/spin_magazine.png delete mode 100644 recipes/icons/sportowefakty.png delete mode 100644 recipes/icons/sporza_be.png create mode 100644 recipes/icons/sputnik.png delete mode 100644 recipes/icons/stamgasten.png delete mode 100644 recipes/icons/standardmoney.png delete mode 100644 recipes/icons/stars_and_stripes.png delete mode 100644 recipes/icons/starwars.png delete mode 100644 recipes/icons/stnn.png delete mode 100644 recipes/icons/strategic_culture.png delete mode 100644 recipes/icons/strategy-business.png delete mode 100644 recipes/icons/sueddeutsche_mobil.png delete mode 100644 recipes/icons/sueddeutschezeitung.png delete mode 100644 recipes/icons/superbebe.png delete mode 100644 recipes/icons/superesportes.png delete mode 100644 recipes/icons/svd_se.png delete mode 100644 recipes/icons/syddjurslokalavisen_dk.png delete mode 100644 recipes/rabble_ca.recipe delete mode 100644 recipes/radikal_tr.recipe delete mode 100644 recipes/radio_praha.recipe delete mode 100644 recipes/randerslokalavisen_dk.recipe delete mode 100644 recipes/realitatea.recipe delete mode 100644 recipes/rebelion.recipe delete mode 100644 recipes/red_aragon.recipe delete mode 100644 recipes/replicavedetelor.recipe delete mode 100644 recipes/republica.recipe delete mode 100644 recipes/republika.recipe delete mode 100644 recipes/reuters_ja.recipe delete mode 100644 recipes/revista_bla.recipe delete mode 100644 recipes/revista_cromos.recipe delete mode 100644 recipes/revista_piaui.recipe delete mode 100644 recipes/revista_semana.recipe delete mode 100644 recipes/revista_summa.recipe delete mode 100644 recipes/rga.recipe delete mode 100644 recipes/rheinische_post.recipe delete mode 100644 recipes/rian_spa.recipe delete mode 100644 recipes/roger_ebert.recipe delete mode 100644 recipes/roger_ebert_blog.recipe delete mode 100644 recipes/rollingstone.recipe delete mode 100644 recipes/romanialibera.recipe delete mode 100644 recipes/roskildelokalavisen_dk.recipe delete mode 100644 recipes/rubikon_de.recipe delete mode 100644 recipes/rudersdallokalavisen_dk.recipe delete mode 100644 recipes/rue89.recipe delete mode 100644 recipes/rusiahoy.recipe delete mode 100644 recipes/rynek_infrastruktury.recipe delete mode 100644 recipes/rynek_zdrowia.recipe delete mode 100644 recipes/sa_gazeta.recipe delete mode 100644 recipes/sabit_fikir.recipe delete mode 100644 recipes/sage_news.recipe delete mode 100644 recipes/sage_news_opinion.recipe delete mode 100644 recipes/salonica_press_news.recipe delete mode 100644 recipes/samanyolu_haber.recipe delete mode 100644 recipes/samanyolu_teknoloji.recipe delete mode 100644 recipes/sarajevo_x.recipe delete mode 100644 recipes/sardinia_post.recipe delete mode 100644 recipes/satira.recipe delete mode 100644 recipes/sb_nation.recipe delete mode 100644 recipes/schattenblick.recipe delete mode 100644 recipes/schwarzerpfeil.recipe delete mode 100644 recipes/sciencedaily.recipe delete mode 100644 recipes/seanhannity.recipe delete mode 100644 recipes/security_watch.recipe delete mode 100644 recipes/serverside.recipe delete mode 100644 recipes/sg_hu.recipe delete mode 100644 recipes/shacknews.recipe delete mode 100644 recipes/shortlist.recipe delete mode 100644 recipes/sigma_live.recipe delete mode 100644 recipes/sign_on_sd.recipe delete mode 100644 recipes/silicon_republic.recipe delete mode 100644 recipes/singtao_daily.recipe delete mode 100644 recipes/siol.recipe delete mode 100644 recipes/sisainlive.recipe delete mode 100644 recipes/sizinti_derigisi.recipe delete mode 100644 recipes/skanderborglokalavisen_dk.recipe delete mode 100644 recipes/skylife.recipe delete mode 100644 recipes/slate_star_codex.recipe delete mode 100644 recipes/slovo.recipe delete mode 100644 recipes/sme.recipe delete mode 100644 recipes/smilezilla.recipe delete mode 100644 recipes/sn_dk.recipe delete mode 100644 recipes/snopes.recipe delete mode 100644 recipes/socialdiva.recipe delete mode 100644 recipes/soenderborglokalavisen_dk.recipe delete mode 100644 recipes/soldiers.recipe delete mode 100644 recipes/something_awful.recipe delete mode 100644 recipes/sondagsavisen_dk.recipe delete mode 100644 recipes/southernstar.recipe delete mode 100644 recipes/spin_magazine.recipe delete mode 100644 recipes/sportowefakty.recipe delete mode 100644 recipes/sporza_be.recipe rename recipes/{rian_eng.recipe => sputnik.recipe} (57%) delete mode 100644 recipes/stamgasten.recipe delete mode 100644 recipes/standardmoney.recipe delete mode 100644 recipes/stars_and_stripes.recipe delete mode 100644 recipes/starwars.recipe delete mode 100644 recipes/stnn.recipe delete mode 100644 recipes/strategic_culture.recipe delete mode 100644 recipes/strategy-business.recipe delete mode 100644 recipes/sueddeutsche_mobil.recipe delete mode 100644 recipes/sueddeutschezeitung.recipe delete mode 100644 recipes/superbebe.recipe delete mode 100644 recipes/superesportes.recipe delete mode 100644 recipes/syddjurslokalavisen_dk.recipe diff --git a/recipes/icons/rabble_ca.png b/recipes/icons/rabble_ca.png deleted file mode 100644 index 3d471ac6526ff9b5f3067749ceec267c134efe3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk@BpAX3RW*QAtEY=&h{fsTAN~vmJl3rBb^rf; z|NsAf|N4Ik;UB7tybd=1*I&NFeecnA58CycU)(%?F@`5>eSx+`)UjhaLS4sOJTGl3 zZI}ChaHYeA$n3}dbM`T4B}|O`_1xZ$wP)k}e~&{CZ2o6o$EuXhp&?*vz3Rb#etWgT oJzW2C=5PF9`p@Ne{)99c2Av~2zWln$SqpNQr>mdKI;Vst0PVC;N&o-= diff --git a/recipes/icons/radikal_tr.png b/recipes/icons/radikal_tr.png deleted file mode 100644 index 2684c85ed203e93a2d190dcea6fb95cb1ef0ac26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmV;G1#0?(!?6Vz;7(E+{f7N(EVYby56)I^B){hc@UMjPa#my1_)aDdDTtQT%di0CZrz z?%kzP7sboH07{e{Bv(?Dl@a>BsqXDDaCO6J11;lSSs%kAcQ?&FIy=050Ce_HN0TWX z%nRxzXi1I~1Wr-r2dK+O*|!B8+@O1Oc4S$YLLNCma#GwiV>@;TIKJKd^_qw^SK7P> zMMW-`OP1TLDW=6+2GOH5>56z2R<$g%r zT@H#17X;{)g@OI+wCefuhFiWjvLhYYK<}k-_`{Xiy=yev0jR>CFCOLkT}Om_O_i5r z)GflBe32ijzN{Nyf$qT3qJbmeC_s<&=8BSDlM|7Mi zD#|1eaoQkrb%5@{8D2xWDEAJ8pDi~TIpW7pSB4I2(toxp8Z8LuDkOK8E1BX%RFV;; zdR=^ar`n;5QQ!!S`;-IzTJ{M zzTMPEiJ*h(b#E>SxM&UuV$fnm5qD2<63S)Im44MErutZ9Ep#iGcI1JPOqRqtD|6al z)df`n(2*^Mzw`+-t>UF*Pq{O^1fD6KUlC(baWvmfmaj$dA_n5(k@mg**6b_*I%AM& zd6=pIoD`2v@IBLq|FH)#w_xC#qO2?q)3;4@s3W$s0O;0~)oQU1@PF^R*Z!!X5eseDNOG23iR%fvtzhDHadz0o z^k2Hz!?Qf653-&JUuT@-j?w&%n)(;*G|eQUHYE{J()4uDum00W*uxE%?5 zX=Ri#Ws3Fs_?d&tj4c3IBXx!xVmZmuKwJ8ih5mDfS#FuwVNU01QSRv3dR3yM+Xh0J z>Z8WG*x?T5`teS5WfS1=Cc`b019Lh_tTqU?L*mOK^qM%6HOkQHBFoZPPWtJxHNKfKwX{KI(}%o@ss-`*pOFI(L{8f9f9q9&j%%ip&oeuN!0kT1#d*@#XnG{J!4+hcy~% z^jSZ{-#p&&w>Dq08GXa&3e2A-8t30 jAjB++Fqe$B?L6RLtO&A#bp?u`00000NkvXXu0mjf`BJQ9 diff --git a/recipes/icons/radio_praha.png b/recipes/icons/radio_praha.png deleted file mode 100644 index c9f3e4f4abdc06f17e06302a9ec820200ad534c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyHUT~%t_%#?3=F3K|Nqyvh>S|D zOUPoe7SB7 zG$-5B#WAEJZtrAEp#ugSM;PRHzW@K<)R!y$u6~om{b{c_ZhEfu<~-&wMVu9t!40Z^>bP0l+XkKb?jJJ diff --git a/recipes/icons/randerslokalavisen_dk.png b/recipes/icons/randerslokalavisen_dk.png deleted file mode 100644 index 70464fce89f6a09dfde9717982aa2e0b0901dfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 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 N002ovPDHLkV1oCb?Na~% diff --git a/recipes/icons/republica.png b/recipes/icons/republica.png deleted file mode 100644 index 6135647482b6f611041b69ca7a46231e5fd7e12a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1371 zcmV-h1*H0kP)TIMst6q8G*xByb=T-#)~cQk09ig#+Edfe1k%$lnP{ zlmk&tcHmdSO>jW@x;bhxPH@~(xm5w#2*KERGCxY584MDImU%E|HdR0lR;8VkkCRhU z5DrUkk;_k?!oO&-Rso92EdpmR0CSFgdL)A3$h|4hg%K#K#C zBq1R_o{x_lJ&s*__Pssx=P%&O{Tu$NT@gxBvetS~vTJCB{dC3^HkXE z_P5gFnPi5$MHzTHH-z-$*|!lO2H&uL158E}A8*~Z0~DAfS-M=L#i`7#Ue&6@!4^wE4Q-MSs6P`*3`5t?C#cI_~9 z$PhkHA{VSvW^e&!zEyzFx%%CGdLVRcFEZ5Qa+M)JdLm{Mn*cF;x7&^UdOb#t7{TW$ zsi~McV>Xs7TY)sn`^AfwkdT}V$THkry2Hk=;6;S4USdH`eSU;ao{Cj~a4rIy&4%3B zvY|)!?kp-83Ssry^_VqhKDJOXj-6n@)-Bt?X*hb6tq-3%3V2*pjB#-OmYanHMveh& z_SgiZq@=>-a-mt%W?X~`2?*C{%=V-j35}&T+*rS+){>zaLhMg$Ip~kLPYUX51v)xOt18?cc9ISfE~yVug$G@wzo@ zzv_E{d%>>Vd%5eqd>N0OJ9dBtP+>lL`~)M%OhAUshF33Mh}jEr5^Lqc`|3|JA>!8U zJJ`Hw6Azw7MRn-#QLI|Cp8vE=27^cs@2Md9ci;4r%K%Ffk!$xnwG=2k4 zo;bmz1Zv$)apA%RD2gKTuE~MF34SdrqKx!(q!S)Ld5V)KPvgOZ2dG@JA~|5h)vH(e zqeT#F{Ve~gg^4W7Z1uaJ>@hA(v@gwQaE7*f+LvZxaXK!G7N>HQi@D!jo);h(2#dZG d49xKc=fCTp+k2i@c+&s?002ovPDHLkV1h2rnpgk; diff --git a/recipes/icons/reuters_ja.png b/recipes/icons/reuters_ja.png deleted file mode 100644 index d9dcfecc8fdbf7ee823c4b18106d0c1a394101dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)igrp^e+B3UuVWZDlv!B?4|;_ z34q@ht237%E4k=JCerYUDkLEIW%)Ac38qnl`s`pW$C$tpo)JVyO6HS>1PrGH-Py-s zX48Wgv|}PiNE}j(`($Mdm8iuCR6}hO>mB3}!5YSkDw5 zGMl3z7pO}a%0Y}_6ai74CUm3@%h^lw4F}2zx><(Tn$VWf`OBM;jKikQP)R zB?}qBiI9GLqA!nG#wHf9l2x>$HU*eTL9UY^q%fx$#u%Q^m38dk0KG}WID#Ck#QgY; zAL+$BE;F1Z^dJXQ2x@WUZ?}+)@!Ta7Ip|3Rk`Zhp<^QfR0mYcc0{YX8p?sSj!XN|& Y0MeJgTzGZ`+W-In07*qoM6N<$f}ed~E0EdOM<{7ii2!=dErEafS6>0HA0#+EH2f`Sv> iSQwTCu3(!a!0^z1TKWIg*FOLaX7F_Nb6Mw<&;$U>QZD8I diff --git a/recipes/icons/revista_cromos.png b/recipes/icons/revista_cromos.png deleted file mode 100644 index 300c09c333780a63a57bdbad5728e022be8f600b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1032 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 diff --git a/recipes/icons/revista_summa.png b/recipes/icons/revista_summa.png deleted file mode 100644 index 0d00979c98fe15289c7d9a4f6141b473e2b1b285..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 zcmc(d`&W_&9LC?gdp4%{h!lr`Zg~ZH6I;8xjQK<2V}vVHg&rCQtu%QAi|+hy-33N|fe$iyk6v z86u?(ZQDAWxotQzeK>3T$c~JW9hoD$cW{G|k^}oBIR{4ba;1mAlNRKU9V?I({UAGW zTuwP5r;z2R$oz1uyo4e@eM(V!T2WRyUQs^&OS!VLLRnL(tf`u)t)8IPPBu^{8|x>} zHBL4+P5pX~AA#jZhE3BhPt#gdS81x>uYA0DW9D|-Oh>!=PKTzeQ**aVbMLO^{yoiK z_h%n;YkMAPdl=fsJzC~tZ7);T%hdNh*S~x*_xcq#biIN7&cJ3H2HD0zHh*KdiOVr@ zxh5XZ#OIknfmsNeMM8d5gn3A05sNJnu^>9qGCIl)4zft4)-kDI^G2&oW|hmV3b|FG zu#JxkVxj~w(OgupZE6xyO@ncpxaeR=J!98s?6b3Woz9`xJLdFY{AP#2;4m7%_!uxD zhKC7p+H4>`7Pdn?Y$%u*CnO~Buqa`2;-%{(t;@4Oat0|ASm5rld~HZ53XQ>rM@H?> z&dEJpT3$(QXl}XE_UOq6&X7V0*&P8#w|sOd8lOr?$SNM$cftK?*!IO$d4*RCQ#vS5 z7|vlvq1Z(PEHK|H_3@m-)_v|99ZKKj7es9fVl~t+TU(ckp+cVCtb zEPx}%JmTLqF0CNEzWfJz_p;g8`8Fm~rD*kxGo`Z?bT?ZTLPs7=?5Q7r#^eEqc@AnZ z0u6a=3+r8SYQczqS=raRcS7x=mrSis`kFNDbvpjJl-2LEM_NMb&-A=gq730CEw& zdhx-Gg-dZCFhKkSy8mZCASw;%1sL4R9(=m@`_CN7-t84$0L1XzulgxpjB`F)^G&1g zS@dz*hM{CpXU&gw{>U2*ajVT2K0wSEUu4;Wk!oCVVt^*i-V*PYGM}eEo6;&vJ=Uf6 zMpOulBys6ekmcdr^sVuHKyJ4_{A?@qGzTnXyl+PsX*6v58QoXe;VTZUx^siIcwpGr ziP)L193-MC+b#M)2;^4vDd{*KralI~a;?`af4B?(w?}aH@-yAH6cS5brg{F>Wy#H& zi};o6c2>2wM$+lC>QR)s$)^MV{+v9d<36OO_A#CQN27!fW7uOgQ%{yW>b@O7XwNUo zt9GWKHP3n|eh*bIUJ%#s%x?L|LZ$QHidUsv+HE{i@&!9A$3W=IU6F0V{K@cYo;&1M u9odZ}7cUHCH4Z$jRilvZEEtO?4*LMTz^e%(KFQ0aACQ_vBHY6ttoRqn<-TkH diff --git a/recipes/icons/rga.png b/recipes/icons/rga.png deleted file mode 100644 index 5695c3ef663e473f97a0c5d8d2cfecac67b5b91a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+=P)mbJ^!@bo;(L4JcX#B3gye>X;A3OwmX_z3nA$5V>#VHot*zWfM*sc&`|$Af z)YSFa+1^)I{P6JC6&2~CqWkXd|Nj2oTwLXdh~2b z71$gc^2^Ke&d&7G()8BW=%1hU*4F8poAANG+c-Gka&q8jXZG3I-(q6iKtSxXv+1Lw z>7=CSn3(q5-1ptx_ut?5;NbV;+AdM?A=OA;e&(doSgje@#vkM;A(2% zYir|uedB+B>ZYdZr>E+usOqVy*&-s~aB$l~Lfbn#<%Wjrw6yKEw(hsL?zp(zNJ#Fy zyzjic+hAbgcX#4?df7WW;(~(TXJ_DIV))|X`QqaFZ+>irKRhprt7Dt z>!_&fsj1|HgWXI_{`vX-`uhL+`v3d;-B3{7R8-nBGK75ArvLx}ib+I4RCr$P($kM+ zK@bM;sjAlTwKcSD+gRJSZQFnEp3KZ%Jlx&qO{S9Wq?2F1hw86H{bTaMHV}&2?kxnl zfCLv*07#Q$F-43qUDJ7#f&0h@y648V`j+dXd&8#>+pl0S6uR67lm+C}zWn<3IW~5- zmUVrZdtZL6!ZTCpD9R?-a1Z;ObLkE+p5je2GH};Cfe(S_0K14|V9s|qUZ;Q7h!4q~ zVGK&aMHZA|gClq0RYUf_k<*jmr3)^wElGdCM|=j#?mALin$aNDvtYi)AXuqSQ7xAM zLJr63$EUn-@Q^8=V9=~+$6Hct0OJx)NZGRA|MQ2B!O^O2JA#dJ8F3$Q7m(J_iFX3> zB)aqcfNu|0XGW?{)g`OjLz@YD*_rM{fYrRKi8b}DM~v0;zgYY%z~=yLZPEgWvPUl- zv)yRKfz)tU>b@AR;f@jZOZQ<8}Afz~)ME_Yg1WgO>i*Q@MD12Y8D0f%%gO qAB%ca5kNu*&;s(!SLckGGj{CQ@#f7N>=w+N zIg^W<6Bh~$3i$c+Cq(tbhYx#ud-(Wyv8oi85L>u#0rns&E-8X2%FfRE`t|G6r%(6p z+Zz=X2@zCNS3P_7EL;!JN{IN{wQC`Y*RES@VrmQ#tgNiSV!`AolOfW1dAV@8U%!6o z8|XvC!^6Yi;%Vur5W!8GHo*nIeEA|FDGn6m=Ha?>Bz}>@b@#4jc7AZ2p{(r8@87>;&&hBLA|k_2o;vC2 zQ%TbK#OD&Eco~D zUt?nf&<8*f14Dz?uU}Ky0tj$%b%qE63o>{)K}`$x?AZhH1Q4aBrT|kd`4-HYJqwtA zfvBv!3|Sf&jSz7Nf~2VYf;UM1J?d)-_^}Wx{a-x<} z6;ZBB{0bxyrBN&Z;^%0A1%VYpl54Hm&*#oe{x9NxBZ&p^0Wa|Xpa`)bK9HH_muUE9 zBtij-018f65)+(FiO7gh zDQY7mp*kFPM_t<4{SGK5Fgf$-?sL2|oGR z-y592{L#}*aEW@nHX3wwIBa7w8jQQHY1^X1Gf$tsck0C2&Hwn`x9

pZ)3aYp=b^ z6K&gup+p3dYVG^%=X27g;inYBiQU)I4m?>s6@BfOvY(zjapuz2*-IaP`k801of|Zq zr5;a~CS#9BgIrx2G~;167!Deqx$x9`Pj7N_JQ=+8-S7PCjoIw@;qvnGVMLi;zy9XY z-rioa5D}!!6JkLMskBY@(+cEdZA%wF_JvdHThCkz)h~^Q!xv7U`Ot~=watFmm1$d4 zC*wgk9Cov%@nC;E?3$%c=L}JhgHL*bCR! zK6UNd(rh~W;nLF5qja6W{np#;?d_?k?K-kn7P_U)&6Cgm=I2jbdhw-hvi{}TAHUf5 z^Nm{Pk(n&)MpJ&Mh#e7|D3+s?U86TM{hw)$N{O?fGDPKGY7k9ZuD0Fi(;vQaw&~@2$ z0}s1S?z#u1&)cTXGFeaKC^1V@`|9H~J6)R(9=~_U@$s~5Z@)WPTOKZNomgJIeC5io zt*C)FrDZ9X|vE9dLZ8Ey>!nM(b7rxwgOP@d3+d0=zDUOVcQ12A|BjAC8 zX|1*I`?6bWjulL6%`<&dE@F3WDLclsW^<~hyQY~R4-fizH*&78@gd-M1A2*X0y~9f zOmpJmnc>+_{z1EO;iZ0dc(FfvEUX&QI3O&~Ebb$22HM7q(_Az}gx&^P;IlU82yPkf z0%J)_B}zZ*`{~}^-n_b5AB{&BufKKU@WzcBukP&bJS>B&zfW1e@DYtx{wSTFa-GXC zLkdJ=AWhod2X0Gx$7a*XXN)_+zZrI%ey(P&)mq=FnePZqF@sE>tmzX{beUe8&g#l& zG(LX*BUgX)TVMR`x0}hg-q4viobAOj?Timo&cA-|DNV~JW1saC>d)YX$xHVoE z+Hm@w2Yx-BX>uj;GZE1y)M`)rnnOYB++#YOvvq21{S()&U7n2F?NZLY_#3YEs_hqq zPC{Vggpvm1iXE61*f#!q<9)-m%sgN1r8GY&q3=uFHC#+{&GwmEYhSCkYvyCyAbh+CM(dm7=YWe!5RAMNa}lsNa|XF*$%u1H$v36tPp!GKMGu{}z&1?-3X z4M}f43)RQmIHH6ez`l z5Ye+BYQj>&r>Pu>L0X`uMC><-H?_;oDuaY;JFZULCB2Ko~1eL z(~-#xXE&eER6;7c@VU!GS;fABa|48=1OhBD3o-~Wq5>n^XKioTc^7djBIZb|Hm7W# z5KL^#P;FPi$j;N5xuw$7rW?H*&G6mA#m^WF)}!9 zWU8?u6fzPEi4g`Po)}0v4_w4OHRGTrx4I^FF(sYYt~I@4djkd~O2f{h2lM-PuD{Yx zkN&yw^?xwSPu=0v)f)^~e?4o3I*kQ`lFZ^jAe_O1sw=k1FbS$Qwy`}FoHOy1K_)CP zxZqlvZb(bZ_N`YRz43#uzkL7JYcDs<_ThNxcfNM>`+xhR+pm1HKic0x3N?h1Bz3bMAVcHYtv5El>J$M{J4L3>w4Y2^N&Z} z@NbSD-G1lMy*HR1A2dK!iC!SUEQr#X!7A7V&sSMFbCR>4InV0(i^~2A{n2xZ@*JVH zkPI=^LWnj(3TZ#YjWS$%v$TWP>Z2QPP2c>+joi6;uQY=PCg#)q2V_4LU?jx*1Q9F< zC}d^94A&}KABCmUOUingI(;7LGNDx|49o(t&`LpwL&>+J8@&-td%Zrsdw+WC-=}%- zP=FMTBn-|4un|8a{+oGUG|(+U=>j~!IR;ID7GWTTSO`8)g^!4Gh;&3htvTI?Iu~Fh ze#Yhr@jnP6fC!*KicEtONWlE+gjA$bP*_lL)^r7%pZYIu5qt&ARnJBM0000UM1J?d)-_^}Wx{a-x<} z6;ZBB{0bxyrBN&Z;^%0A1%VYpl54Hm&*#oe{x9NxBZ&p^0Wa|Xpa`)bK9HH_muUE9 zBtij-018f65)+(FiO7gh zDQY7mp*kFPM_t<4{SGK5Fgf$-?sL2|oGR z-y592{L#}*aEW@nHX3wwIBa7w8jQQHY1^X1Gf$tsck0C2&Hwn`x9

pZ)3aYp=b^ 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 {PAA>C&;8SJ!}i6*s>4bu zA4Yxq-M4!AY8WtX2=umMd>__?7r$CNeY#alrm|QphR3RDz1Y;zqu|D+H>5(z3oa5^ cmh)ly4!Tz{vr{`~s$=FyWUx9&W- zbmhvfBS#i(+0r#=s@a(diydYp1v%wlTvVoJn(a`;@rQf5yEYWMbZaSW-r z)!KKI@h}5JOUC1K|4tu^-M{?9K;?EmdAg2pJ4kv>DYmLC|x#>I*FbVwbW38eN z{}}HqGXVG9bP8yv2`_}&en372$`O%T%-WXzshDy#9J8(lVwb!hIy*aA|EvQP_<9Nj z4D$y9&IRoF^y^rAp?Da`KKf-lgTZg|KuHDrPRJX$f%|GA1)~lysy=o#>$;D!& zbU2pY48&o1H(0ty;+s{P*mK1MHGmR4AKMq&4LOE`E%Ag7=d z*A=bs;SWA$+ZF4 zLHN62o}ucXcG*|~rn)S!7!A}StX#kv7#Et6b--SnMIDR^DxiZ=L16K;?EmdAg2pJ4kv>DYmLC|x#>I*FbVwbW38eN z{}}HqGXVG9bP8yv2`_}&en372$`O%T%-WXzshDy#9J8(lVwb!hIy*aA|EvQP_<9Nj z4D$y9&IRoF^y^rAp?Da`KKf-lgTZg|KuHDrPRJX$f%|GA1)~lysy=o#>$;D!& zbU2pY48&o1H(0ty;+s{P*mK1MHGmR4AKMq&4LOE`E%Ag7=d z*A=bs;SWR|wu)24LJY@>R1q+ympFBbM<45M=+_{iR#O9HA?_ebeSQdQy z_e1O48KK9Ip_Z00_wU{V|CTMx1GjD?aP_Ja-@cuDq5`IA!b8P!hYs+bH~}FwmAUWi zSp;UyVjg<+3c=^knFpuONE9#(6W#|85pLZYAu4dw2;Sktp}O4g(LU^W@a0SRpFU&m zA2f&r;zrO7gHgI@5&X@YGrafi@th?~m-4%G(`J+&IN;>EbV=NSuIr4#ojc)b)QC~i zwJXHJLU^7%M_JRRPOL`{=et+0#4Ff7D5Tko>efZc#Y@PibJ;w9;? zzU{;Z3`pF8s;bB))!aIDpo<~`NlD17Sra*(I>DgPd_R9e5d;*SKkvjBF66~W1r$X^ zI-Mu8RxOw`O2q9!W|b<)=+g(8%a${Dy?ux5ox7OlA3Mg2j|#|&g0yw(koN!oNS{9+ zDWgU)&)K^dMHeqJPaQfGX*7Ro{rZsIZnknvK$a19xsXCvNTPxy+H?jP$RJ^ra;d9U zA&JII>fax(XV3WOE0psG0xVE02qGj&X3#abz=o#j(KvCA(N1_|>WTiD<`6;zR1hJ% Z_a9uXJKD&bN%8;y002ovPDHLkV1m_mFg5@H diff --git a/recipes/icons/rusiahoy.png b/recipes/icons/rusiahoy.png deleted file mode 100644 index 629f9364eea598409cc8bcf110d0ba3bdcf40ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!N`Oy@>;M1%e|`M;`pD56?Oo?G zb52IZ?YD8+7h_}etb=O9eMP!0?Z6_GzK zKZq|u*Z_ypfYPCXJH2Tr3W4>20&GN@5gCW; zCV{a)20|4sXMy@(fU57E>wY&UF%$svQK}K8fGfXN4{L`ws( zI|V$9Z#E8#%%B^?Asie`^knvQTa!9Fya79r`6fK-_4|>dHWzNc3x|9;s2chg15 zODykg)-KK=H0&K7y_A83KhXTVFBEM#rDO3I!08llYhef#WRcv6AT=(rbi@j z|53H4C$`;qJqPgUJ;s<@KonS+0xG|Zz%hkr{hhAvTuRTjflNloOON#%QL5c&bwpr| zF{TocOeN|V@b>ptzVvkx9Ut~nR=yHZ`vjVT{q{UD?sbqTa8H!l1Kj;+PM diff --git a/recipes/icons/rynek_zdrowia.png b/recipes/icons/rynek_zdrowia.png deleted file mode 100644 index e406f785d68ef986cf238683cd39f990f9b8a66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!cYsfb>;M1%87g{!y!zco_wV0t zKXXO?=6(0yecXTdQGI>Ay}iA@zW)3(SMJ}xpP!%a@9+Qq`wxD8{`FUH`!Cuc-!Y57 zVeBZZ-2HmUdXp>~e4+vJv?NbM^0>neAg{cBm;tXHx(7fhW-qe2 z0F>-8L@&H}XzENB0U(r41v}{Z6h!KJ_41s3mZ!9=x23>We&npjpUfEm zDD9jz-7Xk@6DYD08^iQ!l@G+*7CNw^OaZxM`KDdojU*_i4QUJr0nS~BFdBK)b#~D>+~MU+`F)%PhpkATD|(k zSM~}(U0vRj&vt4!7iaj_Xz>=8vCCm8u(Q2O%MHKgdW8a_G||>J;EHSARY(10E^)Ptp9lol6>n<`*Ea-LERQuep{+3_ zsZ=T$jJ356y5u4o$B#Jk+(_-lXzj*O?M9`mbFYB8pMK%d@ZN&5SeqX(04D6Bgb+kC zMMBuMQ<4!Hebse7UL1DOrLaT&-aYvJPnnZkylKOrAqvJR3MmYTF(5OX?5w^SF!u86 z+`KsA!b=Va5N~Ys6_zu_z#xRE0^i@fc$O*b_h+d4K>W(=>XtBfrqg z{NVV0r=ISgFe!~tChh>6)w2R9Kna4t@?}HMyW}6v;L=GBL7MR3W0BSt03exIWd~s6 z5g`~Lok%bLSMF0%;nH$mL3CFf**JE*LNbi(00fwNDx*UbmXcQg_~)K=b2__DbXu&f zGiMT#9RLVy&Zn~JjS(eC*)VvZ+g#X3&5gL`Mw)e!*&k6%*hL`4#-}qBW%hF~It)_p zl4{h|y*t3gi6ageKnc#|83O=j-+(qW)g*)20sdRHa{aI&t*L6HV+N|Z{?Ap zmCIo_z?jRfaccPC=U+$<1kgTZ^1!RF8F1Xmy{%O~i`8c+@Dx~kAA8({XJ3qM+(36< zXc*6W`DIu2QL~v<2JW5BbiWw-JqoR1NeV` j3u)hU97>H}nm6A8t_{wj@G+0n00000NkvXXu0mjf(pmaN diff --git a/recipes/icons/sage_news.png b/recipes/icons/sage_news.png deleted file mode 100644 index 7094c2125b11660e918f5a199338974c121b682b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)7G zFn-KfY}vdO9`2rSba29gx$`lo{{RdgFc5>;ot_uWo6rBznk}2QVEpK@ATI~}kA4Uk zJ$wZ0tZkrHD7ol))Ue^d2MifF2r{V*)z#I=&dxzbMh323yMfHiEJQ{|!N%GaqeqPV zF<|!e88~_BG#s5=pi*n_{P_zA1_O>AJAvrv7?hWnMx1`O!a7jn6h zn}dU;*th=x0)s*j6&;O_(a_LYFuy4;Em`o=4`3FMI+7=fV{~dtd z1;GHlAmHfHv`uX6DAg^h`bU2l8Eq#=_7{@ ztCa=^Qyq9G$o%^C8`}M=LIwo{g4Qz6O!5+dD=jr`1gl3BBb&6WKo`zmKuK{iS7by4 zJMM1Kzh#S;#HOXDjwH`l021qahi6Zpu61^Byg6g)v;x*96N#Sb+tVjc*0D7mzx2EV X(DRj-F9nu200000NkvXXu0mjf@iRn3 diff --git a/recipes/icons/sage_news_opinion.png b/recipes/icons/sage_news_opinion.png deleted file mode 100644 index 9f029270ffa4ccc3e1092233e1bfd37f003029da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2617 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 diff --git a/recipes/icons/samanyolu_haber.png b/recipes/icons/samanyolu_haber.png deleted file mode 100644 index f34e9ec67bd61ac84ac1450f36f810eff8c457fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 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 Yw6mdKI;Vst017!@tpET3 diff --git a/recipes/icons/sardinia_post.png b/recipes/icons/sardinia_post.png deleted file mode 100644 index 92316b99ddee90327741249b3730ecf0fd72672e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 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 Q^(@Gxp00i_>zopr0L?#7+5i9m diff --git a/recipes/icons/schwarzerpfeil.png b/recipes/icons/schwarzerpfeil.png deleted file mode 100644 index c8a4dafae8e4b70480a380efec0b307532ba9a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1309 zcmV+&1>*XNP)_d zpbz*uU3t3+}xe5`EW23wTP zzQ{MEct6SqF%#UD>H=N@J1NltPy$>U#pfLGCHTg%xeyfQ*uqDtD&Q?6cyDmE=u^QZ zpreuJvt$c+&Ip=Ebm`!4Bj0<87H~c|7~^X_1Dut_fX@`P>~*7vYZED8x- zoUU{?Q=n7Hccs#O9Ait~XXtk*{R>)0r+P21fKqCj^dsHLV6O_)UAECDizsdG|CDG8SWU9F%ATo2w(A5ft8DmP2cAnsH~N|+ z@hIr{{}AB+eWKmyW8h!#E4bV+e#T2o{A>7s8tN~$?0+u!Q4Y-Kxd6Vy?gMYrE^&x# zx`JQ8x1fnJh{7^us)Ia+zKwj^KghpXf0N4p2-r;e_K^bKA%%4Y)Fk?-mT#m9>ETZX|1R&f7A)mL}swnO zjm-OP%I*>I*S?y3lEAzT{h$_*$S4p&c1IB#LwqU68_peJ2sm0Nct;MA65wtne~=s# z*$SVcsS(QSD#i`6eyZx&qI5YK3{S9#Qj+vQ0=_dMyP$`67rupLw@8n3YZNX99|sKV zFL1sS=Qbnv)!^lj0&;_ilBhH3LTDdQz<>neR#D$dIj?|LD$#Cru?WE2jz`M$+e7jt z;Dk70uTj1uyaF!eZ7MLqZ^kKl9ktTjZj=s;{W(9L~dhpWbaT^vrr?|Dj{|Hg~V_ zUTBt4fM=uFJwpq>1!xAE6U_vD_x&JB%zKRv_SAR_xK5lk&lq;Eh%OwzEx*q=wI53K z;qFI9(yz$o`XmbAfqh`~TfZjuaMynt*94reY@U`rsye7D6bHY{7F#4DS2l0aL$7K^ zp1)J|g5xtI_+}ZLci3GBE(!R6Rv7XBNcAhGd%+?j(Hc;R*2iODp|V*G-Zrj~%Z+&J z!PDt_$#)W{A&HnVVsoC;ed^Qsc|+eAoRb-^S?>X@Dfy40`%}r7@=Db6P640glplL^Fa|#?C;eLGC^>-o$W!jz>B@5i6SHIc T+wHA`00000NkvXXu0mjf13!Rl diff --git a/recipes/icons/science_news_recent_issues.png b/recipes/icons/science_news_recent_issues.png deleted file mode 100644 index 42a9dcf61584c8bc71c234b1d11bf618a66e8583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmV-e0;m0nP)LpBWyiLt31p5tzR?M(XMt+=IuJ4`Lbvc0CzCAaCr@Eup^yHDQkpI&!8$mG2fH#N1 znVfl6n?&c{pbJ{{!;v=QON%yj_uW^_d5Mx#-Gni=v}zuI5!ul^u)D+XM1Q3Itu%NO zho6k0rU6vfSJC8O$QB5t2&AB#Lc0I{Fgo*kd$T_D`7cZYWhmpp*~LTmhPO5Psvm_d zLI@|QNC=c$^^~hotGW`nJv76FSjrXPXZ-j7%8md`+1akoWLAN&lGP$OYvKbBLa4R} z)q5*i29J57AJQ35{Ew^EaJlUd ze&WN`LG}nWZ{wBBivUsrz>-hmn|o~~_d2cRpT=A%i(V-N0OL6Lb()axIosAgD$R_( z8Xc}0{nvmaA`FeYx9+>v`^vfC(+0RmI=Fk&*~$Wa4FEXY9zmlHb^-tcfXz|rj}7IC zMS@B>`9FAncFg6Yd15U9Sga1i&Z_&}-CrhBR}26kIacU29Y`<=D#c$WWmz$oj~5xL z8RN)ebr|x_G`9|qI}H~fzdyEOFyk7E2Y~Hy8goN=QjwriP6Lq2vSKcsFdC|sVSR3G z)AO&kSrGu9c7H2yxIKd6)ah#V-504{9H*3`B6f8~X+p+QMNPYQ4R5P1)SqOGgT?AF zNv#unwoOn1uM!nm%zukr%NF)7JVQI{Mmn3H1#GXRYIa*BDi zO|7e8S<^0$mbn+L8^D19q-gJ}yztZBp1m?XiBNp**~70BE-}D%z*M|;O3qI-RMhJt zGTy8N8Hf6VS%<>Z!P5Z^BExrd@j=2&qW*AQR>Juz#+3f=vm@ez&$mheAY)5ZM^jCq zQ3&N{{)N@5AQy-TKWs0vCCSeb5k{TE`pnyLBce&+yZPbD5h4N+;q9O`Ev%$riW%#P z8S5#u`1+jPF|UQ3unddYck~v~#7HzT(wh{%#{RlPa{TqcScYtpf2OI0i0~Jjc{^@c zhUF9A5VX|TUw3$QB@ugX*jsx>bBO5AOMGWDr}@dp1CUntsbETfkF6tp!8@;7o{8Cf zzBqkPQcN4L{F!7ec;{6Elf5Yx$KY0vZ!vhiI(jU5U0O$EsBS#a7JdT}k62z1PFT+sw@1)z#+S-s|M#@9^;U_V)V!|NmU)8x{Zn z0EbCLK~#7F1;7bbgD?OD&>tzL3%J!FG*X=VU(yGqjsW0#Bz*v&Jdd_!0ifoSegII@ z2gTT0`+5aE#|Lwg{9RyJlg&L-eai-1pSi6mJW`zd#FY1aN6X2Wt!TMr#ZLydBf)>W4_@BA4@4*Cue!5t^X;{pfC%as71K>Bric1wU7NM=>dXZYbp6te zw=Z72dG;KLtSocZc|`5^ir5E6@$nt;aqS>7zCAmpX_If<)90^%=-Km^ub(}Ca`pny zwHxIPygV!Xe5-+uv9~J>32tz(FZA`P^7g8q3pb47MNVD!0v)l6Jq>kanZ8`)Wk1<1v?u(e1Gp<~V-7#TM`F-f^{1Ar`ky)X z=huht=fbS>>aShBUN>FDWc#G3TNNwKTrc%C{kyEf6Pm=gob^LA_c7&n$5v!b==t_3 z`Ax5m{F7B?Cv@eXtui~aQ*iOB#=q4|9&gzpBfsL7_L`p?_segUv9{dNUb1LfbF^;G hQn|&`n(cS`HT)MoUTqM%*+dQ$g`Tc{F6*2UngERB4B!9& diff --git a/recipes/icons/security_watch.png b/recipes/icons/security_watch.png deleted file mode 100644 index 0239b98052e8338c09e7af09510ca9fde1862cc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4077 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 diff --git a/recipes/icons/serverside.png b/recipes/icons/serverside.png deleted file mode 100644 index 32c36260b3009ae9b4d81a05325b054fb8d664f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1056 zcmV+*1mF9KP)Uwzw;v%AvmGnNYPO~7rD%C=EvV|<8{A_-+ zpJyh$N1rJAPFD=Z%9}{B;MD<$GGP0r1_%o{%-|p3+H?!oX8ecj6bor_&m%42b)?1r zP5l??36@l!`THN#XKC}QlA+&!R3-C1V;x}3`VMemR4=;f<%@w3zg?{2TU?i^%DzT? zWIU-|i?b(MA|-YUG7`U4)wKDM!C$1ljBC<<;k&6kI&>C}>~9BO_svL*OvP0x-zygF zzhUfcSUlfm!xT&5S=PK~<{UM>rFc#Ris{<0F{OPZj{0^rJ;~*J4xEk#m!rOH@S$bHp`TSX&Inm326B}b0AlP>| zZoEnq--F9%2Vv3#P^vL81AgQ{M^^cb09e@^NM=s0g+1H*VfXf)Ori$5cL%B7A{$(l z_6n14;Hb2k-Z6C&7<(8o9uO9XcAE+SQsNTXxYPiepP>6Z2yv$HoFl(V^I~ zu>p+K$lDt^iDDYwt%1U+qr)+LI7s821hts_odkSXRr5U-61U5X8Qel#cr3vU&G~0d z3Su@Sc9{BdRKAv8rw8VLE-Uf!{>K#IL$z6+RZkha$*3~+qSIiC3E{zK1O7)2XFmy z>M9IqbAV`?p*F?H0Ha_O ai~;~X6}+&>9QvXF0000FZzK`YA2%JBJoL?RJ~C=duZY9n=;Fff|+7=;C|Aif~AbjThVu0;^7uAC&Me-o{P5g&fgG~6HidHVA}E{SS>p`ImO1#&+R382T!LoBoV6D93`2-Fbv`~ z>mZIl&H>=Y56W8hz$XlZ5LlV&SiMK0{o2A~gDf)v08>Ok?3a;TXaE2J07*qoM6N<$ Ef+CdX6#xJL diff --git a/recipes/icons/shacknews.png b/recipes/icons/shacknews.png deleted file mode 100644 index ca9b3b5080db58a87d0c6afc8d0b1ecc6332bd4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1167 zcmV;A1aSL_P)P=qA`#YQ}F>3 zK3Iq@s0DX8q9huk7dGNEBtBpkazh|N%}e7FB<`UP3Rq1ZZfG@Oh*qu%oG}USAaNOG zAP}$SHQ@z+%twB!u>*xu@nXW+$vF?kVLb9eK;Jgwf&Gy1LJbILHm?XD{6G(w+c&B! zXp#Yaa2H__?x8O-Y7CMIixC2El!JiI0Se+K{-R@nLu(D39ULtw+ydti1gQwdd9*?b zJwv3z5=dM_AqX|dI4Wr3kWuz+nwmO0I#r?IUid<4fgkpx8cd*TNgRg60vIFWN1z59 z*JDg{tX#1Q&6iW;8)O1~$6C0-05OLsfj9VtiV&jctTCeSy152c6Ngr{?bxav3DfWj zGKt<`CJI5=^ywTq#4JcGgOPA{brsIeF4+hg%D;ZZt4wB3F$~#l26h)Tb-_oxhr9TH zJv%t9=Jg3d-tfdnNX1up>hS|o@d=*rfhX3ZtWB?urZnCGiT=XAUM(xzPOTf-c5U0x zzHvP#XM2Y%1h#{^#ZN+3l zF+J`mMc2SU&j8Dn*k{P5F@PPuAT<2LP)K}-v-O}JfRFHKCrC8LZl&l}RK{;~hlpT^%}VSMm}v~q6%yAX*T+jp^yRcG zNHoAYrRYJVL3w0@fYz`^P@6|u1c^oAAIz`^61!mTShbQMd8tzLG%VC@04CV4#4gb~ zJ>xn;(JAuFp^*52vbLRC>DsriAhkLG%yB}A9j7rsJA~jN3PgTc1fGysl1=_JAbF}% z^e)n?10W?XDzW|aG*5?9kQlF?j;BH5r`6Kt!Y~K|LJew!?-4^B zDLQpTUS5-SUjdZE6G-ep2Iven!XWrT;tX6Mkl34=M(~8h1r&j1k~v1;FC?C!7t%o> zzW=%aX5kwo&cQCe_XehDk5`Zg!dVP}HOwHO-Up;YX-viA7`dBJFfn&W9@q?DNQB`n z4q_SRVHOr(HO}J~WQ2$4hBQd@Mr4VaScx|Xh1BpDXV4D?Ad>4Y*#u7Ljv3gG3%HC^ hScPGzh4k@l{2x~)P`0965K))(|{a2f>drJO;n)n_yMVW#vyFMO&E~MW`tGsfTfViA52CV0+EXYkjfj> zsLBC>*r@&bCNMVvcX1n+(6A~8_+vGs$!2s%K7tX7M5HLeRecDiLu&ruF}7g=S|bLk zsvVGqoscE?hNI{T|Ee0Gk64J)_y8LubZ^k1N(X2~qdvx98P4M?q{(^&h%wi)t71SX z8lk091O5=|GZq8z0aCe!1To=GR#gnh#0~twFYHGo%q8I}q;egJV#3`j84!b$kjf_v zLKyrJfsxu_*n%Ma5a2n6qbs_ZbVpl+3yT)Prj0m=wK%GM`FHfQI0JkSAt@O$5GY(FU%q_(2btoBO!7)vyZ`_I07*qoM6N<$f{)SKng9R* diff --git a/recipes/icons/sigma_live.png b/recipes/icons/sigma_live.png deleted file mode 100644 index 163ead7ceb565cc163dc8cef2c0299c84d460a66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1723 zcmV;s21NOZP)Y5C|cJ^)03Sq_k@zW!&AZLbt5D?~c2zjk`}$O`E0` zsk_EA-#^K>>10RN%fF9%&pq$|JLf(Nk>U7FvEdN8;0(XA?6;=J3=v75WD-8VxAa}b_*Ak&#l(O@UH~Mz&>VNy~-Z$UuE-&xi zwX3_Vtf#7~@9nqys;j$Ku57g1_YpZXD=^|W0i4n^7<^3Jl9$(8R@PNk=3lZjuxeG$ z+iwr-*)w?f@WB54y&r!Z+`QSpU_o%xrtYe$;L;^G6=jh$P?q>DK+1hDv9GuY#dgk{ z=UcjTjcnz}~nk74BOyYb8yBz#3h zfsGs63krHZ`6M``I&{0(6Te2jud^s2kr19&$ z%DQ7=qtLt#yMM)sR)?c+_wI~od~y;4Fd$f`A`=q`rZhDL%!Jd~R#4EnV1aMeoGZ*G z-G)N>VF0IVH#FM~DSfkMdF}SD4?ajtO~pn>li_fDbac9plG6nJa@$l1wcTO&78JA=7e{(}u*>ioIDNXk zw6w)y@u;dtN{`9ZHfvVj!GpLe3Ap$5LCH`kP+i?wTI$WuZ!0XkD}-IMrkcpFIE1XZxyEn6}t#-j`nT=H)>cwAk%UMBbvJ$@+RQprLc;8kxH)D%$4G z_1GO=lc`M6W}1LICV8sarKzct&E}BLhq}C_r78CpUhvrM9-A#IOc89-b+=*oD=IoS zZ+2tM?BBHu8w*mK&31$p%DzQ1mv^x=nslvEQM~i!CCA46@4j14)NHrAO(q~AH)JxU zgeig+3xW+q4a`keYa>zn+O=rC4mDY=7n!AI!7j}JHc7o%Q?cB!b7!cvwN6nQ4a2Qz zjk;d1sCFQZ`^UgES0O)3$c)@U?3-D9dcV%9O8~V9Qy+cB#8n)kWlc z>#c#GesZETT?Yns7(1DvEC6E!A&hH<013Xn_un6{twj*LD@_0X6<~#Gzz)mp<>g(w zci$(f)ijrsE=8%qk@-mi44HR{MqRFvJ9jW>)bw*iA12PZ6tE&07V07TY^YYP0 zcTk{|$i7E}qbp~Nas+oIyVtLO5DNLf{1W*MQXUb4bX&?f3$W-_3O?TUI6|!Ga7f73^XB__R`c?l zbLMzI_+aSPtyp(=q^&L7(Q&n;-o47o<3vA5`2+JuLP4RA{~l!C8S|xq zT22Xpb57`b%f5XfuNRnDdway=$q2p)zd!2p^<2Ju?zPvB5S^CtIP)>4LM?N5J`RxW zW2w}S5uFs`sG=N1<1f8b_vxpBGiOGe&at|>(c0SHD_1-R4qTc){}9n(_$ta_B4i#V z+N7vtJQNA?rpem@4K<9pKa&xjRV;U@!TzHWwY z+p4I*9N`q^h@#;3I7obu`7oN3@+dQ4A2TnIdYOMm9={SClFjAznvz)07v7R_STEUIqf zly7P^o0-AMMLr0F&k@#Jgp+q^%Rfd79~{{s>!Vl+ diff --git a/recipes/icons/sign_on_sd.png b/recipes/icons/sign_on_sd.png deleted file mode 100644 index 96d2d682cf9cd1ce78d20eea88c6d607b1231a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 562 zcmV-20?qx2P)bWJ9H?)gJd$GOGgv3Rzzx>Lqt$16&OV+VK&=+dFy)9}uRXXb$i><AKHS$!(aT80 zo#~})3nsv`&-#%ZV40ZgUA9q_=fq=ApA}HoXpb#+F$V+^^e8Q8jpfLuvfCglr4*PBtnFJz6?p31GIsdFlge#?Coi)Ld=CrlS`V6q@b~ za{=gi8H#GJ?}v19LVT5?I{^7iyW&2l^R>Y|*(af;yL@B7T-(FoZU+G8=|##dijqOU zN|Da1}{vGivL>O`QgA1qPlOp<2WXzy@5vq7DOFfQzwqQ#XM6Kld{L?$Z{} zL1Y+Uzy_vFSThmX0Xzt1S`Dn(u(KHW5wC#{@EHLf1xBn4LH`6Vo& zZJB>a-Twz!%!y3EzA||8>4v!&9ne}9{E9oQbK&N#JR)%^Fj0vUfvV^Job?b)McwaS z$sShQW1t>q1{AU3$qnb4LK&~H@f#D)A>xMg1xge?!oL!GasU7T07*qoM6N<$f)@ta A#sB~S diff --git a/recipes/icons/singtao_daily.png b/recipes/icons/singtao_daily.png deleted file mode 100644 index 38d59d6db6947ca77ab5b1471a8e7bef7873bcba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2395 zcmV-h38eOkP)wW9jlogm?V2~zqWgZ>kJ{523H zkuZ-sBbaT$Vs!-zLL~ftOcNPXsc$l5n^HJ@0<;937ryk@f;@Rkf_>G@0LlJK(0}CM zD*_|&%zg60Uxn|(vMq{0JrqIuS3$pLBQ38Ey3C_U&8b4-&I5?jRCpt$0wG~J_|h*0 zOwpG_R0!GuMOZGBoBs*I^PmXLW_CCU2|1dPTh$>b1NHY+q)6(QjL4KqBHj;1EOrCr+J*-7$-)X*V3sIk;v|0RXIyc}RnH z;&|a+%u1wi3c}|>^MBBHE+Pi8+P#qYC5s!il)5TV9^Vm2u0V7`J||GuU<3ee*feCt z=(rQ+VH>RWSpa~`eI8kfrEq`$BPIno9CBaSebnCgQVp9_37bp>t02Mjwj@MrD&G&c%n7u1jiTmA zCm@P=e(ye3ZGT{GY8vZPF05GXcyae0o-D1vN`~#S|Aas+BjAI~oCBDfKL^v`BpE!p z5rJFF)VIPxq?$TMaWL&5@ccO*-de!bx@O!k7&)#{`|0uup02I``vllB+{Ov8RiMV^ z@SW)G8%L*c7&bBp0M~CU!q72@VXA{#!w~kT>;WD;#FN!E+%ooKac~rirV%Xk4&tu+ z6mIqpVv-CyzEu4y0;%}YUxQyFi?B0&A1}g^(i*r=oX6DhKPeJtaP9gnoH=_5PU@d< zpM_z-ioKdL;K@@wURlMprZ(I(_TgqvKW_G#aHFFe=gSX};V<8dK;owfc(zndVnVY>o-Zuo+2RtW$nbGNf>WX4Xez9N5SYpi zFLv;Knt<>3JE8uTgW9_|{C?a3vF3gMU(z9L(x8wc;jHU~y}1|GqXsyddSI{Xg0p=P z7p^Q|s%seix5r9$Ep`{u;Lm+WX(CqXKYhg1;{R;)4_ z^T@E{nurk8$q;-s5Tub16baO(z7Rs+L`Xu?XeanlNh`N?Rn1-Ebre){*?JkrZ?7-lNlaI4@z)xvV1ZYsY&wwe{X|#7w;9EMbovu?z zq2oL>A`ceZ99la@F*H66KZ+oc@FqZ>dA#0*m9;xKd*K?I48!Ohw8J%bmPk3Ue&;?4 z%bO_gR$RNWgyQ`M9Ifxe_gixL1w~HLTUc5{R$(2I=%~JWV;K|H8DtgI;_|gcBA-U{ z>-asU2(nF@PcK7u<0(Jb&Y9j?T*IVe9&_#sD5-2iYnvH&?mdEWz|IMz&?;G6UdQf| z1_;UoNU0`n+*(C$X(M`xaC?u15u&yo=Pq7HaM*4p|9Juo3i2X%PcshI_M)YI1Qmxm zc_gxm>hYzY24j;m*n6}K#(pcRDNQUjk;&y$14(>!boEW5pu837`E_7-%!XrTG?53A#=CNtylr&;j zUL7>)v>9bpkr(4As5pig{Q=~bAA|o->4>5T7)^F6+6HJSEty3P(2*?rFLCEV1chcH zA$32}si+Ab6`>aa|6ejlnFHN~R-*-D)_F8{PQX0wLiwQ%)U=q5Yr) zj{PKWM^)nhhAp$mrxdVNR7|U4!tO@Aejf%#rf{I9myaiqyu>%@;~L-*_$?FBDHW8* z7S1}itOew-e+}g=k?KGLsVWij04++$n>13Uq9SEic$qqplim1l z2P=ab)gQ{^D%m7@b^H-=G~BxzV|mGekrBNyYIhrsO{N`HKh1~~eMr?5G;1c&STaE#{aTFvMgbfB=Jm1He! zi4w_4Y)Rm60Bkt;&PgKj((^EB6zHD+H$f8hoUtP?65{({`J!behQ$_(RHWiB+X_VX zjH6wX6_ObETc-F^L_TYiOo_PZr*tud5EFbXmpZ-Yh-kpes~M=&I_NKqqf)gBRSGZy04IpCbIPxW|Q#6KL9=9h&{blck2KE N002ovPDHLkV1h$4cX9v# diff --git a/recipes/icons/siol.png b/recipes/icons/siol.png deleted file mode 100644 index 9fea79a23b47b7afccdf253f937b4eef38339d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 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 M07*qoM6N<$f*0c}1ONa4 diff --git a/recipes/icons/sn_dk.png b/recipes/icons/sn_dk.png deleted file mode 100644 index 6e425b13b26519d4561e2137e43698f92f2c024a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcmV+#1m*jQP)+S6A?(FRC?d+J3A?CtFB?Cb9A?eOgC+1=clZJ)x2ueZ6ewzVn(?Ck6{L{OQbrr6rt z@9po$&d)?rU+nJg?(OQQu(gDblpHcdf{KvO($?F(|8s+S9C?%m(wq^+|?R9)ul z?8nW}#m>;i&C}7?+1%mfA~ig#@rkm%~`TxoN_#>l|O$)c#O z6)r&O>gvqT(Hu2KSz>K~keSWa-^|zF%-7(JlbFcQ(NJ7ve2kaN)!@k1-^$hCaC?H} zg?{<-QJv} zshp&zr>(KF@06Xw<>A0004@Nkl|P? zr*d*q_N-9jKUnS5e9cbtv_HS!F#Heldhy?cei<8sG&0_RaO`(8sh4&LhM*b!(aj~0 z*0*V*MakbOfhaKQ%xVasW+fFHLA1XGm>F4Xivqiu&F4c4QD}V6c;x*#3-}I~CflVo zn@D2^xM0iLsGzN+2k0QSze7_k;DAb>vF?x>;DckUq$c4YIb$8__g0DS!t z$F(b?a3iIX9DNZ}iYb}H$1KC)>gvbnT9>J-5v7QdiJ~K?1V!;7W@_P4%#>LU!|>dq z0_%Uf#V#rj@AH>#OLuRide3^8f$< diff --git a/recipes/icons/snopes.png b/recipes/icons/snopes.png deleted file mode 100644 index 8447227580060378dd1b71f09128f74a2d4272ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1410 zcmV-|1%3L7P)>QZ#fW~bsD7TP>cYdsDyM<=f+ncy<%tDq z)0z9P(RA+A+_Z>426heP@wsrc7ZXH0o_fvpx`8hU=xBH2)%*J8HwQLMW#87k_f{t& zLfX?#-fdG%SWo^Kia#L@EDXDKyl&+4x`E{a4rw6R)7dg3#4srF-Oe1{_71gDd}Jr7 z&X;#Jmd#7TNr~=at`7Qi=lT6fzy`>khU3ZC#lU;iU5{L@8@Mc}DtA1aNcS!+TmwIq z+yk@>ARV4s;9fjPA@V8__!R5^Gup5C@ZlrK&B+GNqrLh$THaJBT8NhYXYBVrcv&}) zDX8^&a#@6HV3&@~L9gEO6vH}pqG#jA(Q$Nc6WpkHL_|1cW#s@Ox*09=XK1;BdcfwR9n1gkoti+a;J^mr(b3V^?RK0WiCm)olQQ5k zkvFN_Wk6N_pWFsMoY+kX;HxuAX5a%{+54W1ahpg>PQ?9jK=CHDtY3=gf0eig<%U;q zVrjT*k~Xb^)lLT)O33al6E;=6%EXDaQEFUr!YE*?a2iVYL;l=)@&9-u(_Ms*ENCy2 z=-tg-gps4#Q7D}cKB)SGG%4>U1oES~vNIKm=7D_%TIMfMWdA`$E_gF=*|iL1a@8(R ztXGk^=pk!As{^Re zYosCu$DNO(<#DT;bs}3Y8BaRFnotwbdKHJw|qGezJSr2~(ESIYPml^S?y0~EaNT%uon^2Oh z*8NV|i~<8anoq)5U<{w^li1Ua66HlwG@z>3+Q1Xg$xw+cgz z;)=x<;>7X@mw2#j$%T*p1dch*bT1Y{ ze26RF_i_@%07*qoM6N<$f?Wc;*#H0l diff --git a/recipes/icons/socialdiva.png b/recipes/icons/socialdiva.png deleted file mode 100644 index f908a2ee62ac4552f31b2976aaa1f431f5f467ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 zcmV;K17`e*P)*K}Zk<)J-=< z-Gqb+MPB7i5Ta6A*=Ab0nrd@XH@BU0_WcQn?6!nX5AXml54`-|=jC~V`-)nnj5Ehx z$C`m|L{W?^Pq25-Asqhh0;2o7;GakQZ%PAd)iSn@3}Nly0FpGr`1lp{_4nf7!Cg3h z;I02jPze#D5HOde0J;>g*jB>!Et?>YF@9+j9ZS2gWZ4P~4M*7A-`5gBTZqueGZaIF z)ujq@@Jn+6ZBc~TG{vg!cI?>k2%-Q=IVn8jd!J4S}rA=GDEBFOR_k-z`UMAAS3^u$GU zL^0;#6x$vfLMh8pDn-~bnBl3lE6~+7h{eVNI%|cN2to*WzM}_MvIZ8j94pHebi`#` zp1O(NY7M(~j=*Ay{$&-AAcP_s^K+QGF^OWNC4%Rd_TlLj0|<>K7Mcy*Z8ou3sbFSF zf|2JoU}(btk|af*=K#nscXu8_Kxno`aDMI%E?=3)nqnK;MYx$XF?H)Io_XO>ytwyq zB#k->)ha>;@*HWJqYxKRYAd5rEw@B)u{n?BX$id{#*fVfOhh@}edA?pda#bl%@n0- z27Rzls3R`M_j0LRM!8(X^@*vL2!ep&YA1RNCDfBetg2S9Yx8#eG;2 zn7n!wb9e5bT&ZAS^#eHY>W647CIJ3(K>&cA?LBy+)`jCUlepNJ$I|Y0y!OgVc=pMS z$kGf=F)ocy;@s#s-aq^mZcNQ1&s)-i5I`wJD1hF$jO9^`Q;k`yU)_&$C*HxyQy1{r viL?0P#2J6>hBV1BabpT;vWP~r*$TlQk-RkVjHiWt00000NkvXXu0mjfQZ=%) diff --git a/recipes/icons/soenderborglokalavisen_dk.png b/recipes/icons/soenderborglokalavisen_dk.png deleted file mode 100644 index 70464fce89f6a09dfde9717982aa2e0b0901dfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmV++1K#|JP)K;?EmdAg2pJ4kv>DYmLC|x#>I*FbVwbW38eN z{}}HqGXVG9bP8yv2`_}&en372$`O%T%-WXzshDy#9J8(lVwb!hIy*aA|EvQP_<9Nj z4D$y9&IRoF^y^rAp?Da`KKf-lgTZg|KuHDrPRJX$f%|GA1)~lysy=o#>$;D!& zbU2pY48&o1H(0ty;+s{P*mK1MHGmR4AKMq&4LOE`E%Ag7=d z*A=bs;SW+~ zwIs+d7%cO98(%O`V1lQMV@SoVxsw^W4jb?=muCI@|IG2)S<}xUD_AEic4{GH}W_zyG5-3|MR)%6jqIQ?7{sEGpAhBaRJ%m>FVdQ&MBb@09yAi A$N&HU diff --git a/recipes/icons/sondagsavisen_dk.png b/recipes/icons/sondagsavisen_dk.png deleted file mode 100644 index efa280d18f9fd65c2a00053a24d3b7562516d629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVD>GbsU`T6<$@9+BH;Qa0FzP`S!tgOPq!enG*!NI}nhlt)jKpz@bE`R zN4vYblarISx3~ZF^y64s-$6s-QB(Zu>*VC*BO@bAOH0ek%j)Xt=<4eE*4N-iNa}-x z_s-7x`uc2aYy$%W5fKq>ZEfuD@AI&+;73XHyuIH-MDV7k{r&y!?(UwRo;Wx-0s{k& zkB{w#h~iXL_tDYePEYB3eE;`{r>s;|NZ{|{Qdv?=KuTW|Jo)0)BsgPt|9;c0C-76 zK~xx5ZO^?8fFKZnQ8-clEVQ9?5fd%#9pPql4y|0pQUxx=h<*V=9#8-*3x0t^Ay`?- z1S%BPhM+a((ApUvf!}mCbUi>hOJJY+2z9+~=@LEJr}G8-VCHatNie2UEtLmErKBu{ l00hAiA;#l~6L{9=w>S0%4sju#?;ijF002ovPDHLkV1kGM6aoMM diff --git a/recipes/icons/southernstar.png b/recipes/icons/southernstar.png deleted file mode 100644 index 58f2efa494fddb201581d43bf1f4f23d8de3d2fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1654 zcmV-+28sEJP)V(Rue&`g_~cHS0Z9ci8>i zbA3DKUUB1nrMcHjwIAC`wH-FA=DT6lQX(@Hn|zkvee(YfUc+m19tFOXo0}sC7Kwtb zq9|?GG&n?@77Z?wIQ9R^tQzF{wA{D#n%v7X9tdUcd*3oSXt^9X$AjIX#8aZ7T%@9S zNqiLjGk^Dr@H!GCSs^_qM3&p+tozYTtMlaMDy7(~EA@*6iZld80)-Yte(@_b9yoy3 zQ>W2#`V8t19zyKd=isnd;VxMsQYL4}c~v~~o|M~4tsfMtdtJ0xR~!(b(r}@Mh)B&d z&tkl*3s_vlP_hgCt*w}yoP+{Dw>zD1eeLTsfT3Yndau97`oX&?&sWN6wO?0ErBRW1 zp%pDVc4Bd10VCbr@c!}7@V~1V;d~2x@Bc88b~}t1>ga?$zYrcH3DJ>Nx&6KGTPDh@ zsJvWP9@3Rlab<$q9&CLjkGX7?k_Ctq3r0VM7%`2e+^dd>XeJdxH8>@rL zizI93$kLZh`3FCSs^9z$BNA(3qJMy{&q|;}5^-L<{+~e;o2D83${RVWLI0+-t6O*V}wHk5V+JwBv{_@uh z@0q>e)4ibQ!jI|x9c~qSll7FCPGC5hM7ia?nCR(&8L3bh(Qkg+9FnYFU{CSh3d4>Z zy9^d4pK^b^&~&4OV4~|Lh?^A^2uS%&q*5@0&8KnSK1APLl9d3-MNMJg03(4E8If67 zx!)u`-f}4P1VgC!!k5usSBGpEYHC7MNLJk;3@k||J*Q}nxMId@j=x#{{8umx3d7QD z{NMQ=nvWjCd^!yin4ppif6EMsDGx}1qx`M}6#K60*E3x%30NzM8T#GtG1}P)GiJue z5jJ@uZXn<`5J=sP03{|}t-q!QX7t8l@JRx;UA&axB_dT>g-D*o5CW427y{`5zPEdT zsR5ZKnx}E#WOw<~&!Fnn*Dyab10#Ze_+tivU`7rw2~A~at^%{L=Br zdfj?dFJFPh`FSWboj(sMPtX8kOXhTB8A>1cG1-t6+3_M%@?@3p2R@3V%O#o@p}>R; z$%r=QOIJJ&wq-RF{CXd-lK>l$<2|Lhk_Ty3ijlj7L3KPzobQi6fr-98DD>CY!~dzz zfgT~cYing+STf9*fMsmO@7I@CVYAf`hOAyleB_g8-+urDl2{`xtupu9FeoFp?bvbn zzVtP82ZK_ zxq9Dz@jwd*?|=TQMzNX!V!df0A)K-%$)8m$NuQpOy@3EVqQ&V%-PvnO=}S;M=?z-XaUU8OranmMfIW>TD}1scNy?(Iz9<@sEF^ zTn=McLWbu9CBa|+78AX_bUS*a3?2Xe58TBTc=V?vZrfb>@B7j0hNdmITeLaz(~){Y zGKwp&5ZCewU@t6&Teq5vt|(v5mH&YsPFbRooLeO diff --git a/recipes/icons/spin_magazine.png b/recipes/icons/spin_magazine.png deleted file mode 100644 index 703456057b6a921f0ba5de838e2e39a26d305732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk@BpAX3RW*PVXMsm#F#`kNVGw3Kp1&dmDEQvf z#WBRf|LLW`!WIXfV;}c7A7y;aAhUt*oy-@R0QQ57r41~v6iPP;P1qo`&rYYnICYu& zgHK<4Kh5@(Yl;)eXR7(N-(bP+yHN=eZF~!4Us!!>IjH1mTsnLEjDoEUY6d>R!s5Ld zp5NDRVine_Z<@nsqs%2F!qF}~v95Z!T-Z^DwV$}$OIMi0-0 z9pZbje`%7!cGc{KO(DW;7i`QVC!IRqEc@V97`U;jMT%RjR{p#Mr>Z_%$63>!e< N;_2$=vd$@?2>?9pd&&R+ diff --git a/recipes/icons/sportowefakty.png b/recipes/icons/sportowefakty.png deleted file mode 100644 index 292b14dd797df81a0f1b5f0b0b2ab491abdcc14e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)oJh?`6tffnqyQmvH`e9a9XGbN00001bW%=J06^y0W&i*Hh)G02RCwBD zj{_D2K@daRsIj#+?ti|q`#%VgLXD diff --git a/recipes/icons/sporza_be.png b/recipes/icons/sporza_be.png deleted file mode 100644 index 4d72dd8c1e453b0a48c61ab6153a464b2eb84ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmV+-1Ks?IP)4AZPYHDiP z+1bLv!n3op{Qvj-{QUg?`IVKG{QvqI8XC&V$}TQ0g8u>D-rmp8&#$v}J9UUFyU34udn_8`lbIy z`1traIXNmSD(UIz`~UU4yu4LaRg3=-zW;gH*x393_bV$aadB}93JNkZGBq_dii(Pj zjg8pvNlA?V6sf7H^78W3)YN->dlVEDtN&631qDw}PsGH;wY9aTrlu1U z6T`#9K0ZDT4Gor-mMpyfc6SgO=}maW;P~tl%QG#+ zGjBPFhkHIC0e$;w;!vxJIJIs>*|wyWU~xzS<7mF{RIRZFfru*=Xo_X`f6$9SZq(Uh zFl0LgfHA80w{>&l;6*0_*I8S06t%l4+~EjMy&`@*0hF)ue9B^>jz<%KcB>#6+r#ub z24joK4gsl+jRSVgEE3JD)#~~eVM$sco4xDb{+>Lo8bHs&0*9loR{(HcqYWh{T{!lr g{P?WSsE?B-zv_xW5>T|fg#Z8m07*qoM6N<$f>}qIQUCw| diff --git a/recipes/icons/sputnik.png b/recipes/icons/sputnik.png new file mode 100644 index 0000000000000000000000000000000000000000..c125dcc4fcff2e7295dd0eca858bb579a928358c GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyx&b~RuI>ds|EDn!i8N-#)&e#1 zl?3?(Gw^<&WtI6-KIqbct+i{^v|l&^Wj1)aIEGmC)=rKTI-gTe~DWM4fln{dW literal 0 HcmV?d00001 diff --git a/recipes/icons/stamgasten.png b/recipes/icons/stamgasten.png deleted file mode 100644 index c89c651c9eae5976039099fcffdccd4b0a7bb566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545 zcmV++0^a?JP)Z-_=EgKUiOdu*MijyZ#^6lFX5%Cu?INSQKaKP9$oOHdf+&z~nYHkMw!dNXF+B)0E5 z%)1X388c9W0k<1@gkA~IKdZO&&-vz!rk@4t8D^j)kF12 z_dCO)O=(m`t_ReV z3qf_{LP9gSF4_x4%a$z(4h~Mbx>BV|^YQa9Z2R=tB5m3XW0fQ_Va%B`htSZ_qyd^V zX@aYI_wN1j|8>Wyn4|#?95_I?Zrzdw$dxM>&!0cXu}6;{ktIu(q~9eCaN)uQu3x`S z*|KHHpFh9BjvYI2Rd{%~^8iPV9KrPK*Dv0`f6s>xAFwP7S1nq!$Zmk&%Bowp?$%bV jS}pU1u3(vnJX8Du$OC>LD10)4=Y3f005LpL_t(| z+Fi?qk;6~`1JTttvwh4A;iUiO%)G;IB$WAHG3Gt*MRrq6IXPB>KY^PA7`oTvuXOnS zx&>@n@zr$)(9v0&5U%6PMAH8oO%r`cf5u)=7^&{vnrI8oQ*FsgZfQJpZ9eA zNF6n|Sise|a%re*N0XNWL0q4b$N{iKQW-xy5_c-qlWDoJ@ zcmZUNWe-9%6`{I{gROQ0_V4RRm6?$-52pS*Ef{OXuOGPX4Y-z{ewvcat{DS(YNBVn zyeOL)Ja9xNgQxS236i;dH=cuAvr|3n}^o@xkP(ej`Wx*!TR| zT=$=I)i}UW>^=Q$(l2w7|5ljh8=86z%8vHV{m4f*D5|aSeYVW9kZeBVWBLr14F^P` z@drPr{kdHKS-yk_HEy6Rs6~u}YevU}_BvKg)wM0NCdP`ZFZ)s?Q+Y0blf;EL<)Ax( z0>EDaZ4vOuQgeMGs}_bupx5cdMfZZy-qz^{<-Hnk#M^w`pQ=R!1MtuyI@^Q;dfGdH zM;6a7Fg!IyTOMp(%ORtVRh_l9mRs)FTz$LIj=J2Q7hmg5rP>RY54b(~Chw$a%4FURRlOo2-42Ocrq-=KUSr?&t^X_dQ?&+<~nNarfTis})jl=43 zdv5+48b3#M?z_~c=IEAp5%A0c7SDR^4`NScaEMP!SJlQrWljF1q{$MI$~VPodq4VG z+r0!53hSDu&uOo!ZI#Q`)m1*T$WBI~dvgr;PeUrI0&6sqh(zgM zwjwN)q?`^vlO53_JLY3ecaN`t9Fr^4W=nw13JAd-P|{yo{4S^RubDdFk!5R#hPMC= zOF21{q-XvBGLX7#k-g%pUmB;(NZOpJ7C}`|fWe9*+w{kpzCkaM8b@?-SdVI$ljy}Br_g~DPP<^c*L38UFt zK#CTSdt6Q*k=o@8Z7jbn1E)U__AVimefV|LQbH1Q9M&gbeN3iI+8im9wJYF<0f6!J zCF;d*sqcEw3;^9;Z`$cfS?zH(glb__u8Ig{-g!&>%SgTc(C#MMXlr}h%GFV!EI?&N z#b8{i39>n%Wklz-_koipV-GMN1$+fU?~J)k^A?3zyby&EWN=#Dp22kMzKzV`mbR3^ z)LmX#l$+nS%2WH{=SAZuVb`HYuB}IwmgG!n3kQ3u>xScreVNIb%#MBAh9>G%8rQoY zn!orGJ2e6q^1k_eC7rbs+1&$nBT!sYEPnI}$6vo=$MQSx(&XfhZhU0jI{dK%UsY7X v5Hfw{*nlFC2Zo1^>6Kk3a}WV17r*}lY~Q$d3Zm_W00000NkvXXu0mjf8DvAE diff --git a/recipes/icons/starwars.png b/recipes/icons/starwars.png deleted file mode 100644 index f50730e6a4561171a0482dfa6bc4a0f8de766328..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 652 zcmV;70(1R|P)4YjujP~FE5)gFq<(kj};Y*4GoJ94vY;A%$JwWnVHU=ozJDE(50o(p`p^E zqSB|Q)1;)-si}<=6xOV)lO!b9udmp#vDvb++O@UYx3}B4xZJq7-@U!yzP{nY!sW}$ z>(GkXD_U-NX@9&c(CHe61`SJ0T zA|jMOKdV<)`StazR8*{2SFl`MuwGuYWo5K*aJ6%Dw|95_{QUm=`~Lj={{8*9aB%xwH%ytUVE-ZBI|P?Gd2nT+C1_6HLP#(s6VopzkGZI>A!pr3X;Uk(h;Kh>IU m@U35uSA?d_1h@ge6#N4+JRl3EMbGyD00001D2 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 M07*qoM6N<$f-r3rkpKVy diff --git a/recipes/icons/strategy-business.png b/recipes/icons/strategy-business.png deleted file mode 100644 index cfef7ee96f5a8d77a33b0fe45c5cd19b536dd936..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv{s5m4*W1Ba4-Dj9_b~k5#_<3D z{{z!4Q)=T1F}#p)=3#`F(+>z}K6lsgBhtiqiDB!0qJQ@u(%Kw6=461Kq3Y`Eif|^ zNIS8sHx!hBZZV3CA=nHI_JXcv6w5>0Pl2=pR+VEXHmt6|ZayeA9fd_E;JZ#6d?&wAmv2cRI8WesNW@iyo2bgmQ)>L3R1C|uQ+De$8 zhf>n8l^ga8#g1&0mQD=m=(7xL!$dbzaNuRcOC+c1nBhZc&M+?*-pz%L4=~e@=vspI z2J9I~46Lye2i`BkOkY?bK-@TN$3nMnlXK@`{$1?u2gE|`=n3npz~f$`XGO3nL8j>1 z4a^B5W{%{XJrvatLmOC_4~KOI1Jt^CNvkKZw(%Hz}y@Z z5si{l(WMAjRkkyGigg&oyGj1u0o4A2Vpsd`1A3Hv=5ha^B_C)|l+rN|hD%`D%Z%~< zBO?|XDkC&=qk(4*N2u1bZ=Ip(k)C)jtI zIN3@#Q-5SHI-gKgY|eMB>>5qW$K*ZzyjeMKejKmcNd;QikZAuza*Ycdv z)Z1LX)A{50q=VWsQJU`H(2(ic&Oc$hY8&$xwj-{pZkX?y$;Y%=@1(mOY>#qBOVb>k zk~S7(?MxeIRi}fA+83)fd|R~!UJqOs3!u5Bxy5YrK5Z~+LVYvNh+GcZv&zg= z`iq%cQUc?sGdZ0D2l=!epSJ5d&qKs2ar|Df#p_{%vhYRMnzK4oaF$ky^{wv}QB&%s zRc{zGyU~}F>AV*cp((8ef+_8VkzZ1`#;Tef{_U-@pHVe*FCZ|1ZP;r}YUQo~`eXJ4F{)gt_i#xD~Sf&4U%O z&YP!Rf4h%K;swJ5@kb!-m;V4wNM>mN&#;|ADE|c5jQ=nB`5*sh_?^$ez-YJPJ5bdc zh8(ahxB49z7~=l^|82^14#@4W}i4{{P#i_T#@F!v&DTZge~O z*Uv0k^6wzC)Pla;^FS?skI!Cq_y7O92aayvvh^d#43M2De))&+E?59n2mt3o$)q90 R=(hj>002ovPDHLkV1jbyfExe+ diff --git a/recipes/icons/superbebe.png b/recipes/icons/superbebe.png deleted file mode 100644 index 5f2a6c5a78628b910d25d8d6120f1b9348549965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!cYsfbE0BJ|*YZTF=Z;p-8?7l{ zlzRTiP5Hvt^M|YF4_nV4CLn70!c_CbYR(n6DQ|+7yvf^grEANRX-D2nI`U@Ol{fqD zyt($|%AqTJwjF7?<;?~(j3iD`ZF)gq_$&EGfaawETSg3lA12Y*>?re)Oz-CT2gE7P>8nyH$a z6L&HAP7TpKbel^idQS6{=o!f@4<7H_>>-$$Y>_uD!ee3^KX;Ub(9G43A9V+PN_2Yl wY{!-ryO={wWhy>f@jtlpO*p=<+geZmP%e94(EnS+bIE?(XhO-Mh-xZQZT? z^_w=|+Pm4;--q$J&wU*~hrVy|*MBeiehT{j$3YzU{N=Nyn-;FvymZCpCI88>YU{Fj zt7klFd>F5iAApwjW(>sCu)zGo;Q;d=9J*5nip%fXp1r-jKLBl=twtDU#BfG*`!K?~ zH=;Yf9qv?14+t*Ikg~$M6;j`SSrOe6)?N0;frRc92M)@rOZowS{Q_taKW0F)0z$HE z^0PDoesKiE3@U_JR(RH;=}A$qJK%K3Ox=%R{|X2}iTdP16au0G;tU(;lvWl0Eug)t zO$ETOr6kFEKjl$!Lt+DL7fjAyJlEFIdhz=ChWmB34b`4hhvu^Zn(i0VFUlvk!W;=P zJ}86?R3bp<({?iiNs{4{`zhRtU}wq->A?Pj`)t9KITL}cJGV4EtV6>J=z6kP$%0Qd z__-71UW|=lAz+|UTKPMmyWI?eR~9ErNtEgsOF}}jhDl>nqb=CJcMBS6nW-Cht;NC- zG)%u{A0$c4D`iniqa2I$e}_bXj_!6x0NippEPI38jxZ@8Bq=N&K7J7I5}jQgYc{Pw z5QkuZg*efC;&4lGl#Kx@V|W4sfQm#V(38O>hl7+yxgEvr6J-OSaC*Mo0C8DQZ_n(- zGY5~(nlQa+WbV+^ArUJ{!!7#*RK>UzCGvLwS~8YPDpJ`LpdMvkurW-!Qqn!SFBrFI4R#&K6~-3q^!8Ly~Xe; znA&nhl01ljN}X z+RdvUKED6(@x$GcJ15T`Z|`V(@UR}36IPE4xH*E_93mdXrGTp1%7OKu_s5F%`SYjD z5orimn%_y&1h!{zzmR1qpyBdaWAcVaGs2Pd(1@I&IR&GJj>^LANOSX`kbRllFJf5? z6sA){c-;6XzTkWV3@oCHS1bf9m%?CICQl}DX(SIOusIXc1P~20;-SIVBpSwZbrf|) z+{wY=Ksf}Rq_FqR+c$mReEB})u3opM|GH;5PiAp7kDwb2>?DRu2kcQ2_xu6){(k7_!GS^;VxSoSGon;Xrg1LE z$MSeK7xQ>Lhm$!p%;5eEb`C`}P>6xNUthd@K62~`uv03-sVh@66dQ(9 z7y-~UfUt}0qlkGxiRsjBU%+%2)wNaMeG&k^|9k)8-Nvo!MFEI#b&6~lt^mV8=@=#m zBZI1BjyA*#2w<1HrM3CH!yf@ZE9{|k@YtcL6Glyr31FC-T^iA`57Sa0gFVd3iLTwU zvEhEbJ`6OJdrZ+ET@}wgh%z1*3 tGFG>3O84gKoBt<&=7f(HdW}+gtPJOF%Y|ntHoXAZ=IQF^vd$@?2>|nKGxY!f diff --git a/recipes/icons/syddjurslokalavisen_dk.png b/recipes/icons/syddjurslokalavisen_dk.png deleted file mode 100644 index 70464fce89f6a09dfde9717982aa2e0b0901dfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 zcmV++1K#|JP)K;?EmdAg2pJ4kv>DYmLC|x#>I*FbVwbW38eN z{}}HqGXVG9bP8yv2`_}&en372$`O%T%-WXzshDy#9J8(lVwb!hIy*aA|EvQP_<9Nj z4D$y9&IRoF^y^rAp?Da`KKf-lgTZg|KuHDrPRJX$f%|GA1)~lysy=o#>$;D!& zbU2pY48&o1H(0ty;+s{P*mK1MHGmR4AKMq&4LOE`E%Ag7=d z*A=bs;SW.*?to post comments', re.DOTALL | re.IGNORECASE), - lambda match: 'Tags:'), - ] - - extra_css = """ - .print-taxonomy { display: inline } - .print-taxonomy ul { display: inline; margin: 0px } - .print-taxonomy ul li { display: inline; list-style: none } - .field-type-date div { display: inline } - .field-type-link div { display: inline } - .field-type-text div { display: inline } - .field-label { font-style: italic } - """ - - def print_version(self, url): - return url.replace('http://rabble.ca/', 'http://rabble.ca/print/') - - remove_tags = [ - # print version of the web page - dict(name='div', attrs={'class': ['print-logo']}), - dict(name='div', attrs={'class': ['print-site_name']}), - dict(name='hr', attrs={'class': ['print-hr']}), - dict(name='div', attrs={'class': ['print-links']}), - - # regular web page in case you need to download them - dict(name='div', attrs={'id': ['header']}), - dict(name='div', attrs={'class': ['container-submenu']}), - dict(name='div', attrs={'id': ['sidebar']}), - dict(name='div', attrs={'id': ['footer']}), - dict(name='div', attrs={ - 'class': ['rabble-nodelinks rabble-nodelinks-top']}), - dict(name='div', attrs={ - 'class': ['rabble-nodelinks rabble-nodelinks-bottom']}), - dict(name='div', attrs={'class': ['tags-issues']}), - dict(name='div', attrs={ - 'class': ['field field-type-text field-field-summary']}), - dict(name='span', attrs={'class': ['print-footnote']}), - ] diff --git a/recipes/radikal_tr.recipe b/recipes/radikal_tr.recipe deleted file mode 100644 index 0212d591c5..0000000000 --- a/recipes/radikal_tr.recipe +++ /dev/null @@ -1,59 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010-2014, Darko Miletic ' -''' -radikal.com.tr -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Radikal_tr(BasicNewsRecipe): - title = 'Radikal - Turkey' - __author__ = 'Darko Miletic' - description = 'News from Turkey' - publisher = 'radikal' - category = 'news, politics, Turkey' - oldest_article = 2 - max_articles_per_feed = 150 - no_stylesheets = True - use_embedded_content = False - remove_empty_feeds = True - auto_cleanup = False - masthead_url = 'http://www.radikal.com.tr/D/i/1/V2/radikal_logo.jpg' - language = 'tr' - publication_type = 'newspaper' - extra_css = """ @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} - body{font-family: 'PT Sans',Arial,Helvetica,sans1,sans-serif} - """ - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - remove_tags = [ - dict(name=['meta', 'iframe', 'embed', 'object', 'link', 'base']), - dict(name='div', attrs={ - 'class': ['options', 'news_related', 'browserWidth_shareBox']}), - dict(attrs={'class': ['breadcrumb clearfix', 'box_title']}) - ] - - keep_only_tags = [ - dict(attrs={'class': ['news-content-header', - 'news-content-text clearfix', - 'author-content-text', - 'news_detail_top', - 'news_article']}) - ] - - feeds = [ - - (u'Yazarlar', u'http://www.radikal.com.tr/d/rss/RssYazarlar.xml'), - (u'Türkiye', u'http://www.radikal.com.tr/d/rss/Rss_77.xml'), - (u'Politika', u'http://www.radikal.com.tr/d/rss/Rss_78.xml'), - (u'Dünya', u'http://www.radikal.com.tr/d/rss/Rss_81.xml'), - (u'Ekonomi', u'http://www.radikal.com.tr/d/rss/Rss_80.xml'), - (u'Radikal 2', u'http://www.radikal.com.tr/d/rss/Rss_42.xml'), - (u'Radikal Hayat', u'http://www.radikal.com.tr/d/rss/Rss_41.xml'), - (u'Radikal Kitap', u'http://www.radikal.com.tr/d/rss/Rss_40.xml'), - (u'Spor', u'http://www.radikal.com.tr/d/rss/Rss_84.xml') - ] diff --git a/recipes/radio_praha.recipe b/recipes/radio_praha.recipe deleted file mode 100644 index 0e6992f72d..0000000000 --- a/recipes/radio_praha.recipe +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1291540961(BasicNewsRecipe): - - title = u'Radio Praha' - __author__ = 'Francois Pellicaan' - description = u'Česká oficiální mezinárodní vysílací stanice.' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - remove_empty_feeds = True - encoding = 'utf8' - publisher = u'Český rozhlas' - category = 'News' - language = 'cs' - publication_type = 'newsportal' - - extra_css = u'h1 .section { display: block; text-transform: uppercase; font-size: 10px; margin-top: 4em; } \n .title { font-size: 14px; margin-top: 4em; } \n a.photo { display: block; clear:both; } \n .caption { font-size: 9px; display: block; clear:both; padding:0px 0px 20px 0px; } \n a { font-type: normal; }' # noqa - - keep_only_tags = [ - dict(name='div', attrs={'class': ['main']}) - ] - remove_tags = [ - dict(name='div', attrs={'class': ['cleaner', 'options', 'toolsXXL']}), - dict(name='ul', attrs={'class': ['tools']}) - ] - feeds = [ - (u'Domácí politika', 'http://www.radio.cz/feeds/rss/cs/oblast/dompol.xml'), - (u'Společnost', 'http://www.radio.cz/feeds/rss/cs/oblast/spolecnost.xml'), - (u'Evropská unie', 'http://www.radio.cz/feeds/rss/cs/oblast/eu.xml'), - (u'Zahraniční politika', - 'http://www.radio.cz/feeds/rss/cs/oblast/zahrpol.xml'), - (u'Ekonomika', 'http://www.radio.cz/feeds/rss/cs/oblast/ekonomika.xml'), - (u'Kultura', 'http://www.radio.cz/feeds/rss/cs/oblast/kultura.xml'), - (u'Krajané', 'http://www.radio.cz/feeds/rss/cs/oblast/krajane.xml'), - (u'Historie', 'http://www.radio.cz/feeds/rss/cs/oblast/historie.xml'), - (u'Příroda', 'http://www.radio.cz/feeds/rss/cs/oblast/priroda.xml'), - (u'Věda', 'http://www.radio.cz/feeds/rss/cs/oblast/veda.xml'), - (u'Sport', 'http://www.radio.cz/feeds/rss/cs/oblast/sport.xml'), - (u'Cestování', 'http://www.radio.cz/feeds/rss/cs/oblast/cestovani.xml'), - ] diff --git a/recipes/randerslokalavisen_dk.recipe b/recipes/randerslokalavisen_dk.recipe deleted file mode 100644 index 8d88d75e8c..0000000000 --- a/recipes/randerslokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Din avis Randers -''' - - -class RandersLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Din avis Randers' - description = 'Lokale og regionale nyheder, sport, kultur fra Randers og omegn på dinavis.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Din avis Randers', 'http://dinavis.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/realitatea.recipe b/recipes/realitatea.recipe deleted file mode 100644 index 7272dde488..0000000000 --- a/recipes/realitatea.recipe +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -realitatea.net -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Realitatea(BasicNewsRecipe): - title = 'Realitatea' - __author__ = u'Silviu Cotoar\u0103' - publisher = 'Realitatea' - description = u'\u0218tiri din Rom\u00e2nia' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Stiri,Romania' - encoding = 'utf-8' - cover_url = 'http://assets.realitatea.ro/images/logo.jpg' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'articleTitle '}), dict( - name='div', attrs={'class': 'articleBody'}) - ] - - remove_tags = [dict(name='div', attrs={'id': 'aus'})] - feeds = [(u'\u0218tiri', u'http://realitatea.feedsportal.com/c/32533/fe.ed/rss.realitatea.net/stiri.xml')] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/rebelion.recipe b/recipes/rebelion.recipe deleted file mode 100644 index 88395fb91f..0000000000 --- a/recipes/rebelion.recipe +++ /dev/null @@ -1,37 +0,0 @@ -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import unicode_literals - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class RebelionRecipe (BasicNewsRecipe): - # Thanks to atlantique http://www.mobileread.com/forums/member.php?u=67876 - __author__ = u'Marc Busqué ' - __url__ = 'http://www.lamarciana.com' - __version__ = '1.0' - __license__ = 'GPL v3' - __copyright__ = '2012, Marc Busqué ' - title = u'Rebelion.org' - description = u'Rebelión pretende ser un medio de información alternativa que publique las noticias que no son consideradas importantes por los medios de comunicación tradicionales. También, dar a las noticias un tratamiento diferente en la línea de mostrar los intereses que los poderes económicos y políticos del mundo capitalista ocultan para mantener sus privilegios y el status actual. Queremos servir y ayudarnos de todos los grupos, colectivos y personas que trabajan por cambiar este mundo en una perspectiva radicalmente diferente, más justa, igualitaria y equilibrada social y ecológicamente. Es nuestro objetivo contar con la participación y colaboración de todos vosotros para que Rebelión sea un espacio serio, riguroso y actualizado en la difusión de noticias.' # noqa - url = 'http://www.rebelion.org' - language = 'es' - tags = 'contrainformación, información alternativa' - oldest_article = 1 - remove_empty_feeds = True - encoding = 'latin1' - keep_only_tags = [ - {'name': 'div', 'attrs': {'id': 'CuerpoNoticia'}} - ] - no_stylesheets = True - extra_css = '.autor {font-style: italic;} .titulo {font-size: 150%;} .titulo, .pretitulo {text-align: center;} #TextoNoticia {text-align:justify;} .autor, .fuente, .entradilla {font-size: 90%; text-align: left;}' # noqa - - feeds = [ - (u'Titulares del día', u'http://www.rebelion.org/rss_portada.php'), - ] - - # See http://www.mobileread.com/forums/showthread.php?t=174501 - def print_version(self, url): - id = re.compile(r'\d*$').search(url).group() - return u'http://www.rebelion.org/noticia.php?id=%s' % id diff --git a/recipes/red_aragon.recipe b/recipes/red_aragon.recipe deleted file mode 100644 index 70f82a9f88..0000000000 --- a/recipes/red_aragon.recipe +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -__license__ = 'GPL v3' -__copyright__ = '11 December 2010, desUBIKado' -__author__ = 'desUBIKado' -__description__ = 'Entertainment guide from Aragon' -__version__ = 'v0.01' -__date__ = '11, December 2010' -''' -[url]http://www.redaragon.es/[/url] -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class heraldo(BasicNewsRecipe): - __author__ = 'desUBIKado' - description = u'Guia de ocio desde Aragon' - title = u'RedAragon' - publisher = 'Grupo Z' - category = 'Concerts, Movies, Entertainment news' - cover_url = 'http://www.redaragon.com/2008_img/logotipo.gif' - language = 'es' - timefmt = '[%a, %d %b, %Y]' - oldest_article = 15 - max_articles_per_feed = 100 - encoding = 'iso-8859-1' - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - - feeds = [(u'Conciertos', u'http://redaragon.com/rss/agenda.asp?tid=1'), - (u'Exposiciones', u'http://redaragon.com/rss/agenda.asp?tid=5'), - (u'Teatro', u'http://redaragon.com/rss/agenda.asp?tid=10'), - (u'Conferencias', u'http://redaragon.com/rss/agenda.asp?tid=2'), - (u'Ferias', u'http://redaragon.com/rss/agenda.asp?tid=6'), - (u'Filmotecas/Cineclubs', - u'http://redaragon.com/rss/agenda.asp?tid=7'), - (u'Presentaciones', - u'http://redaragon.com/rss/agenda.asp?tid=9'), - (u'Fiestas', u'http://redaragon.com/rss/agenda.asp?tid=11'), - (u'Infantil', u'http://redaragon.com/rss/agenda.asp?tid=13'), - (u'Otros', u'http://redaragon.com/rss/agenda.asp?tid=8')] - - keep_only_tags = [dict(name='div', attrs={'id': 'FichaEventoAgenda'})] - - remove_tags = [dict(name='div', attrs={ - 'class': ['Comparte', 'CajaAgenda', 'Caja', 'Cintillo']})] - - remove_tags_before = dict(name='div', attrs={'id': 'FichaEventoAgenda'}) - - remove_tags_after = dict(name='div', attrs={'class': 'Cintillo'}) diff --git a/recipes/replicavedetelor.recipe b/recipes/replicavedetelor.recipe deleted file mode 100644 index 20e8c80220..0000000000 --- a/recipes/replicavedetelor.recipe +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, ' -''' -replicavedetelor.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class ReplicaVedetelor(BasicNewsRecipe): - title = u'Replica Vedetelor' - __author__ = u'Silviu Cotoara' - description = u'Ofer\u0103 vedetelor dreptul la replic\u0103' - publisher = 'Replica Vedetelor' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Reviste,Vedete' - encoding = 'utf-8' - cover_url = 'http://www.webart-software.eu/_pics/lucrari_referinta/medium/84/1-Replica-Vedetelor.jpg' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'id': 'zona-continut'}) - ] - - remove_tags = [ - dict(name='ul', attrs={'id': [ - 'lista-imagini']}), dict(name='form', attrs={'id': ['f-trimite-unui-prieten']}) - - ] - - remove_tags_after = [ - dict(name='form', attrs={'id': ['f-trimite-unui-prieten']}) - ] - - feeds = [ - (u'Feeds', u'http://www.replicavedetelor.ro/feed') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/republica.recipe b/recipes/republica.recipe deleted file mode 100644 index 64b750b74a..0000000000 --- a/recipes/republica.recipe +++ /dev/null @@ -1,21 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1316862613(BasicNewsRecipe): - title = u'Republica' - __author__ = 'Manish Bhattarai' - description = 'News from the Republica' - language = 'en_NP' - masthead_url = 'http://blog.nyayahealth.org/wp-content/uploads/2011/03/myrepublica1.gif' - oldest_article = 1 - max_articles_per_feed = 100 - auto_cleanup = True - cover_url = 'http://www.myrepublica.com/repub_front.jpg' - feeds = [ - (u'Political Affairs', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=14'), - (u'Business & Economy', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=15'), - (u'International', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=21'), - - (u'Social Issues', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=16'), - (u'Sports', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=18'), - (u'Lifestyle', u'http://www.myrepublica.com/portal/news_rss.php?news_category_id=17')] diff --git a/recipes/republika.recipe b/recipes/republika.recipe deleted file mode 100644 index 0e4810b155..0000000000 --- a/recipes/republika.recipe +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' - -''' -republika.co.yu -''' - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Republika(BasicNewsRecipe): - title = 'Republika' - __author__ = 'Darko Miletic' - description = 'Glasilo gradjanskog samooslobadjanja. Protiv stihije straha, mrznje i nasilja' - publisher = ' Zadruga Res Publica' - category = 'news, politics, Serbia' - language = 'sr' - - lang = 'sr-Latn-RS' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'cp1250' - use_embedded_content = False - INDEX = u'http://www.republika.co.yu/' - extra_css = ' @font-face {font-family: "serif1"; src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} body{font-family: serif1, serif} .article_description{font-family: serif1, serif} .naslov{font-size: x-large; font-weight: bold} .autor{font-size: small; font-weight: bold} ' # noqa - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': lang, 'pretty_print': True - } - - preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] - - keep_only_tags = [dict(attrs={'class': 'naslov'}), dict(attrs={'class': 'text1'}) - ] - - remove_tags = [dict(name=['object', 'link', 'iframe', 'base', 'img'])] - - feeds = [(u'Svi clanci', INDEX)] - - def preprocess_html(self, soup): - attribs = ['style', 'font', 'valign', 'colspan', 'width', 'height', 'rowspan', 'summary', 'align', 'cellspacing', 'cellpadding', 'frames', 'rules', 'border' ] # noqa - for item in soup.body.findAll(name=['table', 'td', 'tr', 'th', 'caption', 'thead', 'tfoot', 'tbody', 'colgroup', 'col']): - item.name = 'div' - for attrib in attribs: - item[attrib] = '' - del item[attrib] - return soup - - def parse_index(self): - totalfeeds = [] - lfeeds = self.get_feeds() - for feedobj in lfeeds: - feedtitle, feedurl = feedobj - self.report_progress(0, _('Fetching feed') + ' %s...' % - (feedtitle if feedtitle else feedurl)) - articles = [] - soup = self.index_to_soup(feedurl) - for item in soup.findAll('a', attrs={'class': 'naslovLink'}): - url = item['href'] - title = self.tag_to_string(item) - articles.append({ - 'title': title, 'date': '', 'url': url, 'description': '' - }) - totalfeeds.append((feedtitle, articles)) - return totalfeeds diff --git a/recipes/reuters_ja.recipe b/recipes/reuters_ja.recipe deleted file mode 100644 index d7c895cf36..0000000000 --- a/recipes/reuters_ja.recipe +++ /dev/null @@ -1,22 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class ReutersJa(BasicNewsRecipe): - - title = 'Reuters(Japan)' - description = 'Global news in Japanese' - __author__ = 'Hiroshi Miura' - use_embedded_content = False - language = 'ja' - max_articles_per_feed = 10 - remove_javascript = True - auto_cleanup = True - - feeds = [( - 'Top Stories', 'http://feeds.reuters.com/reuters/JPTopNews?format=xml'), - ('World News', 'http://feeds.reuters.com/reuters/JPWorldNews?format=xml'), - ('Business News', 'http://feeds.reuters.com/reuters/JPBusinessNews?format=xml'), - ('Technology News', 'http://feeds.reuters.com/reuters/JPTechnologyNews?format=xml'), - ('Oddly Enough News', - 'http://feeds.reuters.com/reuters/JPOddlyEnoughNews?format=xml') - ] diff --git a/recipes/revista_bla.recipe b/recipes/revista_bla.recipe deleted file mode 100644 index e03b47d88e..0000000000 --- a/recipes/revista_bla.recipe +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__author__ = '2010, Gustavo Azambuja ' -''' -http://www.revistabla.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Noticias(BasicNewsRecipe): - title = 'Revista Bla' - __author__ = 'Gustavo Azambuja' - description = 'Moda | Uruguay' - language = 'es_UY' - timefmt = '[%a, %d %b, %Y]' - use_embedded_content = False - recursion = 5 - encoding = 'utf8' - remove_javascript = True - no_stylesheets = True - - oldest_article = 20 - max_articles_per_feed = 100 - keep_only_tags = [dict(id=['body_container'])] - remove_tags = [ - dict(name='div', attrs={ - 'class': ['date_text', 'comments', 'form_section', 'share_it']}), - dict(name='div', attrs={ - 'id': ['relatedPosts', 'spacer', 'banner_izquierda', 'right_container']}), - dict(name='p', attrs={'class': 'FacebookLikeButton'}), - dict(name=['object', 'link'])] - - extra_css = ''' - h1{font-family:Geneva, Arial, Helvetica, sans-serif;color:#154B7A;} - h3{font-size: 14px;color:#999999; font-family:Geneva, Arial, Helvetica, sans-serif;font-weight: bold;} - h2{color:#666666; font-family:Geneva, Arial, Helvetica, sans-serif;font-size:small;} - p {font-family:Arial,Helvetica,sans-serif;} - ''' - feeds = [ - (u'Articulos', u'http://www.revistabla.com/feed/') - ] - - def get_cover_url(self): - cover_url = None - index = 'http://www.revistabla.com' - soup = self.index_to_soup(index) - link_item = soup.find('div', attrs={'class': 'header_right'}) - if link_item: - cover_url = link_item.img['src'] - return cover_url - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return soup diff --git a/recipes/revista_cromos.recipe b/recipes/revista_cromos.recipe deleted file mode 100644 index dc8b3a4ce6..0000000000 --- a/recipes/revista_cromos.recipe +++ /dev/null @@ -1,38 +0,0 @@ -# coding=utf-8 -# https://github.com/iemejia/calibrecolombia - -''' -http://www.cromos.com.co/ -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class ElMalpensante(BasicNewsRecipe): - title = u'Revista Cromos' - language = 'es_CO' - __author__ = 'Ismael Mejia ' - cover_url = 'http://www.cromos.com.co/sites/cromos.com.co/themes/cromos_theme/images/logo_morado.gif' - description = 'Revista Cromos' - oldest_article = 7 - simultaneous_downloads = 20 - use_embedded_content = True - remove_empty_feeds = True - max_articles_per_feed = 100 - feeds = [(u'Cromos', u'http://www.cromos.com.co/rss.xml'), - (u'Moda', u'http://www.cromos.com.co/moda/feed'), - (u'Estilo de Vida', - u'http://www.cromos.com.co/estilo-de-vida/feed'), - (u'Cuidado Personal', - u'http://www.cromos.com.co/estilo-de-vida/cuidado-personal/feed'), - (u'Salud y Alimentación', - u'http://www.cromos.com.co/estilo-de-vida/salud-y-alimentacion/feed'), - (u'Personajes', u'http://www.cromos.com.co/personajes/feed'), - (u'Actualidad', - u'http://www.cromos.com.co/personajes/actualidad/feed'), - (u'Espectáculo', - u'http://www.cromos.com.co/personajes/espectaculo/feed'), - (u'Reportajes', u'http://www.cromos.com.co/reportajes/feed'), - (u'Eventos', u'http://www.cromos.com.co/eventos/feed'), - (u'Modelos', u'http://www.cromos.com.co/modelos/feed'), - ] diff --git a/recipes/revista_piaui.recipe b/recipes/revista_piaui.recipe deleted file mode 100644 index c6014fdc9c..0000000000 --- a/recipes/revista_piaui.recipe +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -from calibre.web.feeds.news import BasicNewsRecipe - - -class RevistaPiaui(BasicNewsRecipe): - title = u'Revista piau\xed' - language = 'pt_BR' - __author__ = u'Eduardo Gustini Simões' - oldest_article = 31 - max_articles_per_feed = 50 - auto_cleanup = True - - feeds = [(u'Edi\xe7\xe3o Atual', - u'http://revistapiaui.estadao.com.br/feed/rss/edicao-atual.xml')] - - def parse_feeds(self): - feeds = BasicNewsRecipe.parse_feeds(self) - for feed in feeds: - for article in feed.articles[:]: - soup = self.index_to_soup( - 'http://revistapiaui.estadao.com.br/feed/rss/edicao-atual.xml') - itemTitle = article.title.partition('|')[0].rstrip() - item = soup.find(text=itemTitle) - articleDescription = item.parent.parent.description.string.partition( - '
')[2] - article.summary = articleDescription - - return feeds - - def populate_article_metadata(self, article, soup, first): - h2 = soup.find('h2') - h2.string.replaceWith(h2.string.partition('|')[0].rstrip()) - h2.replaceWith(h2.prettify() + '

' + article.summary + '

' + - ' posted at ' + article.localtime.strftime('%d-%m-%Y') + '

') diff --git a/recipes/revista_semana.recipe b/recipes/revista_semana.recipe deleted file mode 100644 index c36aea8dd0..0000000000 --- a/recipes/revista_semana.recipe +++ /dev/null @@ -1,11 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1317341570(BasicNewsRecipe): - title = u'Revista Semana' - __author__ = 'BIGO-CAVA' - language = 'es_CO' - oldest_article = 7 - max_articles_per_feed = 100 - - feeds = [(u'Revista Semana', u'http://www.semana.com/rss/Semana_OnLine.xml')] diff --git a/recipes/revista_summa.recipe b/recipes/revista_summa.recipe deleted file mode 100644 index 6fa8eec8ad..0000000000 --- a/recipes/revista_summa.recipe +++ /dev/null @@ -1,22 +0,0 @@ -__license__ = 'GPL v3' -__author__ = 'Vakya' -__version__ = 'v1.0' -__date__ = '14, May 2012' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1336226255(BasicNewsRecipe): - - title = u'Revista Summa' - publisher = u'Summa' - __author__ = 'Vakya' - description = 'Informacion regional sobre economia y negocios' - language = 'es' - - oldest_article = 15 - max_articles_per_feed = 100 - auto_cleanup = True - remove_tags_before = dict(name='h1') - remove_tags_after = dict(name='label') - feeds = [(u'Revista Summa', u'http://www.revistasumma.com/rss/rss-v2.0.rss')] diff --git a/recipes/rga.recipe b/recipes/rga.recipe deleted file mode 100644 index 1d968edd7b..0000000000 --- a/recipes/rga.recipe +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, W. Gerard ' -''' -rga-online.de -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class rga_onliner(BasicNewsRecipe): - title = 'RGA Online - German' - __author__ = 'Werner Gerard' - description = "E-Zeitung aus RSS-Artikeln zusammengestellt." - publisher = 'RGA-Online' - category = 'Nachrichten, RGA' - oldest_article = 3 - max_articles_per_feed = 100 - language = 'de' - - lang = 'de-DE' - no_stylesheets = True - use_embedded_content = False - encoding = 'cp1252' - - remove_tags_before = dict(name='span', attrs={'class': 'headgross'}) - remove_tags_after = dict(name='br', attrs={'clear': 'all'}) - -# remove_tags_after = dict(name='br', attrs={'clear':'clear'}) - - feeds = [ - ('RGA-Online Remscheid', 'http://www.rga-online.de/rss/rs_news.php'), - ('RGA-Online Wermelskirchen', - 'http://www.rga-online.de/rss/wk_news.php'), - ('RGA-Online Hueckeswagen', - 'http://www.rga-online.de/rss/hk_news.php'), - ('RGA-Online Radevormwald', - 'http://www.rga-online.de/rss/rz_news.php'), - ('RGA-Online Tagesthemen', - 'http://www.rga-online.de/rss/tt_news.php'), - ('RGA-Online Brennpunkte', - 'http://www.rga-online.de/rss/br_news.php'), - ('RGA-Online Sport', - 'http://www.rga-online.de/rss/spo_news.php'), - ('RGA-Online Lokalsport', - 'http://www.rga-online.de/rss/sp_news.php'), - ('RGA-Online Bergisches Land', - 'http://www.rga-online.de/rss/bg_news.php'), - ('RGA-Online Bergische Wirtschaft', - 'http://www.rga-online.de/rss/bw_news.php') - ] - - def get_cover_url(self): - return 'http://rga.werner-gerard.de/rga.jpg' - - def postprocess_html(self, soup, first): - for tag in soup.findAll(name=['table', 'tr', 'td']): - tag.name = 'span' - return soup diff --git a/recipes/rheinische_post.recipe b/recipes/rheinische_post.recipe deleted file mode 100644 index b0f96cd105..0000000000 --- a/recipes/rheinische_post.recipe +++ /dev/null @@ -1,57 +0,0 @@ -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class AdvancedUserRecipe(BasicNewsRecipe): - - title = u'RP-online' - __author__ = 'schuster' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - language = 'de' - remove_javascript = True - masthead_url = 'http://www.die-zeitungen.de/uploads/pics/LOGO_RP_ONLINE_01.jpg' - cover_url = 'http://www.manroland.com/com/pressinfo_images/com/RheinischePost_Logo_300dpi.jpg' - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h4{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} - img {min-width:300px; max-width:600px; min-height:300px; max-height:800px} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' - remove_tags_before = dict(id='article_content') - remove_tags_after = dict(id='article_content') - remove_tags = [dict(attrs={'class': ['goodies', 'left', 'right', 'clear-all', 'teaser anzeigenwerbung', 'lesermeinung', 'goodiebox', 'goodiebox 1', 'goodiebox 2', 'goodiebox 3', 'boxframe', 'link']}), # noqa - dict(id=['click_Fotos_link']), - dict(name=['script', 'noscript', 'style', '_top', 'click_Fotos_link'])] - - feeds = [ (u'Top-News', u'http://www.ngz-online.de/app/feed/rss/topnews'), - (u'Politik', u'http://www.ngz-online.de/app/feed/rss/politik'), - (u'Wirtschaft', u'http://www.ngz-online.de/app/feed/rss/wirtschaft'), - (u'Panorama', u'http://www.ngz-online.de/app/feed/rss/panorama'), - (u'Sport', u'http://www.ngz-online.de/app/feed/rss/sport'), - (u'Tour de France', u'http://www.ngz-online.de/app/feed/rss/tourdefrance'), - (u'Fußball', u'http://www.ngz-online.de/app/feed/rss/fussball'), - (u'Fußball BuLi', u'http://www.ngz-online.de/app/feed/rss/bundesliga'), - (u'Formel 1', u'http://www.ngz-online.de/app/feed/rss/formel1'), - (u'US-Sport', u'http://www.ngz-online.de/app/feed/rss/us-sports'), - (u'Boxen', u'http://www.ngz-online.de/app/feed/rss/boxen'), - (u'Eishockey', u'http://www.ngz-online.de/app/feed/rss/eishockey'), - (u'Basketball', u'http://www.ngz-online.de/app/feed/rss/basketball'), - (u'Handball', u'http://www.ngz-online.de/app/feed/rss/handball'), - (u'Motorsport', u'http://www.ngz-online.de/app/feed/rss/motorsport'), - (u'Tennis', u'http://www.ngz-online.de/app/feed/rss/tennis'), - (u'Radsport', u'http://www.ngz-online.de/app/feed/rss/radsport'), - (u'Kultur', u'http://www.ngz-online.de/app/feed/rss/kultur'), - (u'Gesellschaft', u'http://www.ngz-online.de/app/feed/rss/gesellschaft'), - (u'Wissenschaft', u'http://www.ngz-online.de/app/feed/rss/wissen'), - (u'Gesundheit', u'http://www.ngz-online.de/app/feed/rss/gesundheit'), - (u'Digitale Welt', u'http://www.ngz-online.de/app/feed/rss/digitale'), - (u'Auto & Mobil', u'http://www.ngz-online.de/app/feed/rss/auto'), - (u'Reise & Welt', u'http://www.ngz-online.de/app/feed/rss/reise'), - (u'Beruf & Karriere', u'http://www.ngz-online.de/app/feed/rss/beruf'), - (u'Herzrasen', u'http://www.ngz-online.de/app/feed/rss/herzrasen'), - (u'About a Boy', u'http://www.ngz-online.de/app/feed/rss/about_a_boy'), - - ] diff --git a/recipes/rian_spa.recipe b/recipes/rian_spa.recipe deleted file mode 100644 index 0af285d66f..0000000000 --- a/recipes/rian_spa.recipe +++ /dev/null @@ -1,33 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2009-2010, Darko Miletic ' -''' -sp.rian.ru -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Ria_esp(BasicNewsRecipe): - title = 'Ria Novosti' - __author__ = 'Darko Miletic' - description = 'Noticias desde Russia en Castellano' - language = 'es' - publisher = 'sp.rian.ru' - category = 'news, politics, Russia' - oldest_article = 3 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'utf-8' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - keep_only_tags = [dict( - name='div', attrs={'class': ['mainnewsrubric', 'titleblock', 'mainnewstxt']})] - remove_tags = [dict(name=['object', 'link', 'iframe', 'base'])] - - feeds = [ - (u'Noticias', u'http://rss.feedsportal.com/c/860/fe.ed/sp.rian.ru/export/rss2/index.xml')] diff --git a/recipes/roger_ebert.recipe b/recipes/roger_ebert.recipe deleted file mode 100644 index 689a631eb8..0000000000 --- a/recipes/roger_ebert.recipe +++ /dev/null @@ -1,108 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Ebert(BasicNewsRecipe): - title = 'Roger Ebert' - __author__ = 'Shane Erstad' - description = 'Roger Ebert Movie Reviews' - publisher = 'Chicago Sun Times' - category = 'movies' - oldest_article = 8 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'utf-8' - masthead_url = 'http://rogerebert.suntimes.com/graphics/global/roger.jpg' - language = 'en' - remove_empty_feeds = False - PREFIX = 'http://rogerebert.suntimes.com' - patternReviews = r'(.*?).*?
(.*?)
(.*?)' - patternCommentary = r'
.*?(.*?).*?
(.*?)
' # noqa - patternPeople = r'
.*?(.*?).*?
(.*?)
' # noqa - patternGlossary = r'
.*?(.*?).*?
(.*?)
' # noqa - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language, 'linearize_tables': True - } - - feeds = [ - - (u'Reviews', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=reviews'), - (u'Commentary', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=COMMENTARY'), - (u'Great Movies', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=REVIEWS08'), - (u'People', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=PEOPLE'), - (u'Glossary', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=GLOSSARY') - - ] - - preprocess_regexps = [ - (re.compile(r'.*?This is a printer friendly.*?.*?
', re.DOTALL | re.IGNORECASE), - lambda m: '') - ] - - def print_version(self, url): - return url + '&template=printart' - - def parse_index(self): - totalfeeds = [] - lfeeds = self.get_feeds() - for feedobj in lfeeds: - feedtitle, feedurl = feedobj - self.log('\tFeedurl: ', feedurl) - self.report_progress(0, _('Fetching feed') + ' %s...' % - (feedtitle if feedtitle else feedurl)) - articles = [] - page = self.index_to_soup(feedurl, raw=True) - - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - pattern = self.patternReviews - elif feedtitle == 'Commentary': - pattern = self.patternCommentary - elif feedtitle == 'People': - pattern = self.patternPeople - elif feedtitle == 'Glossary': - pattern = self.patternGlossary - - regex = re.compile(pattern, re.IGNORECASE | re.DOTALL) - - for match in regex.finditer(page): - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - movietitle = match.group(1) - thislink = match.group(2) - description = match.group(3) - elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary': - thislink = match.group(1) - description = match.group(2) - - self.log(thislink) - soup = self.index_to_soup(thislink) - for link in soup.findAll('a', href=True): - thisurl = self.PREFIX + link['href'] - thislinktext = self.tag_to_string(link) - - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - thistitle = movietitle - elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary': - thistitle = thislinktext - - if thistitle == '': - thistitle = 'Ebert Journal Post' - - r""" - pattern2 = r'AID=\/(.*?)\/' - reg2 = re.compile(pattern2, re.IGNORECASE|re.DOTALL) - match2 = reg2.search(thisurl) - date = match2.group(1) - c = time.strptime(match2.group(1),"%Y%m%d") - date=time.strftime("%a, %b %d, %Y", c) - self.log(date) - """ - - articles.append({ - 'title': thistitle, 'date': '', 'url': thisurl, 'description': description - }) - totalfeeds.append((feedtitle, articles)) - - return totalfeeds diff --git a/recipes/roger_ebert_blog.recipe b/recipes/roger_ebert_blog.recipe deleted file mode 100644 index fc7aa2230f..0000000000 --- a/recipes/roger_ebert_blog.recipe +++ /dev/null @@ -1,125 +0,0 @@ -import re -import time - -from calibre import strftime -from calibre.web.feeds.news import BasicNewsRecipe - -''' - Help Needed: - Still can't figure out why I'm getting strange characters. Esp. the Great Movies descriptions in the TOC. - Anyone help me figure that out? - - Change Log: - 2011-02-19: Version 2: Added "Oscars" section and fixed date problem -''' - - -class Ebert(BasicNewsRecipe): - title = 'Roger Ebert' - __author__ = 'Shane Erstad' - version = 2 - description = 'Roger Ebert Movie Reviews' - publisher = 'Chicago Sun Times' - category = 'movies' - oldest_article = 8 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'UTF-8' - masthead_url = 'http://rogerebert.suntimes.com/graphics/global/roger.jpg' - language = 'en' - remove_empty_feeds = False - PREFIX = 'http://rogerebert.suntimes.com' - patternReviews = r'(.*?).*?
(.*?)
(.*?)
' - patternCommentary = r'
.*?(.*?).*?
(.*?)
' # noqa - patternPeople = r'
.*?(.*?).*?
(.*?)
' # noqa - patternOscars = r'
.*?(.*?).*?
(.*?)
' # noqa - patternGlossary = r'
.*?(.*?).*?
(.*?)
' # noqa - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language, 'linearize_tables': True - } - - feeds = [ - - (u'Reviews', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=reviews'), - (u'Commentary', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=COMMENTARY'), - (u'Great Movies', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=REVIEWS08'), - (u'People', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=PEOPLE'), - (u'Oscars', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=OSCARS'), - (u'Glossary', u'http://rogerebert.suntimes.com/apps/pbcs.dll/section?category=GLOSSARY') - - ] - - preprocess_regexps = [ - (re.compile(r'.*?This is a printer friendly.*?.*?
', re.DOTALL | re.IGNORECASE), - lambda m: '') - ] - - def print_version(self, url): - return url + '&template=printart' - - def parse_index(self): - totalfeeds = [] - lfeeds = self.get_feeds() - for feedobj in lfeeds: - feedtitle, feedurl = feedobj - self.log('\tFeedurl: ', feedurl) - self.report_progress(0, _('Fetching feed') + ' %s...' % - (feedtitle if feedtitle else feedurl)) - articles = [] - page = self.index_to_soup(feedurl, raw=True) - - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - pattern = self.patternReviews - elif feedtitle == 'Commentary': - pattern = self.patternCommentary - elif feedtitle == 'People': - pattern = self.patternPeople - elif feedtitle == 'Glossary': - pattern = self.patternGlossary - elif feedtitle == 'Oscars': - pattern = self.patternOscars - - regex = re.compile(pattern, re.IGNORECASE | re.DOTALL) - - for match in regex.finditer(page): - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - movietitle = match.group(1) - thislink = match.group(2) - description = match.group(3) - elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary' or feedtitle == 'Oscars': - thislink = match.group(1) - description = match.group(2) - - self.log(thislink) - soup = self.index_to_soup(thislink) - - for link in soup.findAll('a', href=True): - thisurl = self.PREFIX + link['href'] - thislinktext = self.tag_to_string(link) - - if feedtitle == 'Reviews' or feedtitle == 'Great Movies': - thistitle = movietitle - elif feedtitle == 'Commentary' or feedtitle == 'People' or feedtitle == 'Glossary' or feedtitle == 'Oscars': - thistitle = thislinktext - - if thistitle == '': - continue - - pattern2 = r'AID=\/(.*?)\/' - reg2 = re.compile(pattern2, re.IGNORECASE | re.DOTALL) - match2 = reg2.search(thisurl) - if match2: - c = time.strptime(match2.group(1), "%Y%m%d") - mydate = strftime("%A, %B %d, %Y", c) - else: - mydate = strftime("%A, %B %d, %Y") - self.log(mydate) - - articles.append({ - 'title': thistitle, 'date': ' [' + mydate + ']', 'url': thisurl, 'description': description - }) - totalfeeds.append((feedtitle, articles)) - - return totalfeeds diff --git a/recipes/rollingstone.recipe b/recipes/rollingstone.recipe deleted file mode 100644 index 8a5e1d7593..0000000000 --- a/recipes/rollingstone.recipe +++ /dev/null @@ -1,28 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -rollingstone.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class RollingStone(BasicNewsRecipe): - title = 'Rolling Stone Magazine - free content' - __author__ = 'Darko Miletic' - description = 'Rolling Stone Magazine features music, album and artist news, movie reviews, political, economic and pop culture commentary, videos, photos, and more.' # noqa - publisher = 'Werner Media inc.' - category = 'news, music, USA, world' - oldest_article = 15 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'utf8' - use_embedded_content = False - language = 'en' - remove_empty_feeds = True - publication_type = 'magazine' - auto_cleanup = True - - feeds = [ - (u'All News', u'http://www.rollingstone.com/siteServices/rss/allNews'), - ] diff --git a/recipes/romanialibera.recipe b/recipes/romanialibera.recipe deleted file mode 100644 index 667013bf6f..0000000000 --- a/recipes/romanialibera.recipe +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -romanialibera.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class RomaniaLibera(BasicNewsRecipe): - title = u'Rom\u00e2nia Liber\u0103' - __author__ = u'Silviu Cotoar\u0103' - description = u'Rom\u00e2nia Liber\u0103' - publisher = u'Rom\u00e2nia Liber\u0103' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Stiri' - encoding = 'utf-8' - cover_url = 'http://www.romanialibera.ro/templates/lilac/images/sigla_1.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'id': 'articol'}) - ] - - remove_tags = [ - dict(name='div', attrs={'id': ['art_actions']}), dict(name='div', attrs={'class': ['stats']}), dict(name='div', attrs={'class': ['data']}), dict(name='div', attrs={'class': ['autori']}), dict(name='div', attrs={'class': ['banda_explicatii_text']}), dict(name='td', attrs={'class': ['connect_widget_vertical_center connect_widget_button_cell']}), dict(name='div', attrs={'class': ['aceeasi_tema']}), dict(name='div', attrs={'class': ['art_after_text']}), dict(name='div', attrs={'class': ['navigare']}), dict(name='div', attrs={'id': ['art_text_left']}) # noqa - ] - - remove_tags_after = [ - dict(name='div', attrs={'class': 'art_after_text'}) - ] - - feeds = [ - (u'Feeds', u'http://www.romanialibera.ro/rss.xml') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/roskildelokalavisen_dk.recipe b/recipes/roskildelokalavisen_dk.recipe deleted file mode 100644 index 64e32346d1..0000000000 --- a/recipes/roskildelokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Roskilde Avis -''' - - -class RoskildeLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Roskilde Avis' - description = 'Lokale og regionale nyheder, sport og kultur fra Roskilde og omegn på roskilde.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Roskilde Avis', 'http://roskilde.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/rubikon_de.recipe b/recipes/rubikon_de.recipe deleted file mode 100644 index 3dce614ff9..0000000000 --- a/recipes/rubikon_de.recipe +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1543143461(BasicNewsRecipe): - title = 'Rubikon.de' - description = 'Nachrichten anders/neutral beleuchtet' - __author__ = 'schuster' - __license__ = 'GPL v3' - version = 1 - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - no_stylesheets = True - use_embedded_content = False - language = 'de' - remove_javascript = True - timefmt = ' [%d.%m.%Y]' - masthead_url = 'https://www.rubikon.news/assets/logo-dd0fcd373a0c872bb432f7596d9e700155c5d7fa07ec99a3777d44621e8c61fe.svg' - - remove_tags = [ - dict(id=['download-pdf']), - dict(id=['read-article']), - dict(name='div', attrs={ - 'id': ['print_options', 'print_head']}), - dict(name='div', attrs={'class': ['article-meta']}), - dict(name='div', attrs={'class': ['article-end']}), - dict(name='span', attrs={'class': ['lens']})] - - feeds = [ - ('Alle Artikel', 'https://www.rubikon.news/artikel.atom'), - ] diff --git a/recipes/rudersdallokalavisen_dk.recipe b/recipes/rudersdallokalavisen_dk.recipe deleted file mode 100644 index 0ac78fbd2d..0000000000 --- a/recipes/rudersdallokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Rudersdal Avis -''' - - -class RudersdalLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Rudersdal Avis' - description = 'Lokale, regionale nyheder, sport, kultur fra Rudersdal, Birkerød, Holte, Nærum, Vedbæk, Søllerød på rudersdal.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Rudersdal Avis', 'http://rudersdal.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/rue89.recipe b/recipes/rue89.recipe deleted file mode 100644 index 4ef4166790..0000000000 --- a/recipes/rue89.recipe +++ /dev/null @@ -1,80 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010-2012, Louis Gesbert ' -''' -Rue89 -''' - -__author__ = '2010-2012, Louis Gesbert ' - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Rue89(BasicNewsRecipe): - title = 'Rue89' - __author__ = 'Louis Gesbert' - description = 'Popular free french news website' - title = u'Rue89' - language = 'fr' - oldest_article = 7 - max_articles_per_feed = 50 - - use_embedded_content = False - - # From http://www.rue89.com/les-flux-rss-de-rue89 - feeds = [ - (u'La Une', u'http://www.rue89.com/feed'), - # Other feeds disabled, 'La Une' seems to include them all - # (u'Rue69', u'http://www.rue89.com/rue69/feed'), - # (u'Eco', u'http://www.rue89.com/rue89-eco/feed'), - # (u'Planète', u'http://www.rue89.com/rue89-planete/feed'), - # (u'Sport', u'http://www.rue89.com/rue89-sport/feed'), - # (u'Culture', u'http://www.rue89.com/culture/feed'), - # (u'Hi-tech', u'http://www.rue89.com/hi-tech/feed'), - # (u'Media', u'http://www.rue89.com/medias/feed'), - # (u'Monde', u'http://www.rue89.com/monde/feed'), - # (u'Politique', u'http://www.rue89.com/politique/feed'), - # (u'Societe', u'http://www.rue89.com/societe/feed'), - ] - - # Follow redirection from feedsportal.com - def get_article_url(self, article): - return self.browser.open_novisit(article.link).geturl() - - def print_version(self, url): - return url + '?imprimer=1' - - conversion_options = {'smarten_punctuation': True} - - keep_only_tags = [ - dict(name='div', attrs={'id': 'content'}), - ] - - remove_tags_after = [ - dict(name='div', attrs={'id': 'plus_loin'}), - dict(name='div', attrs={'class': 'stats'}), - ] - - remove_tags = [ - dict(name='div', attrs={'id': 'article_tools'}), - dict(name='div', attrs={'id': 'plus_loin'}), - dict(name='div', attrs={'class': 'stats'}), - dict(name='div', attrs={'class': 'tools'}), - ] - - extra_css = "#content { padding: 0 0; }" - - # Without this, parsing of video articles returns strange results - preprocess_regexps = [ - (re.compile(r'', re.IGNORECASE | re.DOTALL), ''), - ] - - def preprocess_html(self, soup): - # Remove whole article if it's a "zapnet" (video) - if soup.find('h1', {'class': 'zapnet_title'}): - return None - # Reduce h2 titles to h3 - for title in soup.findAll('h2'): - title.name = 'h3' - return soup diff --git a/recipes/rusiahoy.recipe b/recipes/rusiahoy.recipe deleted file mode 100644 index 113afc5308..0000000000 --- a/recipes/rusiahoy.recipe +++ /dev/null @@ -1,43 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -rusiahoy.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class RusiaHoy(BasicNewsRecipe): - title = 'Rusia Hoy' - __author__ = 'Darko Miletic' - description = 'Noticias de Russia en castellano' - publisher = 'rusiahoy.com' - category = 'news, politics, Russia' - oldest_article = 7 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'utf8' - use_embedded_content = False - language = 'es' - remove_empty_feeds = True - extra_css = """ - body{font-family: Arial,sans-serif } - .article_article_title{font-size: xx-large; font-weight: bold} - .article_date{color: black; font-size: small} - """ - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - remove_tags = [ - dict(name=['meta', 'link', 'iframe', 'base', 'object', 'embed'])] - keep_only_tags = [dict(attrs={'class': ['article_rubric_title', 'article_date', 'article_article_title', 'article_article_lead']}), dict(attrs={'class': 'article_article_text'}) ] # noqa - remove_attributes = ['align', 'width', 'height'] - - feeds = [(u'Articulos', u'http://rusiahoy.com/xml/index.xml')] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return soup diff --git a/recipes/rynek_infrastruktury.recipe b/recipes/rynek_infrastruktury.recipe deleted file mode 100644 index 6c981640b6..0000000000 --- a/recipes/rynek_infrastruktury.recipe +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__author__ = 'teepel ' - -''' -http://www.rynekinfrastruktury.pl -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class prawica_recipe(BasicNewsRecipe): - title = u'Rynek Infrastruktury' - __author__ = 'teepel ' - language = 'pl' - description = u'Portal "Rynek Infrastruktury" to źródło informacji o kluczowych elementach polskiej gospodarki: drogach, kolei, lotniskach, portach, telekomunikacji, energetyce, prawie i polityce, wzmocnione eksperckimi komentarzami kluczowych analityków.' # noqa - remove_empty_feeds = True - oldest_article = 1 - max_articles_per_feed = 50 - remove_javascript = True - no_stylesheets = True - - feeds = [ - (u'Drogi', u'http://www.rynekinfrastruktury.pl/rss/drogi.xml'), - (u'Kolej', u'http://www.rynekinfrastruktury.pl/rss/kolej.xml'), - (u'Energetyka', u'http://www.rynekinfrastruktury.pl/rss/energetyka.xml') - # no news in these feeds since 4 years: - # (u'Porty i lotniska', u'http://www.rynekinfrastruktury.pl/rss/porty-i-lotniska.xml'), - # (u'Komentarze', u'http://www.rynekinfrastruktury.pl/rss/komentarze-i-felietony.xml'), - ] - - keep_only_tags = [ - dict(name='h1', attrs={'class': 'wiadTit'}), - dict(name='div', attrs={'class': ['wiadSzczegol', 'multimediaWiadomosci', 'wiadTresc']}) - ] - - remove_tags = [dict(name='span', attrs={'class': 'kom'})] diff --git a/recipes/rynek_zdrowia.recipe b/recipes/rynek_zdrowia.recipe deleted file mode 100644 index fff9041c6e..0000000000 --- a/recipes/rynek_zdrowia.recipe +++ /dev/null @@ -1,35 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class rynekzdrowia(BasicNewsRecipe): - title = u'Rynek Zdrowia' - __author__ = u'spi630' - language = 'pl' - masthead_url = 'http://k.rynekzdrowia.pl/images/headerLogo.png' - cover_url = 'http://k.rynekzdrowia.pl/images/headerLogo.png' - oldest_article = 3 - max_articles_per_feed = 25 - no_stylesheets = True - auto_cleanup = True - remove_empty_feeds = True - - remove_tags_before = dict(name='h3') - - feeds = [ - (u'Finanse i Zarz\u0105dzanie', u'http://www.rynekzdrowia.pl/Kanal/finanse.html'), - (u'Inwestycje', u'http://www.rynekzdrowia.pl/Kanal/inwestycje.html'), - (u'Aparatura i wyposa\u017cenie', u'http://www.rynekzdrowia.pl/Kanal/aparatura.html'), - (u'Informatyka', u'http://www.rynekzdrowia.pl/Kanal/informatyka.html'), - (u'Prawo', u'http://www.rynekzdrowia.pl/Kanal/prawo.html'), - (u'Polityka zdrowotna', u'http://www.rynekzdrowia.pl/Kanal/polityka_zdrowotna.html'), - - (u'Ubezpieczenia Zdrowotne', u'http://www.rynekzdrowia.pl/Kanal/ubezpieczenia.html'), - (u'Farmacja', u'http://www.rynekzdrowia.pl/Kanal/farmacja.html'), - (u'Badania i rozw\xf3j', u'http://www.rynekzdrowia.pl/Kanal/badania.html'), - (u'Nauka', u'http://www.rynekzdrowia.pl/Kanal/nauka.html'), - (u'Po godzinach', u'http://www.rynekzdrowia.pl/Kanal/godziny.html'), - (u'Us\u0142ugi medyczne', u'http://www.rynekzdrowia.pl/Kanal/uslugi.html')] - - def print_version(self, url): - url = url.replace('.html', ',drukuj.html') - return url diff --git a/recipes/sa_gazeta.recipe b/recipes/sa_gazeta.recipe deleted file mode 100644 index aa465b530a..0000000000 --- a/recipes/sa_gazeta.recipe +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import AutomaticNewsRecipe - - -class BasicUserRecipe1501589847(AutomaticNewsRecipe): - title = 'Sa gazeta' - oldest_article = 30 - max_articles_per_feed = 100 - auto_cleanup = True - language = 'sc' - __author__ = 'tzium' - - feeds = [ - ('Sa gazeta', 'http://www.sagazeta.info/feeds/posts/default'), - ] diff --git a/recipes/sabit_fikir.recipe b/recipes/sabit_fikir.recipe deleted file mode 100644 index a42b6ed393..0000000000 --- a/recipes/sabit_fikir.recipe +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class BasicUserRecipe1325259641(BasicNewsRecipe): - language = 'tr' - __author__ = 'asalet_r' - title = u'Sabit Fikir' - oldest_article = 7 - max_articles_per_feed = 20 - auto_cleanup = True - - feeds = [(u'Sabit Fikir', u'http://www.sabitfikir.com/rss.xml')] diff --git a/recipes/sage_news.recipe b/recipes/sage_news.recipe deleted file mode 100644 index b65ca524c0..0000000000 --- a/recipes/sage_news.recipe +++ /dev/null @@ -1,33 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1292550626(BasicNewsRecipe): - title = 'The Sage News - Satire' - __author__ = 'Brian Hahn' - description = 'News without boundaries, Satire' - oldest_article = 200 - max_articles_per_feed = 150 - no_stylesheets = True - use_embedded_content = False - publisher = 'The Sage News Network' - category = 'News, Alberta, Canada' - language = 'en_CA' - encoding = 'iso-8859-1' - cover_url = 'http://www.sagenews.ca/images/satire-cover.jpg' - remove_tags_before = dict(id='ContentPanel') - remove_tags_after = dict(id='ContentPanel') - remove_tags = [dict(name='div', attrs={'id': 'BottomAds'}), dict(name='div', attrs={ - 'id': 'moreStories'}), dict(name='div', attrs={'id': 'StoryNavigation'})] - extra_css = 'img { margin:5px }' - feeds = [ - ('Satire World', 'http://www.sagenews.ca/Satire-World.rss'), - ('Satire Politics', 'http://www.sagenews.ca/Satire-Politics.rss'), - ('Satire Justice', 'http://www.sagenews.ca/Satire-Justice.rss'), - ('Satire Health', 'http://www.sagenews.ca/Satire-Health.rss'), - ('Satire Environment', 'http://www.sagenews.ca/Satire-Environment.rss'), - ('Satire Living', 'http://www.sagenews.ca/Satire-Living.rss'), - ('Satire Sports', 'http://www.sagenews.ca/Satire-Sports.rss'), - ('Satire Business', 'http://www.sagenews.ca/Satire-Business.rss'), - ('Satire Agriculture', 'http://www.sagenews.ca/Satire-Agriculture.rss'), - ('Satire Humour', 'http://www.sagenews.ca/Satire-Humour.rss'), - ] diff --git a/recipes/sage_news_opinion.recipe b/recipes/sage_news_opinion.recipe deleted file mode 100644 index 141837b12a..0000000000 --- a/recipes/sage_news_opinion.recipe +++ /dev/null @@ -1,37 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1292550626(BasicNewsRecipe): - title = 'The Sage News - Opinion' - __author__ = 'Brian Hahn' - description = 'News without boundaries, Opinion' - oldest_article = 200 - max_articles_per_feed = 150 - no_stylesheets = True - use_embedded_content = False - publisher = 'The Sage News Network' - category = 'News, Alberta, Canada' - language = 'en_CA' - encoding = 'iso-8859-1' - cover_url = 'http://www.sagenews.ca/images/opinion-cover.jpg' - remove_tags_before = dict(id='ContentPanel') - remove_tags_after = dict(id='ContentPanel') - remove_tags = [dict(name='div', attrs={'id': 'BottomAds'}), dict(name='div', attrs={ - 'id': 'moreStories'}), dict(name='div', attrs={'id': 'StoryNavigation'})] - extra_css = 'img { margin:5px }' - feeds = [ - ('Editorial Comment', 'http://www.sagenews.ca/Editorial%20Comment.rss'), - ('Grumpy Old Man', 'http://www.sagenews.ca/Grumpy%20Old%20Man.rss'), - ('Bad Girl', 'http://www.sagenews.ca/Bad%20Girl.rss'), - ('Around the Edges with Dixie', - 'http://www.sagenews.ca/Around%20the%20Edges%20with%20Dixie.rss'), - ('Man Vs. World', 'http://www.sagenews.ca/Man%20Vs.%20World.rss'), - ('Opinion World', 'http://www.sagenews.ca/Opinion-World.rss'), - ('Opinion Politics', 'http://www.sagenews.ca/Opinion-Politics.rss'), - ('Opinion Justice', 'http://www.sagenews.ca/Opinion-Justice.rss'), - ('Opinion Health', 'http://www.sagenews.ca/Opinion-Health.rss'), - ('Opinion Environment', 'http://www.sagenews.ca/Opinion-Environment.rss'), - ('Opinion Living', 'http://www.sagenews.ca/Opinion-Living.rss'), - ('Opinion Sports', 'http://www.sagenews.ca/Opinion-Sports.rss'), - ('Opinion Business', 'http://www.sagenews.ca/Opinion-Business.rss'), - ] diff --git a/recipes/salonica_press_news.recipe b/recipes/salonica_press_news.recipe deleted file mode 100644 index 30864d9249..0000000000 --- a/recipes/salonica_press_news.recipe +++ /dev/null @@ -1,35 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class spn(BasicNewsRecipe): - title = u'Salonica Press News' - language = 'gr' - __author__ = "SteliosGero" - oldest_article = 3 - max_articles_per_feed = 100 - auto_cleanup = True - category = 'news, GR' - language = 'el' - - feeds = [ - (u'\u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ae', u'http://www.spnews.gr/politiki?format=feed&type=rss'), - (u'\u039f\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03af\u03b1', u'http://www.spnews.gr/oikonomia?format=feed&type=rss'), - (u'\u0391\u03c5\u03c4\u03bf\u03b4\u03b9\u03bf\u03af\u03ba\u03b7\u03c3\u03b7', u'http://www.spnews.gr/aftodioikisi?format=feed&type=rss'), - (u'\u039a\u03bf\u03b9\u03bd\u03c9\u03bd\u03af\u03b1', u'http://www.spnews.gr/koinonia?format=feed&type=rss'), - (u'\u0391\u03b8\u03bb\u03b7\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2', u'http://www.spnews.gr/sports?format=feed&type=rss'), - (u'\u0394\u03b9\u03b5\u03b8\u03bd\u03ae', u'http://www.spnews.gr/diethni?format=feed&type=rss'), - (u'\u03a0\u03bf\u03bb\u03b9\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2', u'http://www.spnews.gr/politismos?format=feed&type=rss'), - (u'Media', u'http://www.spnews.gr/media-news?format=feed&type=rss'), - (u'\u0396\u03c9\u03ae', u'http://www.spnews.gr/zoi?format=feed&type=rss'), - - (u'\u03a4\u03b5\u03c7\u03bd\u03bf\u03bb\u03bf\u03b3\u03af\u03b1', u'http://spnews.gr/texnologia?format=feed&type=rss'), - (u'\u03a0\u03b5\u03c1\u03b9\u03b2\u03ac\u03bb\u03bb\u03bf\u03bd', u'http://spnews.gr/periballon?format=feed&type=rss'), - (u'\u03a0\u03b1\u03c1\u03b1\u03c0\u03bf\u03bb\u03b9\u03c4\u03b9\u03ba\u03ac', u'http://spnews.gr/parapolitika?format=feed&type=rss'), - (u'\u03a0\u03b1\u03c1\u03b1\u03b4\u03b7\u03bc\u03bf\u03c4\u03b9\u03ba\u03ac', u'http://spnews.gr/paradimotika?format=feed&type=rss'), - (u'\u03a0\u03b1\u03c1\u03b1\u03b1\u03b8\u03bb\u03b7\u03c4\u03b9\u03ba\u03ac', u'http://spnews.gr/parathlitika?format=feed&type=rss'), - (u'\u0391\u03c0\u03cc\u03c8\u03b5\u03b9\u03c2', u'http://spnews.gr/apopseis?format=feed&type=rss'), - (u'\u03a3\u03c5\u03bd\u03b5\u03cd\u03be\u03b5\u03b9\u03c2', u'http://spnews.gr/synenteykseis?format=feed&type=rss'), - (u'Alert!', u'http://spnews.gr/alert?format=feed&type=rss')] - - def print_version(self, url): - return url + '?tmpl=component&print=1&layout=default&page=' diff --git a/recipes/samanyolu_haber.recipe b/recipes/samanyolu_haber.recipe deleted file mode 100644 index 14143caac8..0000000000 --- a/recipes/samanyolu_haber.recipe +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SHaber (BasicNewsRecipe): - - title = u'Samanyolu Haber' - __author__ = u'thomass' - description = ' Samanyolu Haber Sitesinden günlük haberler ' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - auto_cleanup = True - encoding = 'utf-8' - publisher = 'thomass' - category = 'güncel, haber, türkçe' - language = 'tr' - publication_type = 'newspaper' - - conversion_options = { - 'tags': category, 'language': language, 'publisher': publisher, 'linearize_tables': True - } - extra_css = ' .Haber-Baslik-Yazisi {font-weight: bold; font-size: 9px} .Haber-Ozet-Yazisi{ font-family:sans-serif;font-weight: normal;font-size: 11px } #Haber{ font-family:sans-serif;font-weight: normal;font-size: 9px }.KirmiziText{ font-weight: normal;font-size: 5px }' # noqa - - cover_img_url = 'http://www.samanyoluhaber.com/include/logo.png' - masthead_url = 'http://www.samanyoluhaber.com/include/logo.png' - remove_empty_feeds = True - - feeds = [ - (u'Son Dakika', u'http://podcast.samanyoluhaber.com/sondakika.rss'), - (u'Gündem', u'http://podcast.samanyoluhaber.com/gundem.rss'), - (u'Politika ', u'http://podcast.samanyoluhaber.com/politika.rss'), - (u'Ekonomi', u'http://podcast.samanyoluhaber.com/ekonomi.rss'), - (u'Dünya', u'http://podcast.samanyoluhaber.com/dunya.rss'), - (u'Spor ', u'http://podcast.samanyoluhaber.com/spor.rss'), - (u'Sağlık', u'http://podcast.samanyoluhaber.com/saglik.rss'), - (u'Kültür', u'http://podcast.samanyoluhaber.com/kultur.rss'), - (u'Eğitim', u'http://podcast.samanyoluhaber.com/egitim.rss'), - (u'Ramazan', u'http://podcast.samanyoluhaber.com/ramazan.rss'), - (u'Yazarlar ', u'http://podcast.samanyoluhaber.com/yazarlar.rss'), - - - - ] - - 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 - diff --git a/recipes/samanyolu_teknoloji.recipe b/recipes/samanyolu_teknoloji.recipe deleted file mode 100644 index d05dfaf9a6..0000000000 --- a/recipes/samanyolu_teknoloji.recipe +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SHaberTekno (BasicNewsRecipe): - - title = u'Samanyolu Teknoloji' - __author__ = u'thomass' - description = 'Samanyolu Teknoloji Haber Sitesinden haberler ' - oldest_article = 8 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - publisher = 'thomass' - category = 'bilim, teknoloji, haber, türkçe' - language = 'tr' - publication_type = 'magazine' - - conversion_options = { - 'tags': category, 'language': language, 'publisher': publisher, 'linearize_tables': True - } - extra_css = ' .IcerikMetin{ font-family:sans-serif;font-weight: normal;font-size: 10px } .h1IcerikBaslik {font-weight: bold; font-size: 18px}' - - keep_only_tags = [ - dict(name='div', attrs={'class': ['IcerikBaslik', 'IcerikMetinDiv']})] - - cover_img_url = 'http://teknoloji.samanyoluhaber.com/resources/images/logo_s_digi.jpg' - masthead_url = 'http://teknoloji.samanyoluhaber.com/resources/images/logo_s_digi.jpg' - remove_empty_feeds = True - - feeds = [ - (u'GENEL', u'http://podcast.samanyoluhaber.com/Teknoloji.rss'), - (u'İNTERNET', u'http://open.dapper.net/services/shaberteknolojiinternet'), - (u'CEP TELEFONU', - u'http://open.dapper.net/services/shaberteknolojicep'), - (u'OYUN', u'http://open.dapper.net/services/shaberteknolojioyun'), - (u'DONANIM', u'http://open.dapper.net/services/httpopendappernetservicesshaberteknolojidonanim'), - (u'ÜRÜN İNCELEME', - u'http://open.dapper.net/services/shaberteknolojiurun'), - (u'ALIŞVERİŞ', u'http://open.dapper.net/services/shaberteknolojialisveris'), - (u'BİLİM & TEKNOLOJİ', - u'http://open.dapper.net/services/shaberteknolojibilim'), - (u'HABERLER', u'http://open.dapper.net/services/shaberteknolojihaber'), - - - - ] - diff --git a/recipes/sarajevo_x.recipe b/recipes/sarajevo_x.recipe deleted file mode 100644 index c5a97b369c..0000000000 --- a/recipes/sarajevo_x.recipe +++ /dev/null @@ -1,73 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' - -''' -sarajevo-x.com -''' - -import re - -from calibre.ebooks.BeautifulSoup import NavigableString, Tag -from calibre.web.feeds.recipes import BasicNewsRecipe - - -def new_tag(soup, name, attrs=()): - impl = getattr(soup, 'new_tag', None) - if impl is not None: - return impl(name, attrs=dict(attrs)) - return Tag(soup, name, attrs=attrs or None) - - -class SarajevoX(BasicNewsRecipe): - title = 'Sarajevo-x.com' - __author__ = 'Darko Miletic' - description = 'Sarajevo-x.com - najposjeceniji bosanskohercegovacki internet portal' - publisher = 'InterSoft d.o.o.' - category = 'news, politics, Bosnia and Herzegovina,Sarajevo-x.com, internet, portal, vijesti, bosna i hercegovina, sarajevo' - oldest_article = 2 - delay = 1 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'cp1250' - use_embedded_content = False - language = 'bs' - extra_css = ' @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} body{font-family: Arial,Verdana,Helvetica,sans1,sans-serif} .article_description{font-family: sans1, sans-serif} div#fotka{display: block} img{margin-bottom: 0.5em} ' # noqa - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] - - keep_only_tags = [dict(name='div', attrs={'class': 'content-bg'})] - remove_tags_after = dict(name='div', attrs={'class': 'izvor'}) - remove_tags = [dict(name=['object', 'link', 'base', 'table'])] - remove_attributes = ['height', 'width', 'alt', 'border'] - - feeds = [ - - (u'BIH', u'http://www.sarajevo-x.com/rss/bih'), - (u'Svijet', u'http://www.sarajevo-x.com/rss/svijet'), - (u'Biznis', u'http://www.sarajevo-x.com/rss/biznis'), - (u'Sport', u'http://www.sarajevo-x.com/rss/sport'), - (u'Showtime', u'http://www.sarajevo-x.com/rss/showtime'), - (u'Scitech', u'http://www.sarajevo-x.com/rss/scitech'), - (u'Lifestyle', u'http://www.sarajevo-x.com/rss/lifestyle'), - (u'Kultura', u'http://www.sarajevo-x.com/rss/kultura'), - (u'Zanimljivosti', u'http://www.sarajevo-x.com/rss/zanimljivosti') - ] - - def preprocess_html(self, soup): - dtag = soup.find('div', attrs={'id': 'fotka'}) - if dtag: - sp = soup.find('div', attrs={'id': 'opisslike'}) - img = soup.find('img') - if sp: - sp - else: - mtag = new_tag(soup, 'div', [ - ("id", "opisslike"), ("class", "opscitech")]) - mopis = NavigableString("Opis") - mtag.insert(0, mopis) - img.append(mtag) - return soup diff --git a/recipes/sardinia_post.recipe b/recipes/sardinia_post.recipe deleted file mode 100644 index 3a4b902f6c..0000000000 --- a/recipes/sardinia_post.recipe +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import AutomaticNewsRecipe - - -class BasicUserRecipe1501589429(AutomaticNewsRecipe): - title = 'Sardinia Post (Lapis)' - oldest_article = 30 - max_articles_per_feed = 100 - auto_cleanup = True - language = 'sc' - __author__ = 'tzium' - - feeds = [ - ('Sardinia Post (Lapis)', - 'https://www.sardiniapost.it/category/lapis/feed'), - ] diff --git a/recipes/satira.recipe b/recipes/satira.recipe deleted file mode 100644 index 6d130853e7..0000000000 --- a/recipes/satira.recipe +++ /dev/null @@ -1,18 +0,0 @@ -__license__ = 'GPL v3' -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1327351409(BasicNewsRecipe): - title = u'Satira' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - feeds = [ - (u'spinoza', u'http://feeds.feedburner.com/Spinoza'), - (u'umore maligno', u'http://www.umoremaligno.it/feed/rss/'), - (u'fed-ex', u'http://exfed.tumblr.com/rss'), - (u'metilparaben', u'http://feeds.feedburner.com/metil'), - (u'freddy nietzsche', u'http://feeds.feedburner.com/FreddyNietzsche')] - __author__ = 'faber1971' - description = 'Collection of Italian satiric blogs - v1.00 (28, January 2012)' - language = 'it' diff --git a/recipes/sb_nation.recipe b/recipes/sb_nation.recipe deleted file mode 100644 index 00b33ecefa..0000000000 --- a/recipes/sb_nation.recipe +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = 'Zotzo' -''' -http://www.stumptownfooty.com/ -http://www.eightysixforever.com -http://www.sounderatheart.com -http://www.dailysoccerfix.com/ - -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class SBNation(BasicNewsRecipe): - title = u'SBNation' - __author__ = 'rylsfan' - description = u"More than 290 individual communities, each offering high quality year-round coverage and conversation led by fans who are passionate." - oldest_article = 3 - language = 'en' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - - keep_only_tags = [ - dict(name='h2', attrs={'class': 'title'}), dict( - name='div', attrs={'class': 'entry-body'}) - ] - - remove_tags_after = dict( - name='div', attrs={'class': 'footline entry-actions'}) - remove_tags = [ - dict(name='div', attrs={'class': 'footline entry-actions'}), - {'class': 'extend-divide'} - ] - # SBNation has 300 special blogs to choose from. These are just a couple! - feeds = [ - (u'Daily Fix', u'http://www.dailysoccerfix.com/rss/'), - (u"Stumptown Footy", u'http://www.stumptownfooty.com/rss/'), - (u'Sounders', u'http://www.sounderatheart.com/rss/'), - (u'Whitecaps', u'http://www.eightysixforever.com/rss/'), - ] - - extra_css = """ - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - p{font-family:Helvetica,sans-serif; display: block; text-align: left; text-decoration: none; text-indent: 0%;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - """ - - def preprocess_html(self, soup): - return self.adeify_images(soup) - - def populate_article_metadata(self, article, soup, first): - h2 = soup.find('h2') - h2.replaceWith(h2.prettify() + '

By ' + - article.author + '

') diff --git a/recipes/schattenblick.recipe b/recipes/schattenblick.recipe deleted file mode 100644 index dd0b5dedb1..0000000000 --- a/recipes/schattenblick.recipe +++ /dev/null @@ -1,14 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1345802300(BasicNewsRecipe): - title = u'Online-Zeitung Schattenblick' - language = 'de' - __author__ = 'ThB' - publisher = u'MA-Verlag' - category = u'Nachrichten' - oldest_article = 7 - max_articles_per_feed = 100 - cover_url = 'http://www.schattenblick.de/mobi/rss/cover.jpg' - feeds = [(u'Schattenblick Tagesausgabe', - u'http://www.schattenblick.de/mobi/rss/rss.xml')] diff --git a/recipes/schwarzerpfeil.recipe b/recipes/schwarzerpfeil.recipe deleted file mode 100644 index aec7c85bd2..0000000000 --- a/recipes/schwarzerpfeil.recipe +++ /dev/null @@ -1,30 +0,0 @@ -# -*- mode: python; -*- -__license__ = 'GPL v3' - -''' -SchwarzerPfeil Calibre recipe. -''' - -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class Schwarzerpfeil(BasicNewsRecipe): - title = 'SchwarzerPfeil' - __author__ = 'tastytea' - description = 'Das partizipative Mag von und für die antiautoritäre Bewegung' - publication_type = 'magazine' - language = 'de' - timefmt = ' [%d. %B %Y]' - max_articles_per_feed = 100 - oldest_article = 30 - use_embedded_content = True - no_stylesheets = True - auto_cleanup = False - - feeds = [ - ('Artikel', 'https://schwarzerpfeil.de/feed/'), - ('Kommentare', 'https://schwarzerpfeil.de/comments/feed/') - ] - - def get_cover_url(self): - return "https://schwarzerpfeil.de/wp-content/uploads/2020/09/12-1.png" diff --git a/recipes/sciencedaily.recipe b/recipes/sciencedaily.recipe deleted file mode 100644 index ee2dae291e..0000000000 --- a/recipes/sciencedaily.recipe +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -__license__ = 'GPL v3' -__copyright__ = '2008-2017, Darko Miletic ' -''' -sciencedaily.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class ScienceDaily(BasicNewsRecipe): - title = u'ScienceDaily' - __author__ = u'Darko Miletic' - title = 'ScienceDaily' - description = ('ScienceDaily is one of the Internet\'s most popular ' - 'science news web sites. Since starting in 1995, the ' - 'award-winning site has earned the loyalty of students, ' - 'researchers, healthcare professionals, government ' - 'agencies, educators and the general public around the ' - 'world. Now with more than 6 million monthly visitors ' - 'worldwide, ScienceDaily generates nearly 20 million ' - 'page views a month and is steadily growing in its ' - 'global audience.') - category = 'medicin, healthcare' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'en' - encoding = 'utf-8' - - # Feed are found here: https://www.sciencedaily.com/newsfeeds.htm - feeds = [ - ('Latest Science News', 'https://www.sciencedaily.com/rss/top.xml'), - ('All Top News', 'https://www.sciencedaily.com/rss/top/science.xml'), - ('Health News', 'https://www.sciencedaily.com/rss/top/health.xml'), - ('Technology News', 'https://www.sciencedaily.com/rss/top/technology.xml'), - ('Environment News', 'https://www.sciencedaily.com/rss/top/environment.xml'), - ('Society News', 'https://www.sciencedaily.com/rss/top/society.xml'), - ('Strange & Offbeat News', 'https://www.sciencedaily.com/rss/strange_offbeat.xml'), - ] diff --git a/recipes/seanhannity.recipe b/recipes/seanhannity.recipe deleted file mode 100644 index 01a5f45dcb..0000000000 --- a/recipes/seanhannity.recipe +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python - -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class SeanHannity(BasicNewsRecipe): - cover_url = 'http://www.hannity.com/images/misc_logo.gif' - title = u"Sean Hannity Show" - __author__ = 'Rob Lammert - rob.lammert[at]gmail.com' - description = u"Articles from Sean Hannity's website, www.hannity.com" - oldest_article = 7.0 - language = 'en' - max_articles_per_feed = 100 - recursions = 0 - encoding = 'utf8' - no_stylesheets = True - remove_javascript = True - - remove_tags = [ - dict(name='div', attrs={'id': [ - 'header', 'navsprite', 'topminibarad', 'headline_bar', 'shadow', 'footer']}), - dict(name='div', attrs={'class': 'rightcolumn'}), - dict(name='table', attrs={'id': 'audiobox'}), - dict(name='a', attrs={'title': ['Home', 'Shows', 'Guests', 'Photos']}), - dict(name='iframe') - ] - - feeds = [ - ('Content Feed', u'http://feeds.feedburner.com/TheSeanHannityShow-AllContent?format=xml') - ] - diff --git a/recipes/security_watch.recipe b/recipes/security_watch.recipe deleted file mode 100644 index 13c17f10b1..0000000000 --- a/recipes/security_watch.recipe +++ /dev/null @@ -1,19 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class SecurityWatch(BasicNewsRecipe): - title = u'securitywatch' - description = 'security news' - timefmt = ' [%d %b %Y]' - __author__ = 'Oliver Niesner' - no_stylesheets = True - oldest_article = 14 - max_articles_per_feed = 100 - use_embedded_content = False - language = 'en' - auto_cleanup = True - - feeds = [ - (u'securitywatch', - u'http://feeds.pcmag.com/Rss.aspx/SectionArticles?sectionId=28026') - ] diff --git a/recipes/serverside.recipe b/recipes/serverside.recipe deleted file mode 100644 index 1caa05e33d..0000000000 --- a/recipes/serverside.recipe +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Rick Kellogg' -''' -TheServerSide.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Engadget(BasicNewsRecipe): - title = u'TheServerSide.com' - __author__ = 'Rick Kellogg' - description = 'news' - language = 'en' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - - remove_tags = [dict(name='table', attrs={'class': ["head"]})] - - feeds = [(u'News', u'http://feeds.feedburner.com/techtarget/tsscom/home')] - - def get_article_url(self, article): - - url = article.get('guid', None) - - return url - - def print_version(self, url): - return url.replace('http://www.theserverside.com/news/thread.tss?thread_id=', 'http://www.theserverside.com/common/printthread.tss?thread_id=') diff --git a/recipes/sg_hu.recipe b/recipes/sg_hu.recipe deleted file mode 100644 index 68b027abb5..0000000000 --- a/recipes/sg_hu.recipe +++ /dev/null @@ -1,17 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class SGhu(BasicNewsRecipe): - title = u'SG.hu' - __author__ = 'davotibarna' - description = u'Informatika \xe9s Tudom\xe1ny' - language = 'hu' - oldest_article = 5 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - - feeds = [(u'SG.hu', u'http://www.sg.hu/plain/rss.xml')] - - def print_version(self, url): - return url.replace('cikkek/', 'printer.php?cid=') diff --git a/recipes/shacknews.recipe b/recipes/shacknews.recipe deleted file mode 100644 index acf6043496..0000000000 --- a/recipes/shacknews.recipe +++ /dev/null @@ -1,17 +0,0 @@ - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Shacknews(BasicNewsRecipe): - __author__ = 'Docbrown00' - __license__ = 'GPL v3' - title = u'Shacknews' - oldest_article = 7 - max_articles_per_feed = 100 - language = 'en' - no_stylesheets = True - auto_cleanup = True - - feeds = [ - (u'Latest News', u'http://www.shacknews.com/shackfeed.xml'), - ] diff --git a/recipes/shortlist.recipe b/recipes/shortlist.recipe deleted file mode 100644 index b8f7b9f772..0000000000 --- a/recipes/shortlist.recipe +++ /dev/null @@ -1,66 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1324663493(BasicNewsRecipe): - title = u'Shortlist' - description = 'Articles From Shortlist.com' - # I've set oldest article to 7 days as the website updates weekly - oldest_article = 8 - max_articles_per_feed = 20 - remove_empty_feeds = True - remove_javascript = True - no_stylesheets = True - ignore_duplicate_articles = {'title'} - - __author__ = 'Dave Asbury' - # last updated 7/10/12 - language = 'en_GB' - - def get_cover_url(self): - soup = self.index_to_soup('http://www.shortlist.com') - cov = soup.find(attrs={'width': '121'}) - # print '******** ',cov,' ***' - # cover_url = 'http://www.shortlist.com'+cov['src'] - cover_url = cov['src'] - return cover_url - - masthead_url = 'http://www.mediauk.com/logos/100/344096.png' - - preprocess_regexps = [ - (re.compile(r'…or.*?email to your friends.', re.IGNORECASE | re.DOTALL), lambda match: '')] - - keep_only_tags = [ - # dict(name='h1'), - dict(name='h2', attrs={'class': 'title'}), - dict(name='h3', atts={'class': 'subheading'}), - dict(attrs={'class': ['hero-static', 'stand-first']}), - dict(attrs={'class': 'hero-image'}), - dict(name='div', attrs={ - 'id': ['list', 'article', 'article alternate']}), - dict(name='div', attrs={'class': 'stand-first'}), - ] - remove_tags = [dict(name='h2', attrs={'class': 'graphic-header'}), - dict(attrs={ - 'id': ['share', 'twitter', 'facebook', 'digg', 'delicious', 'facebook-like']}), - dict(atts={'class': [ - 'related-content', 'related-content-item', 'related-content horizontal', 'more']}), - - ] - - remove_tags_after = [dict(name='p', attrs={'id': 'tags'}) - ] - - feeds = [ - # edit http://feed43.com/feed.html?name=3156308700147005 - # repeatable pattern =

{_}{%}{*}

- - (u'This Weeks Issue', u'http://feed43.com/5205766657404804.xml'), - (u'Home Page', u'http://feed43.com/3156308700147005.xml'), - (u'Cool Stuff', u'http://feed43.com/1557051772026706.xml'), - (u'Style', u'http://feed43.com/4168836374571502.xml'), - (u'Entertainment', u'http://feed43.com/4578504030588024.xml'), - - - ] diff --git a/recipes/sigma_live.recipe b/recipes/sigma_live.recipe deleted file mode 100644 index d34c43c551..0000000000 --- a/recipes/sigma_live.recipe +++ /dev/null @@ -1,14 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class sigmalive(BasicNewsRecipe): - title = u'SigmaLive' - __author__ = 'Stelios' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - category = 'news, CY' - description = 'Cypriot News' - language = 'el' - encoding = 'utf8' - feeds = [(u'sigmalive', u'http://sigmalive.com/rss/latest')] diff --git a/recipes/sign_on_sd.recipe b/recipes/sign_on_sd.recipe deleted file mode 100644 index aefe92b71b..0000000000 --- a/recipes/sign_on_sd.recipe +++ /dev/null @@ -1,54 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1315899507(BasicNewsRecipe): - title = u'Sign On San Diego' - __author__ = 'Jay Kindle' - description = 'Local news stories from The San Diego Union-Tribune; breaking news, business and technology, local and national sports coverage, entertainment news and reviews.' # noqa - publisher = 'Tribune Company' - category = 'news, politics, USA, San Diego, California, world' - oldest_article = 2 - max_articles_per_feed = 200 - timefmt = ' [%b %d, %Y]' - no_stylesheets = True - encoding = 'utf8' - use_embedded_content = False - language = 'en' - auto_cleanup = True - remove_empty_feeds = True - publication_type = 'newspaper' - - feeds = [ - (u'Latest News', - u'http://www.sandiegouniontribune.com/latest/rss2.0.xml'), - (u'Business', - u'http://www.sandiegouniontribune.com/business/rss2.0.xml'), - (u'Politics', - u'http://www.sandiegouniontribune.com/news/politics/rss2.0.xml'), - (u'Immigration', - u'http://www.sandiegouniontribune.com/news/immigration/rss2.0.xml'), - (u'Courts', - u'http://www.sandiegouniontribune.com/news/public-safety/rss2.0.xml'), - (u'Education', - u'http://www.sandiegouniontribune.com/news/education/rss2.0.xml'), - (u'Sports', - u'http://www.sandiegouniontribune.com/sports/rss2.0.xml'), - (u'Chargers', - u'http://www.sandiegouniontribune.com/sports/chargers/rss2.0.xml'), - (u'Padres', - u'http://www.sandiegouniontribune.com/sports/padres/rss2.0.xml'), - (u'NFL', - u'http://www.sandiegouniontribune.com/sports/nfl/rss2.0.xml'), - (u'NBA', - u'http://www.sandiegouniontribune.com/sports/nba/rss2.0.xml'), - (u'Photos', - u'http://www.sandiegouniontribune.com/visuals/rss2.0.xml'), - (u'Entertainment', - u'http://www.sandiegouniontribune.com/entertainment/rss2.0.xml'), - (u'Books', - u'http://www.sandiegouniontribune.com/entertainment/books/rss2.0.xml'), - (u'Opinion', - u'http://www.sandiegouniontribune.com/opinion/rss2.0.xml'), - (u'Travel', - u'http://www.sandiegouniontribune.com/lifestyle/travel/rss2.0.xml'), - ] diff --git a/recipes/silicon_republic.recipe b/recipes/silicon_republic.recipe deleted file mode 100644 index 8623a18c35..0000000000 --- a/recipes/silicon_republic.recipe +++ /dev/null @@ -1,19 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2011 Neil Grogan' -# -# Silicon Republic Recipe -# - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SiliconRepublic(BasicNewsRecipe): - title = u'Silicon Republic' - oldest_article = 7 - max_articles_per_feed = 100 - __author__ = u'Neil Grogan' - language = 'en_IE' - - remove_tags = [dict(attrs={'class': ['thumb', 'txt', 'compactbox', 'icons', 'catlist', 'catlistinner', 'taglist', 'taglistinner', 'social', 'also-in', 'also-in-inner', 'also-in-footer', 'zonek-dfp', 'paneladvert', 'rcadvert', 'panel', 'h2b']}), dict(id=['header', 'logo', 'header-right', 'sitesearch', 'rsslinks', 'topnav', 'topvideos', 'topvideos-list', 'topnews', 'topnews-list', 'slideshow', 'slides', 'compactheader', 'compactnews', 'compactfeatures', 'article-type', 'contactlinks-header', 'banner-zone-k-dfp', 'footer-related', 'directory-services', 'also-in-section', 'featuredrelated1', 'featuredrelated2', 'featuredrelated3', 'featuredrelated4', 'advert2-dfp']), dict(name=['script', 'style'])] # noqa - - feeds = [(u'News', u'http://www.siliconrepublic.com/feeds/')] diff --git a/recipes/singtao_daily.recipe b/recipes/singtao_daily.recipe deleted file mode 100644 index 3551a2799e..0000000000 --- a/recipes/singtao_daily.recipe +++ /dev/null @@ -1,79 +0,0 @@ -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class AdvancedUserRecipe1278063072(BasicNewsRecipe): - title = u'Singtao Daily - Canada' - oldest_article = 7 - max_articles_per_feed = 100 - __author__ = 'rty' - description = 'Toronto Canada Chinese Newspaper' - publisher = 'news.singtao.ca' - category = 'Chinese, News, Canada' - remove_javascript = True - use_embedded_content = False - no_stylesheets = True - language = 'zh' - conversion_options = {'linearize_tables': True} - masthead_url = 'http://news.singtao.ca/i/site_2009/logo.jpg' - extra_css = ''' - @font-face {font-family: "DroidFont", serif, sans-serif; src: url(res:///system/fonts/DroidSansFallback.ttf); }\ - - body {text-align: justify; margin-right: 8pt; font-family: 'DroidFont', serif;}\ - - h1 {font-family: 'DroidFont', serif;}\ - - .articledescription {font-family: 'DroidFont', serif;} - ''' - keep_only_tags = [ - dict(name='div', attrs={'id': ['title', 'storybody']}), - dict(name='div', attrs={'class': 'content'}) - ] - - def parse_index(self): - feeds = [] - for title, url in [ - ('Editorial', - 'http://news.singtao.ca/toronto/editorial.html'), - ('Toronto \xe5\x9f\x8e\xe5\xb8\x82/\xe7\xa4\xbe\xe5\x8d\x80'.decode('utf-8'), - 'http://news.singtao.ca/toronto/city.html'), - ('Canada \xe5\x8a\xa0\xe5\x9c\x8b'.decode('utf-8'), - 'http://news.singtao.ca/toronto/canada.html'), - ('Entertainment', - 'http://news.singtao.ca/toronto/entertainment.html'), - ('World', - 'http://news.singtao.ca/toronto/world.html'), - ('Finance \xe5\x9c\x8b\xe9\x9a\x9b\xe8\xb2\xa1\xe7\xb6\x93'.decode('utf-8'), - 'http://news.singtao.ca/toronto/finance.html'), - ('Sports', 'http://news.singtao.ca/toronto/sports.html'), - ]: - articles = self.parse_section(url) - if articles: - feeds.append((title, articles)) - return feeds - - def parse_section(self, url): - soup = self.index_to_soup(url) - div = soup.find( - attrs={'class': ['newslist paddingL10T10', 'newslist3 paddingL10T10']}) - current_articles = [] - for li in div.findAll('li'): - a = li.find('a', href=True) - if a is None: - continue - title = self.tag_to_string(a) - url = a.get('href', False) - if not url or not title: - continue - if url.startswith('/'): - url = 'http://news.singtao.ca' + url - current_articles.append( - {'title': title, 'url': url, 'description': ''}) - - return current_articles - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - for item in soup.findAll(width=True): - del item['width'] - return soup diff --git a/recipes/siol.recipe b/recipes/siol.recipe deleted file mode 100644 index c7d964cd9a..0000000000 --- a/recipes/siol.recipe +++ /dev/null @@ -1,58 +0,0 @@ -# coding: utf-8 -__license__ = 'GPL v3' -__copyright__ = '2010, BlonG' -''' -www.siol.si -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class Siol(BasicNewsRecipe): - title = u'Siol.net' - __author__ = u'BlonG' - description = "Multimedijski portal z aktualnimi vsebinami, intervjuji, komentarji iz Slovenije in sveta, sportal, trendi, avtomoto, blogos" - oldest_article = 3 - language = 'sl' - max_articles_per_feed = 20 - no_stylesheets = True - use_embedded_content = False - - cover_url = 'https://sites.google.com/site/javno2010/home/siol_cover.jpg' - - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' - - html2lrf_options = ['--base-font-size', '10'] - - keep_only_tags = [ - dict(name='div', attrs={'id': 'idContent'}), - ] - - remove_tags = [ - dict(name='span', attrs={'class': 'com1'}), - dict(name='div', attrs={'class': 'relation'}), - dict(name='p', attrs={'class': 'path'}), - dict(name='div', attrs={'class': 'clear_r'}), - dict(name='div', attrs={'id': 'appendix'}), - dict(name='div', attrs={'id': 'rail'}), - dict(name='div', attrs={'id': 'div_comments'}), - dict(name='div', attrs={'class': 'thumbs'}), - ] - - feeds = [ - - (u'Slovenija', u'http://www.siol.net/rss.aspx?path=Slovenija'), - (u'Lokalne novice', u'http://www.siol.net/rss.aspx?path=Slovenija/Lokalne_novice'), - (u'EU', u'http://www.siol.net/rss.aspx?path=EU'), - (u'Svet', u'http://www.siol.net/rss.aspx?path=Svet'), - (u'Gospodarstvo', u'http://www.siol.net/rss.aspx?path=Gospodarstvo'), - (u'Sportal', u'http://www.siol.net/rss.aspx?path=Sportal'), - (u'Trendi', u'http://www.siol.net/rss.aspx?path=Trendi'), - (u'Avtomoto', u'http://www.siol.net/rss.aspx?path=Avtomoto'), - (u'Tehnologija', u'http://www.siol.net/rss.aspx?path=Tehnologija'), - (u'TV / Film', u'http://www.siol.net/rss.aspx?path=TV') - ] diff --git a/recipes/sisainlive.recipe b/recipes/sisainlive.recipe deleted file mode 100644 index 63546cde63..0000000000 --- a/recipes/sisainlive.recipe +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -__license__ = 'GPL v3' -__copyright__ = '2015, Hoje Lee ' -''' -Profile to download SisaIN Live -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class SisaINLive(BasicNewsRecipe): - language = 'ko' - title = u'시사인 라이브' - description = u'시사인 라이브 기사' - __author__ = 'Hoje Lee' - oldest_article = 30 - max_articles_per_feed = 10 - auto_cleanup = True - """ - # manual cleanup - no_stylesheets = True - remove_javascript = True - - keep_only_tags = [ - dict(name='div', attrs ={'class':['View_Title']}), - dict(name='div', attrs ={'class':['View_Info']}), - dict(name='div', attrs ={'class':['View_Time']}), - dict(id='articleBody'), - ] - remove_tags = [ - dict(name='table', attrs ={'width':['320'], 'height':['265']}), - ] - """ - - feeds = [ - # (u'전체기사', 'http://www.sisainlive.com/rss.xml'), - (u'인기기사', 'http://www.sisainlive.com/rss/clickTop.xml'), - (u'커버스토리', 'http://www.sisainlive.com/rss/SRN121.xml'), - (u'특집', 'http://www.sisainlive.com/rss/SRN122.xml'), - (u'정치', 'http://www.sisainlive.com/rss/S1N15.xml'), - (u'경제', 'http://www.sisainlive.com/rss/S1N16.xml'), - (u'사회', 'http://www.sisainlive.com/rss/S1N17.xml'), - (u'문화', 'http://www.sisainlive.com/rss/S1N18.xml'), - (u'국제.한반도', 'http://www.sisainlive.com/rss/S1N4.xml'), - (u'실용.과학', 'http://www.sisainlive.com/rss/S1N6.xml'), - (u'휴먼&휴', 'http://www.sisainlive.com/rss/S1N19.xml'), - (u'인터뷰.오피니언', 'http://www.sisainlive.com/rss/S1N5.xml'), - (u'사진.만화', 'http://www.sisainlive.com/rss/S1N7.xml'), - (u'별책부록', 'http://www.sisainlive.com/rss/S1N14.xml'), - ] diff --git a/recipes/sizinti_derigisi.recipe b/recipes/sizinti_derigisi.recipe deleted file mode 100644 index ebf8e041dd..0000000000 --- a/recipes/sizinti_derigisi.recipe +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class TodaysZaman_en(BasicNewsRecipe): - title = u'Sızıntı Dergisi' - __author__ = u'thomass' - description = 'a Turkey based daily for national and international news in the fields of business, diplomacy, politics, culture, arts, sports and economics, in addition to commentaries, specials and features' # noqa - oldest_article = 30 - max_articles_per_feed = 80 - no_stylesheets = True - encoding = 'utf-8' - category = 'dergi, ilim, kültür, bilim,Türkçe' - language = 'tr' - publication_type = 'magazine' - - cover_img_url = 'http://www.sizinti.com.tr/images/sizintiprint.jpg' - masthead_url = 'http://www.sizinti.com.tr/images/sizintiprint.jpg' - remove_tags_before = dict(id='content-right') - - feeds = [ - (u'Sızıntı', u'http://www.sizinti.com.tr/rss'), - ] - - # def preprocess_html(self, soup): - # return self.adeify_images(soup) - # def print_version(self, url): #there is a problem caused by table format - # return - # url.replace('http://www.todayszaman.com/newsDetail_getNewsById.action?load=detay&', - # 'http://www.todayszaman.com/newsDetail_openPrintPage.action?') diff --git a/recipes/skanderborglokalavisen_dk.recipe b/recipes/skanderborglokalavisen_dk.recipe deleted file mode 100644 index 832edb1cd7..0000000000 --- a/recipes/skanderborglokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Lokalavisen Skanderborg -''' - - -class SkanderborgLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Skanderborg' - description = 'Lokale og regionale nyheder, sport, kultur fra Skanderborg og omegn på skanderborg.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Skanderborg', 'http://skanderborg.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/skylife.recipe b/recipes/skylife.recipe deleted file mode 100644 index 344363cea4..0000000000 --- a/recipes/skylife.recipe +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class THY (BasicNewsRecipe): - - title = u'Skylife' - __author__ = u'thomass' - description = ' Türk Hava Yollarının yayınladığı aylık kültür dergisi (Fotoğrafları da içermesini isterseniz keep_only_tag''da belirttiğim kodu da ekleyin) ' # noqa - oldest_article = 32 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - publisher = 'thomass' - category = 'genel kültür, gezi,Türkçe' - language = 'tr' - publication_type = 'magazine' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - # Fotoğrafları da eklemek için: dict(name='div', - # attrs={'id':['divResimler']}) - keep_only_tags = [dict(name='h3', attrs={'id': ['hpbaslik']}), dict( - name='p', attrs={'id': ['pyayin', 'hspot', 'picerik']})] - masthead_url = 'http://www.turkishairlines.com/static/img/skylife/logo.png' - remove_empty_feeds = True - remove_attributes = ['width', 'height'] - - feeds = [(u'SKYLIFE', u'http://feed43.com/7783278414103376.xml')] diff --git a/recipes/slate_star_codex.recipe b/recipes/slate_star_codex.recipe deleted file mode 100644 index 6f0bde61da..0000000000 --- a/recipes/slate_star_codex.recipe +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - -__license__ = 'GPL v3' -__copyright__ = '2015, Ned Letcher ' - - -""" -calibre recipe for Slate Star Codex. -""" - - -class SlateStarCodex(BasicNewsRecipe): - title = u'Slate Star Codex' - description = 'IN A MAD WORLD, ALL BLOGGING IS PSYCHIATRY BLOGGING' - __author__ = 'Ned Letcher' - max_articles_per_feed = 20 - language = 'en' - encoding = 'utf-8' - no_stylesheets = True - # alternative candidate for keep_only_tags: - # [{'attrs':{'class':['pjgm-posttitle', 'pjgm-postmeta', 'pjgm-postcontent']}}] - keep_only_tags = [ - dict(name='div', attrs={'class': re.compile(r'\bpost\b')})] - remove_tags = [ - dict(name='div', attrs={'class': re.compile(r'\bsharedaddy\b')})] - - def get_archived_posts(self): - soup = self.index_to_soup('http://slatestarcodex.com/archives/') - entries = soup.findAll(attrs={'class': 'sya_postcontent'}) - - posts = [] - for entry in entries: - atag = entry.find('a') - url = atag['href'] - post = { - 'title': atag.contents[0], - 'url': url, - 'date': "-".join(url.strip('/').split('/')[-4:-1]), - } - posts.append(post) - return posts - - def parse_index(self): - posts = self.get_archived_posts() - return [[self.title, posts]] diff --git a/recipes/slovo.recipe b/recipes/slovo.recipe deleted file mode 100644 index b1c42b2459..0000000000 --- a/recipes/slovo.recipe +++ /dev/null @@ -1,41 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SlovoRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'Abelturd' - language = 'sk' - version = 1 - - title = u'SLOVO' - publisher = u'' - category = u'News, Newspaper' - description = u'Politicko-spolo\u010densk\xfd t\xfd\u017edenn\xedk' - encoding = 'Windows-1250' - - oldest_article = 1 - max_articles_per_feed = 100 - use_embedded_content = False - remove_empty_feeds = True - - no_stylesheets = True - remove_javascript = True - - feeds = [] - feeds.append((u'V\u0161etky \u010dl\xe1nky', - u'http://www.noveslovo.sk/rss.asp')) - - keep_only_tags = [] - remove_tags = [] - - preprocess_regexps = [ - (re.compile(r'', re.DOTALL | re.IGNORECASE), - lambda match: ''), - ] - - def print_version(self, url): - m = re.search('(?<=id=)[0-9]*', url) - - return u'http://www.noveslovo.sk/clanoktlac.asp?id=' + str(m.group(0)) diff --git a/recipes/sme.recipe b/recipes/sme.recipe deleted file mode 100644 index bd636b0120..0000000000 --- a/recipes/sme.recipe +++ /dev/null @@ -1,79 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SmeRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'kwetal' - language = 'sk' - version = 1 - - title = u'SME' - publisher = u'' - category = u'News, Newspaper' - description = u'News from Slovakia' - - oldest_article = 1 - max_articles_per_feed = 100 - use_embedded_content = False - remove_empty_feeds = True - - no_stylesheets = True - remove_javascript = True - - # Feeds from: http://rss.sme.sk/ - feeds = [] - feeds.append( - (u'Tituln\u00E1 strana', u'http://rss.sme.sk/rss/rss.asp?id=frontpage')) - feeds.append((u'Naj\u010D\u00EDtanej\u0161ie za 4 hodiny', - u'http://rss.sme.sk/rss/rss.asp?id=smenajcit4')) - feeds.append((u'Naj\u010D\u00EDtanej\u0161ie za 24 hod\u00EDn', - u'http://rss.sme.sk/rss/rss.asp?id=smenajcit24')) - feeds.append( - (u'Z domova', u'http://rss.sme.sk/rss/rss.asp?sek=smeonline&rub=online_zdom')) - feeds.append((u'Zahrani\u010Die', - u'http://rss.sme.sk/rss/rss.asp?sek=smeonline&rub=online_zahr')) - feeds.append((u'Z domova + zahrani\u010Die', - u'http://rss.sme.sk/rss/rss.asp?sek=smeonline')) - feeds.append((u'Ekonomika', u'http://rss.sme.sk/rss/rss.asp?sek=ekon')) - feeds.append((u'Kult\u00FAra', u'http://rss.sme.sk/rss/rss.asp?sek=kult')) - feeds.append( - (u'Koment\u00E1re', u'http://rss.sme.sk/rss/rss.asp?sek=koment')) - feeds.append((u'Volby', u'http://rss.sme.sk/rss/rss.asp?sek=eVolby')) - feeds.append((u'\u0160port', u'http://rss.sme.sk/rss/rss.asp?sek=sport')) - feeds.append((u'Futbal', u'http://rss.sme.sk/rss/rss.asp?sek=futbal')) - feeds.append((u'Hokej', u'http://rss.sme.sk/rss/rss.asp?sek=hokej')) - feeds.append((u'Po\u010D\u00EDta\u010De', - u'http://rss.sme.sk/rss/rss.asp?sek=pocit')) - feeds.append((u'Mobil', u'http://rss.sme.sk/rss/rss.asp?sek=mobil')) - feeds.append((u'Veda', u'http://rss.sme.sk/rss/rss.asp?sek=veda')) - feeds.append((u'Natankuj', u'http://rss.sme.sk/rss/rss.asp?sek=natankuj')) - feeds.append((u'Auto', u'http://rss.sme.sk/rss/rss.asp?sek=auto')) - feeds.append( - (u'Dom\u00E1cnos\u0165', u'http://rss.sme.sk/rss/rss.asp?sek=domac')) - feeds.append((u'\u017Dena', u'http://rss.sme.sk/rss/rss.asp?sek=zena')) - feeds.append((u'Z\u00E1bava', u'http://rss.sme.sk/rss/rss.asp?sek=zabava')) - feeds.append((u'Hry', u'http://rss.sme.sk/rss/rss.asp?sek=hry')) - - keep_only_tags = [] - keep_only_tags.append(dict(name='div', attrs={'id': 'contenth'})) - keep_only_tags.append(dict(name='div', attrs={'class': 'articlec col'})) - - remove_tags = [] - remove_tags.append( - dict(name='div', attrs={'id': re.compile('smeplayer.*')})) - - remove_tags_after = [dict(name='p', attrs={'class': 'autor_line'})] - - extra_css = ''' - @font-face {font-family: "serif1";src:url(res:///opt/sony/ebook/FONT/tt0011m_.ttf)} - @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/LiberationSans.ttf)} - body {font-family: sans1, serif1;} - ''' - - def print_version(self, url): - parts = url.split('/') - id = parts[4] - - return u'http://korzar.sme.sk/clanok_tlac.asp?cl=' + str(id) diff --git a/recipes/smilezilla.recipe b/recipes/smilezilla.recipe deleted file mode 100644 index f483715515..0000000000 --- a/recipes/smilezilla.recipe +++ /dev/null @@ -1,68 +0,0 @@ -from __future__ import absolute_import, division, print_function, unicode_literals - -import os -import re - -from calibre.ptempfile import PersistentTemporaryDirectory -from calibre.web.feeds.news import BasicNewsRecipe - - -class SmileZilla(BasicNewsRecipe): - - title = 'SmileZilla' - language = 'en' - __author__ = "Will" - JOKES_INDEX = 'http://www.smilezilla.com/joke.do' - STORIES_INDEX = 'http://www.smilezilla.com/story.do' - description = 'Daily Jokes and funny stoires' - oldest_article = 1 - no_stylesheets = True - encoding = 'utf-8' - - remove_tags = [dict(name='table')] - - def _get_entry(self, soup): - return soup.find('form', attrs={'name': 'contentForm'}) - - def _get_section_title(self, soup): - title_div = soup.find('div', attrs={'class': 'title'}) - return self.tag_to_string(title_div).strip() - - def parse_index(self): - self.tdir = PersistentTemporaryDirectory() - - def as_soup(url): - soup = self.index_to_soup(url) - for img in soup.findAll('img', src=True): - if img['src'].startswith('/'): - img['src'] = 'http://www.smilezilla.com' + img['src'] - return soup - - articles = [] - - soup = as_soup(self.JOKES_INDEX) - jokes_entry = self._get_entry(soup) - section_title = self._get_section_title(soup) - todays_jokes = [] - for i, text in enumerate(re.findall(r'(.+?)') - f.write(text.encode('utf-8')) - todays_jokes.append({'title': title, 'url': 'file:///' + f.name}) - articles.append((section_title, todays_jokes)) - - soup = as_soup(self.STORIES_INDEX) - entry = self._get_entry(soup) - section_title = self._get_section_title(soup) - - todays_stories = [] - for i, text in enumerate(re.findall(r'(.+?)') - f.write(text.encode('utf-8')) - todays_stories.append({'title': title, 'url': 'file:///' + f.name}) - articles.append((section_title, todays_stories)) - - return articles diff --git a/recipes/sn_dk.recipe b/recipes/sn_dk.recipe deleted file mode 100644 index e8ac9a301e..0000000000 --- a/recipes/sn_dk.recipe +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -sn.dk -''' - - -class Sn_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'sn.dk' - description = 'Sjællandske medier' - category = 'newspaper, news, localnews, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Nyheder', 'http://sn.dk/rss'), - - ] - diff --git a/recipes/snopes.recipe b/recipes/snopes.recipe deleted file mode 100644 index fe16b534a0..0000000000 --- a/recipes/snopes.recipe +++ /dev/null @@ -1,43 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Starson17' -''' -snopes.com -''' -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class Snopes(BasicNewsRecipe): - title = 'Snopes' - __author__ = 'Starson17' - description = 'Urban Legends' - oldest_article = 21 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - encoding = 'utf8' - publisher = 'Snopes' - category = 'news, ' - language = 'en' - publication_type = 'newsportal' - remove_javascript = True - no_stylesheets = True - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher, 'linearize_tables': True - } - - keep_only_tags = [ - dict(name='h1'), - dict(name='div', attrs={'class': ['article_text']}), - ] - - feeds = [ - ('Snopes', 'http://www.snopes.com/info/whatsnew.xml'), - ] - - extra_css = ''' - h1{font-family:Trebuchet MS,Bookman Old Style,Arial;color:#75b570} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:medium;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Arial,Helvetica,sans-serif;font-size:small;} - ''' diff --git a/recipes/socialdiva.recipe b/recipes/socialdiva.recipe deleted file mode 100644 index 9ad6997361..0000000000 --- a/recipes/socialdiva.recipe +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011' -''' -socialdiva.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SocialDiva(BasicNewsRecipe): - title = u'Social Diva' - __author__ = u'Silviu Cotoara' - description = u'When in doubt, wear red' - publisher = 'Social Diva' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Reviste,Femei' - encoding = 'utf-8' - cover_url = 'http://www.socialdiva.ro/images/logo.png' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'col-alpha mt5 content_articol'}), - dict(name='div', attrs={'class': 'mt5'}) - ] - - remove_tags = [ - dict(name='a', attrs={'class': ['comments float-left scroll mt5']}), - dict(name='a', attrs={'class': ['comments float-left scroll']}), - dict(name='div', attrs={ - 'class': ['rating-container relative float-left']}), - dict(name='div', attrs={'class': ['float-right social_articol']}) - ] - - remove_tags_after = [ - dict(name='a', attrs={'class': ['comments float-left scroll mt5']}) - ] - - feeds = [ - (u'Feeds', u'http://www.socialdiva.ro/rss.html') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/soenderborglokalavisen_dk.recipe b/recipes/soenderborglokalavisen_dk.recipe deleted file mode 100644 index 42507b262b..0000000000 --- a/recipes/soenderborglokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Lokalavisen Sønderborg -''' - - -class SoenderborgLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Sønderborg' - description = 'Lokale og regionale nyheder, sport, kultur fra Sønderborg og omegn på soenderborg.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Sønderborg', 'http://soenderborg.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/soldiers.recipe b/recipes/soldiers.recipe deleted file mode 100644 index d5e9f526c2..0000000000 --- a/recipes/soldiers.recipe +++ /dev/null @@ -1,42 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' -''' -www.army.mil/soldiers/ -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Soldiers(BasicNewsRecipe): - title = 'Soldiers' - __author__ = 'Darko Miletic' - description = 'The Official U.S. Army Magazine' - oldest_article = 30 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - auto_cleanup = True - auto_cleanup_keep = '//div[@id="mediaWrapper"]' - simultaneous_downloads = 1 - delay = 4 - max_connections = 1 - encoding = 'utf-8' - publisher = 'U.S. Army' - category = 'news, politics, war, weapons' - language = 'en' - INDEX = 'http://www.army.mil/soldiers/' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - feeds = [(u'Frontpage', u'http://www.army.mil/rss/2/')] - - def get_cover_url(self): - cover_url = None - soup = self.index_to_soup(self.INDEX) - cover_item = soup.find('img', attrs={'alt': 'Current Magazine Cover'}) - if cover_item: - cover_url = cover_item['src'] - return cover_url diff --git a/recipes/something_awful.recipe b/recipes/something_awful.recipe deleted file mode 100644 index cb585261d4..0000000000 --- a/recipes/something_awful.recipe +++ /dev/null @@ -1,89 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class SomethingAwfulRecipe(BasicNewsRecipe): - title = 'Something Awful' - __author__ = 'atordo' - description = 'The Internet Makes You Stupid' - cover_url = 'http://i.somethingawful.com/core/head-logo-bluegren.png' - oldest_article = 15 - max_articles_per_feed = 50 - auto_cleanup = False - no_stylesheets = True - remove_javascript = True - language = 'en' - use_embedded_content = False - remove_empty_feeds = True - publication_type = 'magazine' - reverse_article_order = True - - recursions = 1 - match_regexps = [r'^http://www.somethingawful.com/.+/.+/\d{1,2}/$'] - - remove_attributes = ['align', 'alt', 'valign'] - - keep_only_tags = [ - dict(name='div', attrs={'class': 'article_head'}), dict(name='div', attrs={ - 'class': 'organ article'}), dict(name='ul', attrs={'class': 'pager'}) - ] - - extra_css = ''' - .author{font-size:small} .date{font-size:small} - .byline{font-size:small} .font_big{font-size:large} - .compat5{font-weight:bold} .accentbox{background-color:#E3E3E3; border:solid black} - img{margin-bottom:0.4em; display:block; margin-left: auto; margin-right:auto} - ''' - - feeds = [ - - ('Photoshop Phriday', 'http://www.somethingawful.com/rss/photoshop-phriday.rss.xml'), - ('Comedy Goldmine', 'http://www.somethingawful.com/rss/comedy-goldmine.rss.xml'), - # ('The Flash Tub', 'http://www.somethingawful.com/rss/flash-tub.rss.xml') - # ('Downloads', 'http://www.somethingawful.com/rss/downloads.rss.xml') - # ('AwfulVision', 'http://www.somethingawful.com/rss/awfulvision.rss.xml') - ('Awful Link of the Day', 'http://www.somethingawful.com/rss/awful-links.rss.xml'), - ('Fake Something Awfuls', 'http://www.somethingawful.com/rss/fake-something-awful.rss.xml'), - ('The Barbarian\'s Dojo', 'http://www.somethingawful.com/rss/steve-sumner.rss.xml'), - ('The Great Goon Database', 'http://www.somethingawful.com/rss/great-goon-database.rss.xml'), - ('Livejournal Theater', 'http://www.somethingawful.com/rss/livejournal-theater.rss.xml'), - ('Joystick Token Healthpack', 'http://www.somethingawful.com/rss/token-healthpack.rss.xml'), - ('Webcam Ward', 'http://www.somethingawful.com/rss/webcam-ward.rss.xml'), - ('Features / Articles', 'http://www.somethingawful.com/rss/feature-articles.rss.xml'), - ('Guides', 'http://www.somethingawful.com/rss/guides.rss.xml'), - ('Legal Threats', 'http://www.somethingawful.com/rss/legal-threats.rss.xml'), - ('Pranks [ICQ]', 'http://www.somethingawful.com/rss/icq-pranks.rss.xml'), - ('State Og', 'http://www.somethingawful.com/rss/state-og.rss.xml'), - ('Everquest', 'http://www.somethingawful.com/rss/everquest.rss.xml'), - ('Pranks [Email]', 'http://www.somethingawful.com/rss/email-pranks.rss.xml'), - ('The Weekend Web', 'http://www.somethingawful.com/rss/weekend-web.rss.xml'), - ('Daily Dirt', 'http://www.somethingawful.com/rss/daily-dirt.rss.xml'), - ('The Art of Warcraft', 'http://www.somethingawful.com/rss/art-of-warcraft.rss.xml'), - ('Video Game Article', 'http://www.somethingawful.com/rss/video-game-article.rss.xml'), - ('The Awful Movie Database', 'http://www.somethingawful.com/rss/awful-movie-database.rss.xml'), - ('Pregame Wrapup', 'http://www.somethingawful.com/rss/pregame-wrapup.rss.xml'), - ('Second Life Safari', 'http://www.somethingawful.com/rss/second-life-safari.rss.xml'), - ('The Hogosphere', 'http://www.somethingawful.com/rss/hogosphere.rss.xml'), - ('Front Page News', 'http://www.somethingawful.com/rss/news.rss.xml'), - ('Forum Friday\'s Monday', 'http://www.somethingawful.com/rss/forum-fridays.rss.xml'), - ('Cliff Yablonski Hates You', 'http://www.somethingawful.com/rss/cliff-yablonski.rss.xml'), - ('Manifestos From the Internet', 'http://www.somethingawful.com/rss/manifestos-from-internet.rss.xml'), - ('Johnston Checks In', 'http://www.somethingawful.com/rss/levi-johnston.rss.xml'), - ('Twitter Tuesday', 'http://www.somethingawful.com/rss/twitter-tuesday.rss.xml'), - ('Music Article', 'http://www.somethingawful.com/rss/music-article.rss.xml'), - ('The Everdraed Showcase', 'http://www.somethingawful.com/rss/everdraed-showcase.xml'), - ('Reviews [Games]', 'http://www.somethingawful.com/rss/game-reviews.rss.xml'), - ('Reviews [Movies]', 'http://www.somethingawful.com/rss/movie-reviews.rss.xml'), - ('Rom Pit', 'http://www.somethingawful.com/rss/rom-pit.rss.xml'), - ('Truth Media [Reviews]', 'http://www.somethingawful.com/rss/truth-media-reviews.rss.xml'), - ('Truth Media [Flames]', 'http://www.somethingawful.com/rss/truth-media-flames.rss.xml'), - ('Awful Anime', 'http://www.somethingawful.com/rss/hentai-game-reviews.rss.xml'), - ('The Horrors of Pornography', 'http://www.somethingawful.com/rss/horrors-of-porn.rss.xml'), - ('Your Band Sucks', 'http://www.somethingawful.com/rss/your-band-sucks.rss.xml'), - ('Fashion SWAT', 'http://www.somethingawful.com/rss/fashion-swat.rss.xml'), - ('MMO Roulette', 'http://www.somethingawful.com/rss/mmo-roulette.rss.xml'), - ('The Most Awful', 'http://www.somethingawful.com/rss/most-awful.rss.xml'), - ('Garbage Day', 'http://www.somethingawful.com/rss/garbage-day.rss.xml'), - ('WTF, D&D!?', 'http://www.somethingawful.com/rss/dungeons-and-dragons.rss.xml'), - ('Current Releases', 'http://www.somethingawful.com/rss/current-movie-reviews.rss.xml'), - ('Awful Things for Sale', 'http://www.somethingawful.com/rss/awful-things-sale.xml') - ] diff --git a/recipes/sondagsavisen_dk.recipe b/recipes/sondagsavisen_dk.recipe deleted file mode 100644 index 4b26f3eebc..0000000000 --- a/recipes/sondagsavisen_dk.recipe +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Søndagsavisen.dk -''' - - -class Sondagsavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Søndagsavisen.dk' - description = 'Danmarks mest læste avis' - category = 'newspaper, news, localnews, home, health, decoration, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - # Feed are found here: http://www.sondagsavisen.dk/ - feeds = [ - ('Søndagsavisen.dk', 'http://www.sondagsavisen.dk/feed'), - ] diff --git a/recipes/southernstar.recipe b/recipes/southernstar.recipe deleted file mode 100644 index dda6948750..0000000000 --- a/recipes/southernstar.recipe +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2012, watou' -''' -southernstar.ie -''' -import codecs -import os -import re -import tempfile - -from calibre.ebooks.BeautifulSoup import NavigableString, Tag -from calibre.web.feeds.news import BasicNewsRecipe - - -def new_tag(soup, name, attrs=()): - impl = getattr(soup, 'new_tag', None) - if impl is not None: - return impl(name, attrs=dict(attrs)) - return Tag(soup, name, attrs=attrs or None) - - -class TheSouthernStar(BasicNewsRecipe): - - title = 'The Southern Star' - __author__ = 'watou' - description = 'West Cork\'s leading news and information provider since 1889' - NEWS_INDEX = 'http://www.southernstar.ie/news.php' - LOCAL_NOTES = 'http://www.southernstar.ie/localnotes.php' - SPORT_INDEX = 'http://www.southernstar.ie/sport.php' - CLASSIFIEDS = 'http://www.southernstar.ie/classifieds.php' - language = 'en_IE' - encoding = 'cp1252' - - publication_type = 'newspaper' - masthead_url = 'http://www.southernstar.ie/images/logo.gif' - remove_tags_before = dict(name='div', attrs={'class': 'article'}) - remove_tags_after = dict(name='div', attrs={'class': 'article'}) - remove_tags = [dict(name='div', attrs={'style': 'width:300px; position:relative'}), - dict(name='form'), - dict(name='div', attrs={'class': 'endpanel'})] - no_stylesheets = True - tempfiles = [] - pubdate = '' - - preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] - - def parse_index(self): - feeds = [] - seen_titles = set() - - articles = self.fetch_ss_articles(self.NEWS_INDEX, seen_titles) - if articles: - feeds.append(('News', articles)) - - articles = self.fetch_ss_notes(self.LOCAL_NOTES) - if articles: - feeds.append(('Local Notes', articles)) - - articles = self.fetch_ss_articles(self.SPORT_INDEX, seen_titles) - if articles: - feeds.append(('Sport', articles)) - - articles = self.fetch_ss_notes(self.CLASSIFIEDS) - if articles: - feeds.append(('Classifieds', articles)) - - return feeds - - def fetch_ss_articles(self, index, seen_titles): - articles = [] - soup = self.index_to_soup(index) - ts = soup.find('div', {'class': 'article'}) - ds = self.tag_to_string(ts.find('strong')) - self.pubdate = ' [' + ds + ']' - self.timefmt = ' [%s]' % ds - - for post in ts.findAll('h1'): - a = post.find('a', href=True) - title = self.tag_to_string(a) - if title in seen_titles: - continue - seen_titles.add(title) - url = a['href'] - if url.startswith('article'): - url = 'http://www.southernstar.ie/' + url - self.log('\tFound article:', title, 'at', url) - p = post.findNextSibling('p') - desc = None - if p is not None: - desc = str(p) - articles.append({'title': title, 'url': url, 'description': desc, - 'date': self.pubdate}) - - return articles - - def fetch_ss_notes(self, page): - articles = [] - - soup = self.index_to_soup(page) - ts = soup.find('div', {'class': 'content'}) - for post in ts.findAll('h1'): - title = self.tag_to_string(post) - self.log('\tFound note:', title) - f = tempfile.NamedTemporaryFile(suffix='.html', delete=False) - f.close() - f = codecs.open(f.name, 'w+b', self.encoding, 'replace') - url = "file://" + f.name - f.write(u'

' + title + '

') - f.write(str(post.findNextSibling('p'))) - f.write(u'') - self.log('\tWrote note to', f.name) - f.close() - self.tempfiles.append(f) - articles.append({'title': title, 'url': url, 'date': self.pubdate}) - - return articles - - def postprocess_html(self, soup, first): - for table in soup.findAll('table', align='right'): - img = table.find('img') - if img is not None: - img.extract() - caption = self.tag_to_string(table).strip() - div = new_tag(soup, 'div') - div['style'] = 'text-align:center' - div.insert(0, img) - div.insert(1, new_tag(soup, 'br')) - if caption: - div.insert(2, NavigableString(caption)) - table.replaceWith(div) - - return soup - - def image_url_processor(self, baseurl, url): - return url.replace(' ', '%20') - - def cleanup(self): - self.log('cleaning up') - for f in self.tempfiles: - os.unlink(f.name) - self.tempfiles = [] diff --git a/recipes/spin_magazine.recipe b/recipes/spin_magazine.recipe deleted file mode 100644 index 8ff4371cc1..0000000000 --- a/recipes/spin_magazine.recipe +++ /dev/null @@ -1,18 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1296179411(BasicNewsRecipe): - title = u'SPIN Magzine' - __author__ = 'Quistopher' - language = 'en' - oldest_article = 7 - max_articles_per_feed = 100 - - feeds = [ - (u'Daily Noise Blog | SPIN.com', u'http://www.spin.com/blog/feed'), - (u'It Happened Last Night | SPIN.com', - u'http://www.spin.com/it-happened-last-night/feed'), - (u'Album Reviews | SPIN.com', - u'http://www.spin.com/album-reviews/feed') - - ] diff --git a/recipes/sportowefakty.recipe b/recipes/sportowefakty.recipe deleted file mode 100644 index fe613235a6..0000000000 --- a/recipes/sportowefakty.recipe +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class sportowefakty(BasicNewsRecipe): - title = u'SportoweFakty' - __author__ = 'Artur Stachecki , Tomasz Długosz ' - language = 'pl' - description = u'Najważniejsze informacje sportowe z kraju i ze świata, relacje, komentarze, wywiady, zdjęcia!' - oldest_article = 1 - masthead_url = 'http://www.sportowefakty.pl/images/logo.png' - max_articles_per_feed = 100 - simultaneous_downloads = 5 - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - ignore_duplicate_articles = {'title', 'url'} - - keep_only_tags = [dict(attrs={'class': 'box-article'})] - remove_tags = [] - remove_tags.append(dict(attrs={'class': re.compile(r'^newsStream')})) - remove_tags.append(dict(attrs={'target': '_blank'})) - - feeds = [ - (u'Piłka Nożna', u'http://www.sportowefakty.pl/pilka-nozna/index.rss'), - (u'Koszykówka', u'http://www.sportowefakty.pl/koszykowka/index.rss'), - (u'Żużel', u'http://www.sportowefakty.pl/zuzel/index.rss'), - (u'Siatkówka', u'http://www.sportowefakty.pl/siatkowka/index.rss'), - (u'Zimowe', u'http://www.sportowefakty.pl/zimowe/index.rss'), - (u'Hokej', u'http://www.sportowefakty.pl/hokej/index.rss'), - (u'Moto', u'http://www.sportowefakty.pl/moto/index.rss'), - (u'Tenis', u'http://www.sportowefakty.pl/tenis/index.rss') - ] - - def get_article_url(self, article): - link = article.get('link', None) - if 'utm_source' in link: - return link.split('?utm')[0] - else: - return link - - def print_version(self, url): - print_url = url + '/drukuj' - return print_url - - def preprocess_html(self, soup): - head = soup.find('h1') - if 'Fotorelacja' in self.tag_to_string(head): - return None - else: - for alink in soup.findAll('a'): - if alink.string is not None: - tstr = alink.string - alink.replaceWith(tstr) - return soup diff --git a/recipes/sporza_be.recipe b/recipes/sporza_be.recipe deleted file mode 100644 index ae01107aba..0000000000 --- a/recipes/sporza_be.recipe +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Sporzabe(BasicNewsRecipe): - title = u'Sporza.be' - __author__ = u'erkfuizfeuadjfjzefzfuzeff' - description = u'Sport news from Belgium in Dutch' - oldest_article = 7 - language = 'nl_BE' - - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - - keep_only_tags = [ - dict(name='title'), dict(name='div', attrs={'id': 'intro'}), dict(name='h3'), - dict(name='h1'), dict(name='span', attrs={'class': 'media_holder'}), - dict(name='div', attrs={'class': 'divider image'}), - dict(name='div', attrs={'class': 'paragraph'}) - ] - - remove_tags = [] - - feeds = [ - ( - u'Voetbal', u'http://sporza.be/cm/sporza/voetbal?mode=atom&action=submit' - ), - ( - u'Wielrennen', - u'http://sporza.be/cm/sporza/wielrennen?mode=atom&action=submit' - ), - ( - u'Tennis', u'http://sporza.be/cm/sporza/tennis?mode=atom&action=submit' - ), - ( - u'Auto en Motor', - u'http://sporza.be/cm/sporza/auto_motor?mode=atom&action=submit' - ), - ( - u'Atletiek', - u'http://sporza.be/cm/sporza/atletiek?mode=atom&action=submit' - ), - ( - u'Zaal', u'http://sporza.be/cm/sporza/zaal?mode=atom&action=submit' - ), - ( - u'Ander nieuws', - u'http://sporza.be/cm/sporza/ander_nieuws?mode=atom&action=submit' - ) - ] diff --git a/recipes/rian_eng.recipe b/recipes/sputnik.recipe similarity index 57% rename from recipes/rian_eng.recipe rename to recipes/sputnik.recipe index ac40504ee6..f11c48da5c 100644 --- a/recipes/rian_eng.recipe +++ b/recipes/sputnik.recipe @@ -1,4 +1,4 @@ - +#!/usr/bin/env python __license__ = 'GPL v3' __copyright__ = '2009, Darko Miletic ' ''' @@ -9,28 +9,21 @@ from calibre.web.feeds.news import BasicNewsRecipe class Ria_eng(BasicNewsRecipe): - title = 'Ria Novosti' + title = 'Sputnik News' __author__ = 'Darko Miletic' description = 'News from Russia in English' language = 'en_RU' - publisher = 'en.rian.ru' category = 'news, politics, Russia' oldest_article = 3 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False encoding = 'utf-8' + auto_cleanup = True conversion_options = { 'comment': description, 'tags': category, 'publisher': publisher, 'language': language } - keep_only_tags = [dict(name='div', attrs={'class': 'article'})] - remove_tags = [ - dict(name=['object', 'link', 'iframe', 'base']), dict(name='div', attrs={'class': [ - 'related', 'mmban', 'view-story']}), dict(name='span', attrs={'class': 'copyright'}) - ] - remove_tags_after = dict(name='div', attrs={'class': 'text'}) - - feeds = [(u'Online news', u'http://en.rian.ru/export/rss2/archive/index.xml')] + feeds = [(u'News', u'https://sputnikglobe.com/export/rss2/archive/index.xml')] diff --git a/recipes/stamgasten.recipe b/recipes/stamgasten.recipe deleted file mode 100644 index c101bf5ad8..0000000000 --- a/recipes/stamgasten.recipe +++ /dev/null @@ -1,20 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1347706704(BasicNewsRecipe): - title = u'Stamgasten' - __author__ = u'DrMerry' - description = u'Stamgasten de populaire strip van Toon van Driel (http://www.toonvandriel.nl)' - language = u'nl' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = False - cover_url = 'http://shop.toonvandriel.nl/productimg.php?type=canvas&id=15&size=large' - no_stylesheets = True - remove_javascript = True - remove_empty_feeds = True - remove_tags_before = dict(id='title') - remove_tags_after = dict(attrs={'class': 'entry-content rich-content'}) - extra_css = 'img{border:0;padding:0;margin:0;width:100%}' - - feeds = [(u'Stamgasten', u'http://toonvandriel.nl/feed/')] diff --git a/recipes/standardmoney.recipe b/recipes/standardmoney.recipe deleted file mode 100644 index f28ee28ca8..0000000000 --- a/recipes/standardmoney.recipe +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -standard.money.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class StandardMoneyRo(BasicNewsRecipe): - title = 'Standard Money Ro' - __author__ = u'Silviu Cotoar\u0103' - publisher = 'Standard Money' - description = 'Portal de Business' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Stiri,Romania' - encoding = 'utf-8' - cover_url = 'http://assets.standard.ro/wp-content/themes/standard/images/standard-logo.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='h1', attrs={'class': 'post-title'} - ), dict(name='div', attrs={'class': 'content_post'}) - ] - - feeds = [ - (u'Actualitate', u'http://standard.money.ro/feed') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/stars_and_stripes.recipe b/recipes/stars_and_stripes.recipe deleted file mode 100644 index a587b47d24..0000000000 --- a/recipes/stars_and_stripes.recipe +++ /dev/null @@ -1,35 +0,0 @@ -''' Stars and Stripes - ''' - - -import re - -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class AdvancedUserRecipe1308791026(BasicNewsRecipe): - title = u'Stars and Stripes' - oldest_article = 3 - max_articles_per_feed = 100 - __author__ = 'adoucette' - description = 'The U.S. militarys independent news source, featuring exclusive reports from Iraq, Afghanistan, Europe and the Far East.' - no_stylesheets = True - use_embedded_content = False - encoding = 'utf8' - publisher = 'stripes.com' - category = 'news, US, world' - language = 'en' - publication_type = 'newsportal' - preprocess_regexps = [(re.compile(r'', re.DOTALL), lambda m: '')] - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher, 'linearize_tables': True - } - keep_only_tags = [dict(name='div', attrs={'class': ['element article']})] - remove_tags_after = [dict(name='ul', attrs={'class': 'inline-bookmarks'})] - feeds = [ - (u'News', u'http://feeds.stripes.com/starsandstripes/news'), - (u'Sports', u'http://feeds.stripes.com/starsandstripes/sports'), - (u'Military Life', u'http://feeds.stripes.com/starsandstripes/militarylife'), - (u'Opinion', u'http://feeds.stripes.com/starsandstripes/opinion'), - (u'Travel', u'http://feeds.stripes.com/starsandstripes/travel') - ] diff --git a/recipes/starwars.recipe b/recipes/starwars.recipe deleted file mode 100644 index 56ccaf267b..0000000000 --- a/recipes/starwars.recipe +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -from calibre.web.feeds.news import BasicNewsRecipe - - -class TheForce(BasicNewsRecipe): - title = u'The Force' - language = 'en' - __author__ = 'Krittika Goyal' - oldest_article = 1 # days - max_articles_per_feed = 25 - encoding = 'cp1252' - - remove_stylesheets = True - conversion_options = {'linearize_tables': True} - remove_tags_after = dict(name='div', attrs={'class': 'KonaBody'}) - keep_only_tags = dict( - name='td', attrs={'background': '/images/span/tile_story_bgtile.gif'}) - remove_tags = [ - dict(name='iframe'), - ] - - feeds = [ - ('The Force', - 'http://www.theforce.net/outnews/tfnrdf.xml'), - ] - - def preprocess_html(self, soup): - for tag in soup.findAll(name='i'): - if 'Remember to join the Star Wars Insider Facebook' in self.tag_to_string(tag): - for x in tag.findAllNext(): - x.extract() - tag.extract() - break - tag = soup.find(attrs={'class': 'articleoption'}) - if tag is not None: - tag = tag.findParent('table') - if tag is not None: - for x in tag.findAllNext(): - x.extract() - tag.extract() - - for img in soup.findAll('img', src=True): - a = img.findParent('a', href=True) - if a is None: - continue - url = a.get('href').split('?')[-1].partition('=')[-1] - if url: - img.extract() - a.name = 'img' - a['src'] = url - del a['href'] - img['src'] = url - return soup diff --git a/recipes/stnn.recipe b/recipes/stnn.recipe deleted file mode 100644 index 7749553441..0000000000 --- a/recipes/stnn.recipe +++ /dev/null @@ -1,54 +0,0 @@ - - -__license__ = 'GPL v3' -__copyright__ = '2010, Larry Chan ' -''' -Singtao STNN -''' -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class SingtaoSTNN(BasicNewsRecipe): - title = 'Singtao STNN' - __author__ = 'Larry Chan, larry1chan' - description = 'Chinese News' - oldest_article = 2 - max_articles_per_feed = 100 - simultaneous_downloads = 5 - no_stylesheets = True - use_embedded_content = False - encoding = 'gb2312' - publisher = 'Singtao STNN' - category = 'news, China, world' - language = 'zh' - publication_type = 'newsportal' - extra_css = ' body{ font-family: Verdana,Helvetica,Arial,sans-serif } .introduction{font-weight: bold} .story-feature{display: block; padding: 0; border: 1px solid; width: 40%; font-size: small} .story-feature h2{text-align: center; text-transform: uppercase} ' # noqa - masthead_url = 'http://www.stnn.cc/images/0806/logo_080728.gif' - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher, 'linearize_tables': True - } - - remove_tags_before = dict(name='div', attrs={'class': ['page_box']}) - remove_tags_after = dict(name='div', attrs={'class': ['pagelist']}) - - keep_only_tags = [ - dict(name='div', attrs={'class': ['font_title clearfix']}), - dict(name='div', attrs={'id': ['content_zoom']}) - - ] - - remove_attributes = ['width', 'height', 'href'] - - # for a full list of rss check out [url]http://www.stnn.cc/rss/[/url] - - feeds = [(u'Headline News', u'http://www.stnn.cc/rss/news/index.xml'), - (u'Breaking News', u'http://www.stnn.cc/rss/tufa/index.xml'), - (u'Finance', u'http://www.stnn.cc/rss/fin/index.xml'), - (u'Entertainment', u'http://www.stnn.cc/rss/ent/index.xml'), - (u'International', u'http://www.stnn.cc/rss/guoji/index.xml'), - (u'China', u'http://www.stnn.cc/rss/china/index.xml'), - (u'Opnion', u'http://www.stnn.cc/rss/fin_op/index.xml'), - (u'Blog', u'http://blog.stnn.cc/uploadfile/rssblogtypehotlog.xml'), - (u'Hong Kong', u'http://www.stnn.cc/rss/hongkong/index.xml') - - ] diff --git a/recipes/strategic_culture.recipe b/recipes/strategic_culture.recipe deleted file mode 100644 index df07a09bef..0000000000 --- a/recipes/strategic_culture.recipe +++ /dev/null @@ -1,88 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2012, Darko Miletic ' - -''' -www.strategic-culture.org -''' - -import time - -from calibre import strftime -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class StrategicCulture(BasicNewsRecipe): - title = 'Strategic Culture Foundation' - __author__ = 'Darko Miletic' - description = 'Online Journal' - publisher = 'Strategic Culture Foundation' - category = 'news, politics' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = False - language = 'en' - publication_type = 'newsportal' - masthead_url = 'http://www.strategic-culture.org/img/logo.jpg' - extra_css = ''' - body{font-family: Arial, sans-serif} - h1{font-family: "Times New Roman",Times,serif} - img{margin-bottom: 0.8em} - ''' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - keep_only_tags = [ - dict(name=['h1', 'p']), dict(name='div', attrs={'id': 'cke_pastebin'}) - ] - - remove_tags = [dict(name=['object', 'link', 'base', 'meta', 'iframe'])] - - feeds = [ - - (u'News', u'http://www.strategic-culture.org/blocks/news.html'), - (u'Politics', u'http://www.strategic-culture.org/rubrics/politics.html'), - (u'Economics', u'http://www.strategic-culture.org/rubrics/economics.html'), - (u'History & Culture', u'http://www.strategic-culture.org/rubrics/history-and-culture.html'), - (u'Columnists', u'http://www.strategic-culture.org/rubrics/columnists.html') - ] - - def print_version(self, url): - return url.replace('-culture.org/news/', '-culture.org/pview/') - - def parse_index(self): - totalfeeds = [] - lfeeds = self.get_feeds() - for feedobj in lfeeds: - feedtitle, feedurl = feedobj - self.report_progress(0, _('Fetching feed') + ' %s...' % - (feedtitle if feedtitle else feedurl)) - articles = [] - soup = self.index_to_soup(feedurl) - if feedurl.endswith('news.html'): - clname = 'sini14' - else: - clname = 'h22' - checker = [] - for item in soup.findAll('a', attrs={'class': clname}): - atag = item - url = atag['href'] - title = self.tag_to_string(atag) - description = '' - daypart = url.rpartition('/')[0] - mpart, sep, day = daypart.rpartition('/') - ypart, sep, month = mpart.rpartition('/') - year = ypart.rpartition('/')[2] - date = strftime("%a, %d %b %Y %H:%M:%S +0000", - time.strptime(day + "/" + month + "/" + year, "%d/%m/%Y")) - if url not in checker: - checker.append(url) - articles.append({ - 'title': title, 'date': date, 'url': url, 'description': description - }) - totalfeeds.append((feedtitle, articles)) - return totalfeeds diff --git a/recipes/strategy-business.recipe b/recipes/strategy-business.recipe deleted file mode 100644 index ce89e108ae..0000000000 --- a/recipes/strategy-business.recipe +++ /dev/null @@ -1,104 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class StrategyBusinessRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'kwetal' - language = 'en' - version = 1 - - title = u'Strategy+Business' - publisher = u' Booz & Company' - category = u'Business' - description = (u'Business magazine for senior business executives and the people who influence them.' - 'Go to http://www.strategy-business.com/registration to sign up for a free account') - - oldest_article = 13 * 7 # 3 months - max_articles_per_feed = 100 - use_embedded_content = False - remove_empty_feeds = True - needs_subscription = True - - no_stylesheets = True - remove_javascript = True - - def get_browser(self): - br = BasicNewsRecipe.get_browser(self) - br.open('http://www.strategy-business.com/registration') - for i, f in enumerate(br.forms()): - if 'gatekeeper_edit' in f.name: - br.select_form(name=f.name) - for c in f.controls: - if c.name.endswith('_email'): - br[c.name] = self.username - elif c.name.endswith('_password'): - br[c.name] = self.password - br.submit().read() - break - return br - - extra_css = ''' - body{font-family:verdana,arial,helvetica,geneva,sans-serif ;} - a {text-decoration: none; color: blue;} - h1 {margin: 0em; padding: 0em;} - h2 {font-size: medium; font-weight: bold;} - #sb-date {font-size: xx-small; color: #696969} - #category {font-style: italic; font-size: small; color: black; margin: 0em; padding: 0em;} - #byline {font-size: small; color: #666666} - div.profiles {font-size: small; font-style: italic; color: #696969} - div.profiles h2 {font-size: medium; font-style: normal; font-weight: bold; color: black} - ''' - - feeds = [] - feeds.append( - (u'Finance', u'http://feeds.feedburner.com/StrategyBusiness-Finance?format=xml')) - feeds.append((u'Global Perspective', - u'http://feeds.feedburner.com/StrategyBusiness-GlobalPerspective?format=xml')) - feeds.append( - (u'Innovation', u'http://feeds.feedburner.com/StrategyBusiness-Innovation?format=xml')) - feeds.append((u'Marketing And Sales', - u'http://feeds.feedburner.com/StrategyBusiness-MarketingAndSales?format=xml')) - feeds.append((u'Operations And Manufacturing', - u'http://feeds.feedburner.com/StrategyBusiness-OperationsAndManufacturing?format=xml')) - feeds.append((u'Organizations And People', - u'http://feeds.feedburner.com/StrategyBusiness-OrganizationsAndPeople?format=xml')) - feeds.append((u'Strategy And Leadership', - u'http://feeds.feedburner.com/StrategyBusiness-StrategyAndLeadership?format=xml')) - feeds.append((u'Sustainability', - u'http://feeds.feedburner.com/StrategyBusiness-Sustainability?format=xml')) - feeds.append((u'Auto, Airlines And Transport', - u'http://feeds.feedburner.com/StrategyBusiness-AutoAirlinesAndTransport?format=xml')) - feeds.append((u'Consumer Products', - u'http://feeds.feedburner.com/StrategyBusiness-ConsumerProducts?format=xml')) - feeds.append( - (u'Energy', u'http://feeds.feedburner.com/StrategyBusiness-Energy?format=xml')) - feeds.append( - (u'Health Care', u'http://feeds.feedburner.com/StrategyBusiness-HealthCare?format=xml')) - feeds.append( - (u'Technology', u'http://feeds.feedburner.com/StrategyBusiness-Technology?format=xml')) - feeds.append((u'Thought Leaders', - u'http://feeds.feedburner.com/StrategyBusiness-ThoughtLeaders?format=xml')) - feeds.append((u'Business Literature', - u'http://feeds.feedburner.com/StrategyBusiness-BusinessLiterature?format=xml')) - feeds.append((u'Recent Research', - u'http://feeds.feedburner.com/StrategyBusiness-RecentResearch?format=xml')) - - keep_only_tags = [ - dict(name='h1'), - dict(attrs={'class': ['introAndByline', 'content', 'resources']}), - ] - - remove_tags = [] - remove_tags.append(dict(name='img', attrs={'class': 'content1'})) - remove_tags.append( - dict(name='img', attrs={'src': '/media/image/end_of_story.gif'})) - remove_tags.append(dict(name='div', attrs={'class': [ - 'sb-adarea468', 'GigyaShare', 'moreBlogLinks', 'clearboth', 'GigyaCommentsContainer']})) - remove_tags.append(dict(name='div', attrs={'id': 'sb-paging'})) - remove_tags.append(dict(name='div', attrs={'id': 'textsize'})) - remove_tags.append( - dict(name='div', id=lambda x: x and x.startswith('div-gpt-ad-'))) - - def get_article_url(self, article): - url = BasicNewsRecipe.get_article_url(self, article) - return url.partition('?')[0] + '?pg=all' diff --git a/recipes/sueddeutsche_mobil.recipe b/recipes/sueddeutsche_mobil.recipe deleted file mode 100644 index 9516fdce31..0000000000 --- a/recipes/sueddeutsche_mobil.recipe +++ /dev/null @@ -1,133 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2012, 2013 Andreas Zeiser ' -''' -szmobil.sueddeutsche.de/ -''' -# History -# 2015.01.02 Daily Cover from https://zeitung.sueddeutsche.de/webapp by lala-rob (web@lala-rob.de) -# 2014.12.18 Fixing URL set Cover by lala-rob (web@lala-rob.de) -# 2014.10.06 Fixing Login URL and Article URL by lala-rob (web@lala-rob.de) -# -# 2013.01.09 Fixed bugs in article titles containing "strong" and -# other small changes -# 2012.08.04 Initial release - -import datetime -import re - -from calibre import strftime -from calibre.utils.date import utcnow -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class SZmobil(BasicNewsRecipe): - title = u'Süddeutsche Zeitung mobil' - __author__ = u'Andreas Zeiser' - description = u'Nachrichten aus Deutschland. Zugriff auf kostenpflichtiges Abo SZ mobil.' - publisher = u'Sueddeutsche Zeitung' - masthead_url = 'http://pix.sueddeutsche.de/img/layout/header/SZ_solo288x31.gif' - language = u'de' - publication_type = u'newspaper' - category = u'news, politics, Germany' - cover_url = 'https://zeitung.sueddeutsche.de/szdigital/public/issue/previewimage?size=l&issueId=' + \ - (utcnow() + datetime.timedelta(hours=1) - ).strftime("%Y-%m-%d") + '&targetVersion=3&productId=sz' - no_stylesheets = True - oldest_article = 2 - encoding = 'iso-8859-1' - needs_subscription = True - remove_empty_feeds = True - delay = 1 - - # if you want to get rid of the date on the title page use - # timefmt = '' - timefmt = ' [%a, %d %b, %Y]' - - root_url = 'http://epaper.sueddeutsche.de/app/service/epaper-mobil/' - keep_only_tags = [dict(name='div', attrs={'class': 'article'})] - - def get_browser(self): - browser = BasicNewsRecipe.get_browser(self) - - # Login via fetching of Streiflicht -> Fill out login request - url = 'https://id.sueddeutsche.de/login' - browser.open(url) - - browser.select_form(nr=0) # to select the first form - browser['login'] = self.username - browser['password'] = self.password - browser.submit() - return browser - - def parse_index(self): - # find all sections - src = self.index_to_soup( - 'http://epaper.sueddeutsche.de/app/service/epaper-mobil/') - feeds = [] - for itt in src.findAll('a', href=True): - if itt['href'].startswith('section.php?section'): - feeds.append((itt.string[0:-2], itt['href'])) - - all_articles = [] - for feed in feeds: - feed_url = self.root_url + feed[1] - feed_title = feed[0] - - self.report_progress(0, ('Fetching feed') + ' %s...' % - (feed_title if feed_title else feed_url)) - - src = self.index_to_soup(feed_url) - articles = [] - shorttitles = dict() - for itt in src.findAll('a', href=True): - if itt['href'].startswith('article.php?id='): - article_url = itt['href'] - article_id = int( - re.search(r"id=(\d*)&etag=", itt['href']).group(1)) - - # first check if link is a special article in section - # "Meinungsseite" - if itt.find('strong') is not None: - article_name = itt.strong.string - if len(itt.contents) > 1: - shorttitles[article_id] = itt.contents[1] - - articles.append( - (article_name, article_url, article_id)) - continue - - # candidate for a general article - if itt.string is None: - article_name = '' - else: - article_name = itt.string - - if (article_name.find(" mehr") == 0): - # just another link ("mehr") to an article - continue - - if itt.get('id') is not None: - shorttitles[article_id] = article_name - else: - articles.append( - (article_name, article_url, article_id)) - - feed_articles = [] - for article_name, article_url, article_id in articles: - url = self.root_url + article_url - title = article_name - # if you want to get rid of date for each article use - # pubdate = strftime('') - pubdate = strftime('[%a, %d %b]') - description = '' - if shorttitles.get(article_id) is not None: - description = shorttitles[article_id] - # we do not want the flag ("Impressum") - if "HERAUSGEGEBEN VOM" in description: - continue - d = dict(title=title, url=url, date=pubdate, - description=description, content='') - feed_articles.append(d) - all_articles.append((feed_title, feed_articles)) - - return all_articles diff --git a/recipes/sueddeutschezeitung.recipe b/recipes/sueddeutschezeitung.recipe deleted file mode 100644 index 88125650af..0000000000 --- a/recipes/sueddeutschezeitung.recipe +++ /dev/null @@ -1,126 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -www.sueddeutsche.de/sz/ -''' -# History -# 2015.01.02 Daily Cover from https://zeitung.sueddeutsche.de/webapp by lala-rob (web@lala-rob.de) -# 2014.12.15 Set Cover by lala-rob(web@lala-rob.de) -# 2014.10.02 Fixed url Problem by lala-rob(web@lala-rob.de) - -import datetime - -from calibre import strftime -from calibre.utils.date import utcnow -from calibre.web.feeds.news import BasicNewsRecipe - - -class SueddeutcheZeitung(BasicNewsRecipe): - title = u'Süddeutsche Zeitung' - __author__ = 'Darko Miletic' - description = 'News from Germany. Access to paid content.' - publisher = u'Süddeutsche Zeitung' - category = 'news, politics, Germany' - no_stylesheets = True - oldest_article = 2 - encoding = 'iso-8859-1' - needs_subscription = True - remove_empty_feeds = True - delay = 1 - cover_url = 'https://zeitung.sueddeutsche.de/szdigital/public/issue/previewimage?size=l&issueId=' + \ - (utcnow() + datetime.timedelta(hours=1) - ).strftime("%Y-%m-%d") + '&targetVersion=3&productId=sz' - PREFIX = 'http://epaper.sueddeutsche.de' - INDEX = PREFIX + '/app/epaper/textversion/' - use_embedded_content = False - masthead_url = 'http://pix.sueddeutsche.de/img/layout/header/SZ_solo288x31.gif' - language = 'de' - publication_type = 'newspaper' - extra_css = ' body{font-family: Arial,Helvetica,sans-serif} ' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language, 'linearize_tables': True - } - - remove_attributes = ['height', 'width', 'style'] - - def get_browser(self): - browser = BasicNewsRecipe.get_browser(self) - - # Login via fetching of Streiflicht -> Fill out login request - url = 'https://id.sueddeutsche.de/login' - browser.open(url) - - browser.select_form(nr=0) # to select the first form - browser['login'] = self.username - browser['password'] = self.password - browser.submit() - - return browser - - remove_tags = [ - dict(attrs={'class': 'hidePrint'}), dict( - name=['link', 'object', 'embed', 'base', 'iframe', 'br']) - ] - keep_only_tags = [dict(attrs={'class': 'artikelBox'})] - remove_tags_before = dict(attrs={'class': 'artikelTitel'}) - remove_tags_after = dict(attrs={'class': 'author'}) - - feeds = [ - - (u'Politik', INDEX + 'Politik/'), - (u'Seite drei', INDEX + 'Seite+drei/'), - (u'Thema des Tages', INDEX + 'Thema+des+Tages/'), - (u'Meinungsseite', INDEX + 'Meinungsseite/'), - (u'Wissen', INDEX + 'Wissen/'), - (u'Panorama', INDEX + 'Panorama/'), - (u'Feuilleton', INDEX + 'Feuilleton/'), - (u'Medien', INDEX + 'Medien/'), - (u'Wirtschaft', INDEX + 'Wirtschaft/'), - (u'Sport', INDEX + 'Sport/'), - (u'Bayern', INDEX + 'Bayern/'), - (u'Muenchen', INDEX + 'M%FCnchen/'), - (u'Muenchen City', INDEX + 'M%FCnchen+City/'), - (u'Jetzt.de', INDEX + 'Jetzt.de/'), - (u'Reise', INDEX + 'Reise/'), - (u'SZ Extra', INDEX + 'SZ+Extra/'), - (u'Wochenende', INDEX + 'SZ+am+Wochenende/'), - (u'Stellen-Markt', INDEX + 'Stellen-Markt/'), - (u'Motormarkt', INDEX + 'Motormarkt/'), - (u'Immobilien-Markt', INDEX + 'Immobilien-Markt/'), - (u'Thema', INDEX + 'Thema/'), - (u'Forum', INDEX + 'Forum/'), - (u'Leute', INDEX + 'Leute/'), - (u'Jugend', INDEX + 'Jugend/'), - (u'Beilage', INDEX + 'Beilage/') - ] - - def parse_index(self): - src = self.index_to_soup(self.INDEX) - id = '' - for itt in src.findAll('a', href=True): - if itt['href'].startswith('/app/epaper/textversion/inhalt/'): - id = itt['href'].rpartition('/inhalt/')[2] - totalfeeds = [] - lfeeds = self.get_feeds() - for feedobj in lfeeds: - feedtitle, feedurl = feedobj - self.report_progress(0, ('Fetching feed') + ' %s...' % - (feedtitle if feedtitle else feedurl)) - articles = [] - soup = self.index_to_soup(feedurl + id) - tbl = soup.find(attrs={'class': 'szprintd'}) - for item in tbl.findAll(name='td', attrs={'class': 'topthema'}): - atag = item.find(attrs={'class': 'Titel'}).a - ptag = item.find('p') - stag = ptag.find('script') - if stag: - stag.extract() - url = self.PREFIX + atag['href'] - title = self.tag_to_string(atag) - description = self.tag_to_string(ptag) - articles.append({ - 'title': title, 'date': strftime(self.timefmt), 'url': url, 'description': description - }) - totalfeeds.append((feedtitle, articles)) - return totalfeeds diff --git a/recipes/superbebe.recipe b/recipes/superbebe.recipe deleted file mode 100644 index 491cad033a..0000000000 --- a/recipes/superbebe.recipe +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -superbebe.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Superbebe(BasicNewsRecipe): - title = u'Superbebe' - __author__ = u'Silviu Cotoar\u0103' - description = 'Superbebe' - publisher = 'Superbebe' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Reviste,Bebe,Mamici' - encoding = 'utf-8' - cover_url = 'http://www.superbebe.ro/images/superbebe.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'articol'}) - ] - - remove_tags = [ - dict(name='div', attrs={'class': ['info']}), dict( - name='div', attrs={'class': ['tags']}) - ] - - remove_tags_after = [ - dict(name='div', attrs={'class': ['tags']}) - ] - - feeds = [ - (u'Feeds', u'http://www.superbebe.ro/rss') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/superesportes.recipe b/recipes/superesportes.recipe deleted file mode 100644 index d2f24d650a..0000000000 --- a/recipes/superesportes.recipe +++ /dev/null @@ -1,76 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Luciano Furtado ' -''' -www.superesportes.com.br -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class SuperEsportesRecipe(BasicNewsRecipe): - - title = u'www.superesportes.com.br' - description = u'Superesportes - Not√≠cias do esporte no Brasil e no mundo' - __author__ = 'Luciano Furtado' - language = 'pt' - category = 'esportes, Brasil' - no_stylesheets = True - oldest_article = 7 - - use_embedded_content = 0 - max_articles_per_feed = 10 - cover_url = 'http://imgs.mg.superesportes.com.br/superesportes_logo.png' - - extra_css = 'div.info_noticias h1 { font-size: 100% }' - - remove_tags = [ - dict(name='div', attrs={'class': 'topo'}), - dict(name='div', attrs={'class': 'rodape'}), - dict(name='div', attrs={'class': 'navegacao'}), - dict(name='div', attrs={'class': 'lateral2'}), - dict(name='div', attrs={'class': 'leia_mais'}), - dict(name='div', attrs={'id': 'comentar'}), - dict(name='div', attrs={'id': 'vrumelc_noticia'}), - dict(name='div', attrs={'class': 'compartilhe'}), - dict(name='div', attrs={'class': 'linha_noticias'}), - dict(name='div', attrs={'class': 'botoes_noticias'}), - dict(name='div', attrs={'class': 'barra_time bg_time'}), - ] - - def parse_index(self): - feeds = [] - sections = [ - (u'Atletico', 'http://www.df.superesportes.com.br/futebol/atletico-mg/capa_atletico_mg/index.shtml'), - (u'Botafogo', 'http://www.df.superesportes.com.br/futebol/botafogo/capa_botafogo/index.shtml'), - (u'Corinthinas', 'http://www.df.superesportes.com.br/futebol/corinthians/capa_corinthians/index.shtml'), - (u'Cruzeiro', 'http://www.df.superesportes.com.br/futebol/cruzeiro/capa_cruzeiro/index.shtml'), - (u'Flamengo', 'http://www.df.superesportes.com.br/futebol/flamengo/capa_flamengo/index.shtml'), - (u'Fluminense', 'http://www.df.superesportes.com.br/futebol/fluminense/capa_fluminense/index.shtml'), - (u'Palmeiras', 'http://www.df.superesportes.com.br/futebol/palmeiras/capa_palmeiras/index.shtml'), - (u'Santos', 'http://www.df.superesportes.com.br/futebol/santos/capa_santos/index.shtml'), - (u'S√£o Paulo', 'http://www.df.superesportes.com.br/futebol/sao-paulo/capa_sao_paulo/index.shtml'), - (u'Vasco', 'http://www.df.superesportes.com.br/futebol/vasco/capa_vasco/index.shtml'), - ] - - for section, url in sections: - current_articles = [] - - soup = self.index_to_soup(url) - latestNews = soup.find( - name='ul', attrs={'class': 'lista_ultimas_noticias'}) - - for li_tag in latestNews.findAll(name='li'): - a_tag = li_tag.find('a', href=True) - if a_tag is None: - continue - title = self.tag_to_string(a_tag) - url = a_tag.get('href', False) - self.log("\n\nFound title: " + title + - "\nUrl: " + url + "\nSection: " + section) - current_articles.append( - {'title': title, 'url': url, 'description': title, 'date': ''}) - - if current_articles: - feeds.append((section, current_articles)) - - return feeds diff --git a/recipes/syddjurslokalavisen_dk.recipe b/recipes/syddjurslokalavisen_dk.recipe deleted file mode 100644 index eba72320fa..0000000000 --- a/recipes/syddjurslokalavisen_dk.recipe +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# https://manual.calibre-ebook.com/news_recipe.html -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -''' -Adresseavisen Syddjurs -''' - - -class SyddjursLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Adresseavisen Syddjurs' - description = 'Lokale og regionale nyheder, sport og kultur fra det sydlige Djursland på syddjurs.lokalavisen.dk' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Seneste nyt fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Adresseavisen Syddjurs', 'http://syddjurs.lokalavisen.dk/section/senestelaeserbreverss'), - - ] -