From 0396daa644576743d2561c499c4f6e49144ee385 Mon Sep 17 00:00:00 2001 From: unkn0w7n <51942695+unkn0w7n@users.noreply.github.com> Date: Sat, 28 Sep 2024 11:15:56 +0530 Subject: [PATCH 1/2] remove dead recipes These recipes are based on RSS feeds that no longer work. --- recipes/f1_ultra.recipe | 40 ---- recipes/f_secure.recipe | 23 --- recipes/favrskovavisen_dk.recipe | 26 --- recipes/favrskovlokalavisen_dk.recipe | 32 ---- recipes/faznet.recipe | 134 -------------- recipes/fc_knudde.recipe | 21 --- recipes/fdb_pl.recipe | 47 ----- recipes/fe_india.recipe | 75 -------- recipes/felicia.recipe | 46 ----- recipes/fhm_uk.recipe | 45 ----- recipes/fhmro.recipe | 51 ----- recipes/fifty_two.recipe | 30 --- recipes/fisco_oggi.recipe | 27 --- recipes/fleshbot.recipe | 39 ---- recipes/folkebladet_dk.recipe | 27 --- recipes/folkebladetdjursland_dk.recipe | 26 --- recipes/folketidende_dk.recipe | 27 --- recipes/forbes.recipe | 67 ------- recipes/forbes_india.recipe | 55 ------ recipes/forbes_pl.recipe | 58 ------ recipes/formulaas.recipe | 48 ----- recipes/forsal.recipe | 51 ----- recipes/fotoblogia_pl.recipe | 18 -- recipes/fr_online.recipe | 75 -------- recipes/frankfurter_rundschau.recipe | 59 ------ recipes/freakonomics.recipe | 35 ---- recipes/fredensborglokalavisen_dk.recipe | 32 ---- recipes/fredericialokalavisen_dk.recipe | 32 ---- recipes/frederiksbergbladet_dk.recipe | 28 --- recipes/frederikssundlokalavisen_dk.recipe | 32 ---- recipes/freeway.recipe | 92 --------- recipes/fstream.recipe | 75 -------- recipes/furesoelokalavisen_dk.recipe | 32 ---- recipes/gamasutra_fa.recipe | 39 ---- recipes/gamasutra_news.recipe | 40 ---- recipes/gamespot.recipe | 47 ----- recipes/gandul.recipe | 45 ----- recipes/gazeta_lubuska.recipe | 69 ------- recipes/gazeta_pl_bydgoszcz.recipe | 95 ---------- recipes/gazeta_pl_szczecin.recipe | 90 --------- recipes/gazeta_pomorska.recipe | 72 ------- recipes/gazeta_wroclawska.recipe | 46 ----- recipes/gazeta_wspolczesna.recipe | 68 ------- recipes/gazeta_wyborcza.recipe | 126 ------------- recipes/gcn.recipe | 64 ------- recipes/geek_poke.recipe | 80 -------- recipes/gentoftelokalavisen_dk.recipe | 32 ---- recipes/german_gov.recipe | 31 ---- recipes/gezgin_dergi.recipe | 14 -- recipes/gildia_pl.recipe | 72 ------- recipes/gizmodo.recipe | 36 ---- recipes/glamour.recipe | 36 ---- recipes/glennbeck.recipe | 100 ---------- recipes/glos_wielkopolski.recipe | 45 ----- recipes/go4it.recipe | 46 ----- recipes/goal.recipe | 13 -- recipes/gofin_pl.recipe | 33 ---- recipes/good_to_know.recipe | 34 ---- recipes/googlemobileblog.recipe | 13 -- recipes/grenaalokalavisen_dk.recipe | 32 ---- recipes/gribskovlokalavisen_dk.recipe | 32 ---- recipes/grid_to.recipe | 81 -------- recipes/grrm.recipe | 32 ---- recipes/gs24_pl.recipe | 46 ----- recipes/gulfnews.recipe | 61 ------ recipes/gulli.recipe | 26 --- recipes/h3.recipe | 38 ---- recipes/haderslevlokalavisen_dk.recipe | 32 ---- recipes/hankyoreh.recipe | 36 ---- recipes/heavy_metal_it.recipe | 23 --- recipes/heise_open.recipe | 37 ---- recipes/helsingin_sanomat.recipe | 34 ---- recipes/hindu_human_rights.recipe | 22 --- recipes/hnonline.recipe | 79 -------- recipes/hoersholmlokalavisen_dk.recipe | 32 ---- recipes/hola.recipe | 93 ---------- recipes/hollywood_reporter.recipe | 55 ------ recipes/hornsherredavis_dk.recipe | 27 --- recipes/hornsherredlokalavisen_dk.recipe | 32 ---- recipes/hotcity.recipe | 41 ---- recipes/hotnews.recipe | 40 ---- recipes/house_news.recipe | 31 ---- recipes/hrt.recipe | 81 -------- recipes/huffingtonpost.recipe | 127 ------------- recipes/hvidovreavis_dk.recipe | 20 -- recipes/hvidovrelokalavisen_dk.recipe | 32 ---- recipes/ibm_smarter_planet.recipe | 25 --- recipes/icons/f1_ultra.png | Bin 242 -> 0 bytes recipes/icons/f_secure.png | Bin 783 -> 0 bytes recipes/icons/favrskovavisen_dk.png | Bin 230 -> 0 bytes recipes/icons/favrskovlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/faznet.png | Bin 1478 -> 0 bytes recipes/icons/fc_knudde.png | Bin 5506 -> 0 bytes recipes/icons/fdb_pl.png | Bin 238 -> 0 bytes recipes/icons/fe_india.png | Bin 162 -> 0 bytes recipes/icons/felicia.png | Bin 753 -> 0 bytes recipes/icons/fhm_uk.png | Bin 1786 -> 0 bytes recipes/icons/fhmro.png | Bin 640 -> 0 bytes recipes/icons/fifty_two.png | Bin 169 -> 0 bytes recipes/icons/fisco_oggi.png | Bin 739 -> 0 bytes recipes/icons/fleshbot.png | Bin 696 -> 0 bytes recipes/icons/folkebladet_dk.png | Bin 2164 -> 0 bytes recipes/icons/folkebladetdjursland_dk.png | Bin 230 -> 0 bytes recipes/icons/folketidende_dk.png | Bin 559 -> 0 bytes recipes/icons/forbes.png | Bin 200 -> 0 bytes recipes/icons/forbes_india.png | Bin 653 -> 0 bytes recipes/icons/forbes_pl.png | Bin 304 -> 0 bytes recipes/icons/formulaas.png | Bin 559 -> 0 bytes recipes/icons/forsal.png | Bin 579 -> 0 bytes recipes/icons/fotoblogia_pl.png | Bin 171 -> 0 bytes recipes/icons/fr_online.png | Bin 517 -> 0 bytes recipes/icons/frankfurter_rundschau.png | Bin 517 -> 0 bytes recipes/icons/freakonomics.png | Bin 3684 -> 0 bytes recipes/icons/fredensborglokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/fredericialokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/frederiksbergbladet_dk.png | Bin 262 -> 0 bytes recipes/icons/frederikssundlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/furesoelokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/gamasutra_fa.png | Bin 683 -> 0 bytes recipes/icons/gamasutra_news.png | Bin 683 -> 0 bytes recipes/icons/gamespot.png | Bin 660 -> 0 bytes recipes/icons/gandul.png | Bin 271 -> 0 bytes recipes/icons/gazeta_lubuska.png | Bin 900 -> 0 bytes recipes/icons/gazeta_pl_bydgoszcz.png | Bin 101 -> 0 bytes recipes/icons/gazeta_pl_szczecin.png | Bin 101 -> 0 bytes recipes/icons/gazeta_pomorska.png | Bin 114 -> 0 bytes recipes/icons/gazeta_wroclawska.png | Bin 276 -> 0 bytes recipes/icons/gazeta_wspolczesna.png | Bin 562 -> 0 bytes recipes/icons/gazeta_wyborcza.png | Bin 101 -> 0 bytes recipes/icons/gcn.png | Bin 364 -> 0 bytes recipes/icons/geek_poke.png | Bin 443 -> 0 bytes recipes/icons/gentoftelokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/german_gov.png | Bin 1080 -> 0 bytes recipes/icons/gezgin_dergi.png | Bin 584 -> 0 bytes recipes/icons/gildia_pl.png | Bin 788 -> 0 bytes recipes/icons/gizmodo.png | Bin 331 -> 0 bytes recipes/icons/glamour.png | Bin 930 -> 0 bytes recipes/icons/glennbeck.png | Bin 1689 -> 0 bytes recipes/icons/glos_wielkopolski.png | Bin 261 -> 0 bytes recipes/icons/go4it.png | Bin 733 -> 0 bytes recipes/icons/goal.png | Bin 437 -> 0 bytes recipes/icons/gofin_pl.png | Bin 594 -> 0 bytes recipes/icons/good_to_know.png | Bin 772 -> 0 bytes recipes/icons/googlemobileblog.png | Bin 1111 -> 0 bytes recipes/icons/grenaalokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/gribskovlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/grrm.png | Bin 709 -> 0 bytes recipes/icons/gs24_pl.png | Bin 249 -> 0 bytes recipes/icons/gulfnews.png | Bin 1272 -> 0 bytes recipes/icons/haderslevlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/hankyoreh.png | Bin 200 -> 0 bytes recipes/icons/heavy_metal_it.png | Bin 2050 -> 0 bytes recipes/icons/heise_open.png | Bin 1468 -> 0 bytes recipes/icons/helsingin_sanomat.png | Bin 655 -> 0 bytes recipes/icons/hindu_human_rights.png | Bin 1035 -> 0 bytes recipes/icons/hnonline.png | Bin 632 -> 0 bytes recipes/icons/hoersholmlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/hola.png | Bin 357 -> 0 bytes recipes/icons/hollywood_reporter.png | Bin 499 -> 0 bytes recipes/icons/hornsherredlokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/hotcity.png | Bin 388 -> 0 bytes recipes/icons/hotnews.png | Bin 383 -> 0 bytes recipes/icons/house_news.png | Bin 537 -> 0 bytes recipes/icons/hrt.png | Bin 419 -> 0 bytes recipes/icons/huffingtonpost.png | Bin 317 -> 0 bytes recipes/icons/huffingtonpost_uk.png | Bin 212 -> 0 bytes recipes/icons/hvidovreavis_dk.png | Bin 676 -> 0 bytes recipes/icons/hvidovrelokalavisen_dk.png | Bin 801 -> 0 bytes recipes/icons/ideal_almeria.png | Bin 241 -> 0 bytes recipes/icons/ideal_granada.png | Bin 241 -> 0 bytes recipes/icons/ideal_jaen.png | Bin 241 -> 0 bytes recipes/icons/idg_se.png | Bin 439 -> 0 bytes recipes/icons/iekspries.png | Bin 152 -> 0 bytes recipes/icons/ihned.cz.png | Bin 1063 -> 0 bytes recipes/icons/ihned.png | Bin 1063 -> 0 bytes recipes/icons/il_foglio.png | Bin 290 -> 0 bytes recipes/icons/iliteratura_cz.png | Bin 515 -> 0 bytes recipes/icons/indy_star.png | Bin 1627 -> 0 bytes recipes/icons/infomotori.png | Bin 1770 -> 0 bytes recipes/icons/infoworld.png | Bin 1034 -> 0 bytes recipes/icons/infra_pl.png | Bin 766 -> 0 bytes recipes/icons/inopressa.png | Bin 2256 -> 0 bytes recipes/icons/insider.png | Bin 712 -> 0 bytes recipes/icons/io9.png | Bin 840 -> 0 bytes recipes/icons/ionline_pt.png | Bin 439 -> 0 bytes recipes/icons/ivanamilakovic.png | Bin 2232 -> 0 bytes recipes/ideal_almeria.recipe | 66 ------- recipes/ideal_granada.recipe | 67 ------- recipes/ideal_jaen.recipe | 65 ------- recipes/idg_se.recipe | 36 ---- recipes/iekspries.recipe | 23 --- recipes/ihned.cz.recipe | 36 ---- recipes/ihned.recipe | 175 ------------------ recipes/il_foglio.recipe | 18 -- recipes/il_giornale.recipe | 48 ----- recipes/iliteratura_cz.recipe | 46 ----- recipes/indy_star.recipe | 26 --- recipes/infomotori.recipe | 50 ----- recipes/infoworld.recipe | 25 --- recipes/infra_pl.recipe | 27 --- recipes/inopressa.recipe | 25 --- recipes/insider.recipe | 59 ------ recipes/io9.recipe | 36 ---- recipes/ionline_pt.recipe | 53 ------ recipes/ivanamilakovic.recipe | 42 ----- 205 files changed, 5061 deletions(-) delete mode 100644 recipes/f1_ultra.recipe delete mode 100644 recipes/f_secure.recipe delete mode 100644 recipes/favrskovavisen_dk.recipe delete mode 100644 recipes/favrskovlokalavisen_dk.recipe delete mode 100644 recipes/faznet.recipe delete mode 100644 recipes/fc_knudde.recipe delete mode 100644 recipes/fdb_pl.recipe delete mode 100644 recipes/fe_india.recipe delete mode 100644 recipes/felicia.recipe delete mode 100644 recipes/fhm_uk.recipe delete mode 100644 recipes/fhmro.recipe delete mode 100644 recipes/fifty_two.recipe delete mode 100644 recipes/fisco_oggi.recipe delete mode 100644 recipes/fleshbot.recipe delete mode 100644 recipes/folkebladet_dk.recipe delete mode 100644 recipes/folkebladetdjursland_dk.recipe delete mode 100644 recipes/folketidende_dk.recipe delete mode 100644 recipes/forbes.recipe delete mode 100644 recipes/forbes_india.recipe delete mode 100644 recipes/forbes_pl.recipe delete mode 100644 recipes/formulaas.recipe delete mode 100644 recipes/forsal.recipe delete mode 100644 recipes/fotoblogia_pl.recipe delete mode 100644 recipes/fr_online.recipe delete mode 100644 recipes/frankfurter_rundschau.recipe delete mode 100644 recipes/freakonomics.recipe delete mode 100644 recipes/fredensborglokalavisen_dk.recipe delete mode 100644 recipes/fredericialokalavisen_dk.recipe delete mode 100644 recipes/frederiksbergbladet_dk.recipe delete mode 100644 recipes/frederikssundlokalavisen_dk.recipe delete mode 100644 recipes/freeway.recipe delete mode 100644 recipes/fstream.recipe delete mode 100644 recipes/furesoelokalavisen_dk.recipe delete mode 100644 recipes/gamasutra_fa.recipe delete mode 100644 recipes/gamasutra_news.recipe delete mode 100644 recipes/gamespot.recipe delete mode 100644 recipes/gandul.recipe delete mode 100644 recipes/gazeta_lubuska.recipe delete mode 100644 recipes/gazeta_pl_bydgoszcz.recipe delete mode 100644 recipes/gazeta_pl_szczecin.recipe delete mode 100644 recipes/gazeta_pomorska.recipe delete mode 100644 recipes/gazeta_wroclawska.recipe delete mode 100644 recipes/gazeta_wspolczesna.recipe delete mode 100644 recipes/gazeta_wyborcza.recipe delete mode 100644 recipes/gcn.recipe delete mode 100644 recipes/geek_poke.recipe delete mode 100644 recipes/gentoftelokalavisen_dk.recipe delete mode 100644 recipes/german_gov.recipe delete mode 100644 recipes/gezgin_dergi.recipe delete mode 100644 recipes/gildia_pl.recipe delete mode 100644 recipes/gizmodo.recipe delete mode 100644 recipes/glamour.recipe delete mode 100644 recipes/glennbeck.recipe delete mode 100644 recipes/glos_wielkopolski.recipe delete mode 100644 recipes/go4it.recipe delete mode 100644 recipes/goal.recipe delete mode 100644 recipes/gofin_pl.recipe delete mode 100644 recipes/good_to_know.recipe delete mode 100644 recipes/googlemobileblog.recipe delete mode 100644 recipes/grenaalokalavisen_dk.recipe delete mode 100644 recipes/gribskovlokalavisen_dk.recipe delete mode 100644 recipes/grid_to.recipe delete mode 100644 recipes/grrm.recipe delete mode 100644 recipes/gs24_pl.recipe delete mode 100644 recipes/gulfnews.recipe delete mode 100644 recipes/gulli.recipe delete mode 100644 recipes/h3.recipe delete mode 100644 recipes/haderslevlokalavisen_dk.recipe delete mode 100644 recipes/hankyoreh.recipe delete mode 100644 recipes/heavy_metal_it.recipe delete mode 100644 recipes/heise_open.recipe delete mode 100644 recipes/helsingin_sanomat.recipe delete mode 100644 recipes/hindu_human_rights.recipe delete mode 100644 recipes/hnonline.recipe delete mode 100644 recipes/hoersholmlokalavisen_dk.recipe delete mode 100644 recipes/hola.recipe delete mode 100644 recipes/hollywood_reporter.recipe delete mode 100644 recipes/hornsherredavis_dk.recipe delete mode 100644 recipes/hornsherredlokalavisen_dk.recipe delete mode 100644 recipes/hotcity.recipe delete mode 100644 recipes/hotnews.recipe delete mode 100644 recipes/house_news.recipe delete mode 100644 recipes/hrt.recipe delete mode 100644 recipes/huffingtonpost.recipe delete mode 100644 recipes/hvidovreavis_dk.recipe delete mode 100644 recipes/hvidovrelokalavisen_dk.recipe delete mode 100644 recipes/ibm_smarter_planet.recipe delete mode 100644 recipes/icons/f1_ultra.png delete mode 100644 recipes/icons/f_secure.png delete mode 100644 recipes/icons/favrskovavisen_dk.png delete mode 100644 recipes/icons/favrskovlokalavisen_dk.png delete mode 100644 recipes/icons/faznet.png delete mode 100644 recipes/icons/fc_knudde.png delete mode 100644 recipes/icons/fdb_pl.png delete mode 100644 recipes/icons/fe_india.png delete mode 100644 recipes/icons/felicia.png delete mode 100644 recipes/icons/fhm_uk.png delete mode 100644 recipes/icons/fhmro.png delete mode 100644 recipes/icons/fifty_two.png delete mode 100644 recipes/icons/fisco_oggi.png delete mode 100644 recipes/icons/fleshbot.png delete mode 100644 recipes/icons/folkebladet_dk.png delete mode 100644 recipes/icons/folkebladetdjursland_dk.png delete mode 100644 recipes/icons/folketidende_dk.png delete mode 100644 recipes/icons/forbes.png delete mode 100644 recipes/icons/forbes_india.png delete mode 100644 recipes/icons/forbes_pl.png delete mode 100644 recipes/icons/formulaas.png delete mode 100644 recipes/icons/forsal.png delete mode 100644 recipes/icons/fotoblogia_pl.png delete mode 100644 recipes/icons/fr_online.png delete mode 100644 recipes/icons/frankfurter_rundschau.png delete mode 100644 recipes/icons/freakonomics.png delete mode 100644 recipes/icons/fredensborglokalavisen_dk.png delete mode 100644 recipes/icons/fredericialokalavisen_dk.png delete mode 100644 recipes/icons/frederiksbergbladet_dk.png delete mode 100644 recipes/icons/frederikssundlokalavisen_dk.png delete mode 100644 recipes/icons/furesoelokalavisen_dk.png delete mode 100644 recipes/icons/gamasutra_fa.png delete mode 100644 recipes/icons/gamasutra_news.png delete mode 100644 recipes/icons/gamespot.png delete mode 100644 recipes/icons/gandul.png delete mode 100644 recipes/icons/gazeta_lubuska.png delete mode 100644 recipes/icons/gazeta_pl_bydgoszcz.png delete mode 100644 recipes/icons/gazeta_pl_szczecin.png delete mode 100644 recipes/icons/gazeta_pomorska.png delete mode 100644 recipes/icons/gazeta_wroclawska.png delete mode 100644 recipes/icons/gazeta_wspolczesna.png delete mode 100644 recipes/icons/gazeta_wyborcza.png delete mode 100644 recipes/icons/gcn.png delete mode 100644 recipes/icons/geek_poke.png delete mode 100644 recipes/icons/gentoftelokalavisen_dk.png delete mode 100644 recipes/icons/german_gov.png delete mode 100644 recipes/icons/gezgin_dergi.png delete mode 100644 recipes/icons/gildia_pl.png delete mode 100644 recipes/icons/gizmodo.png delete mode 100644 recipes/icons/glamour.png delete mode 100644 recipes/icons/glennbeck.png delete mode 100644 recipes/icons/glos_wielkopolski.png delete mode 100644 recipes/icons/go4it.png delete mode 100644 recipes/icons/goal.png delete mode 100644 recipes/icons/gofin_pl.png delete mode 100644 recipes/icons/good_to_know.png delete mode 100644 recipes/icons/googlemobileblog.png delete mode 100644 recipes/icons/grenaalokalavisen_dk.png delete mode 100644 recipes/icons/gribskovlokalavisen_dk.png delete mode 100644 recipes/icons/grrm.png delete mode 100644 recipes/icons/gs24_pl.png delete mode 100644 recipes/icons/gulfnews.png delete mode 100644 recipes/icons/haderslevlokalavisen_dk.png delete mode 100644 recipes/icons/hankyoreh.png delete mode 100644 recipes/icons/heavy_metal_it.png delete mode 100644 recipes/icons/heise_open.png delete mode 100644 recipes/icons/helsingin_sanomat.png delete mode 100644 recipes/icons/hindu_human_rights.png delete mode 100644 recipes/icons/hnonline.png delete mode 100644 recipes/icons/hoersholmlokalavisen_dk.png delete mode 100644 recipes/icons/hola.png delete mode 100644 recipes/icons/hollywood_reporter.png delete mode 100644 recipes/icons/hornsherredlokalavisen_dk.png delete mode 100644 recipes/icons/hotcity.png delete mode 100644 recipes/icons/hotnews.png delete mode 100644 recipes/icons/house_news.png delete mode 100644 recipes/icons/hrt.png delete mode 100644 recipes/icons/huffingtonpost.png delete mode 100644 recipes/icons/huffingtonpost_uk.png delete mode 100644 recipes/icons/hvidovreavis_dk.png delete mode 100644 recipes/icons/hvidovrelokalavisen_dk.png delete mode 100644 recipes/icons/ideal_almeria.png delete mode 100644 recipes/icons/ideal_granada.png delete mode 100644 recipes/icons/ideal_jaen.png delete mode 100644 recipes/icons/idg_se.png delete mode 100644 recipes/icons/iekspries.png delete mode 100644 recipes/icons/ihned.cz.png delete mode 100644 recipes/icons/ihned.png delete mode 100644 recipes/icons/il_foglio.png delete mode 100644 recipes/icons/iliteratura_cz.png delete mode 100644 recipes/icons/indy_star.png delete mode 100644 recipes/icons/infomotori.png delete mode 100644 recipes/icons/infoworld.png delete mode 100644 recipes/icons/infra_pl.png delete mode 100644 recipes/icons/inopressa.png delete mode 100644 recipes/icons/insider.png delete mode 100644 recipes/icons/io9.png delete mode 100644 recipes/icons/ionline_pt.png delete mode 100644 recipes/icons/ivanamilakovic.png delete mode 100644 recipes/ideal_almeria.recipe delete mode 100644 recipes/ideal_granada.recipe delete mode 100644 recipes/ideal_jaen.recipe delete mode 100644 recipes/idg_se.recipe delete mode 100644 recipes/iekspries.recipe delete mode 100644 recipes/ihned.cz.recipe delete mode 100644 recipes/ihned.recipe delete mode 100644 recipes/il_foglio.recipe delete mode 100644 recipes/il_giornale.recipe delete mode 100644 recipes/iliteratura_cz.recipe delete mode 100644 recipes/indy_star.recipe delete mode 100644 recipes/infomotori.recipe delete mode 100644 recipes/infoworld.recipe delete mode 100644 recipes/infra_pl.recipe delete mode 100644 recipes/inopressa.recipe delete mode 100644 recipes/insider.recipe delete mode 100644 recipes/io9.recipe delete mode 100644 recipes/ionline_pt.recipe delete mode 100644 recipes/ivanamilakovic.recipe diff --git a/recipes/f1_ultra.recipe b/recipes/f1_ultra.recipe deleted file mode 100644 index 030f8acf78..0000000000 --- a/recipes/f1_ultra.recipe +++ /dev/null @@ -1,40 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class f1ultra(BasicNewsRecipe): - title = u'Formuła 1 - F1 ultra' - __license__ = 'GPL v3' - __author__ = 'MrStefan , Artur Stachecki ' - language = 'pl' - description = u'Formuła 1, Robert Kubica, F3, GP2 oraz inne serie wyścigowe.' - masthead_url = 'http://www.f1ultra.pl/templates/f1ultra/images/logo.gif' - remove_empty_feeds = True - oldest_article = 1 - max_articles_per_feed = 100 - remove_javascript = True - no_stylesheets = True - - keep_only_tags = [(dict(name='div', attrs={'id': 'main'}))] - remove_tags_after = [ - dict(attrs={'style': 'margin-top:5px;margin-bottom:5px;display: inline;'})] - remove_tags = [ - (dict(attrs={'class': ['buttonheading', 'avPlayerContainer', 'createdate']}))] - remove_tags.append(dict(attrs={'title': ['PDF', 'Drukuj', 'Email']})) - remove_tags.append(dict(name='form', attrs={'method': 'post'})) - remove_tags.append(dict(name='hr', attrs={'size': '2'})) - - preprocess_regexps = [(re.compile(r'align="left"'), lambda match: ''), - (re.compile(r'align="right"'), lambda match: ''), - (re.compile(r'width=\"*\"'), lambda match: ''), - (re.compile(r'\'), lambda match: '')] - - extra_css = '''.contentheading { font-size: 1.4em; font-weight: bold; } - img { display: block; clear: both;} - ''' - remove_attributes = ['width', 'height', 'position', 'float', - 'padding-left', 'padding-right', 'padding', 'text-align'] - - feeds = [ - (u'F1 Ultra', u'http://www.f1ultra.pl/index.php?option=com_rd_rss&id=1&Itemid=245')] diff --git a/recipes/f_secure.recipe b/recipes/f_secure.recipe deleted file mode 100644 index 8b786acc8f..0000000000 --- a/recipes/f_secure.recipe +++ /dev/null @@ -1,23 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1301860159(BasicNewsRecipe): - title = u'F-Secure Weblog' - language = 'en' - __author__ = 'louhike' - description = u'All the news from the weblog of F-Secure' - publisher = u'F-Secure' - timefmt = ' [%a, %d %b, %Y]' - encoding = 'ISO-8859-1' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - remove_javascript = True - keep_only_tags = [dict(name='div', attrs={'class': 'modSectionTd2'})] - remove_tags = [dict(name='hr')] - - feeds = [(u'Weblog', u'http://www.f-secure.com/weblog/weblog.rss')] - - def get_cover_url(self): - return 'http://www.f-secure.com/weblog/archives/images/company_logo.png' diff --git a/recipes/favrskovavisen_dk.recipe b/recipes/favrskovavisen_dk.recipe deleted file mode 100644 index cb82bed688..0000000000 --- a/recipes/favrskovavisen_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 - -''' -Favrskov Avisen -''' - - -class FavrskovAvisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Favrskov Avisen' - description = 'Lokale og regionale nyheder' - category = 'newspaper, news, localnews, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Nyheder', 'http://dinby.dk/favrskov-avisen/rss'), - ] - diff --git a/recipes/favrskovlokalavisen_dk.recipe b/recipes/favrskovlokalavisen_dk.recipe deleted file mode 100644 index a74e8ac4d4..0000000000 --- a/recipes/favrskovlokalavisen_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 - -''' -Favrskovposten -''' - - -class FavrskovLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Favrskovposten' - description = 'Lokale og regionale nyheder, sport og kultur fra Favrskov og omegn på favrskov.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 Favrskovposten', 'http://favrskov.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Favrskovposten', 'http://favrskov.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Favrskovposten', 'http://favrskov.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Favrskovposten', 'http://favrskov.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Favrskovposten', 'http://favrskov.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Favrskovposten', 'http://favrskov.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/faznet.recipe b/recipes/faznet.recipe deleted file mode 100644 index cc59609f70..0000000000 --- a/recipes/faznet.recipe +++ /dev/null @@ -1,134 +0,0 @@ -# vim:fileencoding=utf-8 -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - -__license__ = 'GPL v3' -__copyright__ = '2008-2011, Kovid Goyal , Darko Miletic ' - - -class FazNet(BasicNewsRecipe): - # Version 9.1 - # Update 2022-05-29 - # Armin Geller - # new page layout - - title = 'FAZ.NET' - __author__ = 'Kovid Goyal, Darko Miletic, Armin Geller' - description = 'Frankfurter Allgemeine Zeitung' - publisher = 'Frankfurter Allgemeine Zeitung GmbH' - category = 'news, politics, Germany' - - encoding = 'utf-8' - language = 'de' - - max_articles_per_feed = 30 - no_stylesheets = True - remove_javascript = True - - extra_css = ''' - .atc-headlineemphasis, h1, h2 {font-size:1.6em; text-align:left} - .atc-HeadlineEmphasisText {font-size:0.6em; text-align:left; display:block; text-transform:uppercase;} - .atc-IntroText {font-size:1em; font-style:italic; font-weight:bold;margin-bottom:1em} - h3 {font-size:1.3em;text-align:left} - h4, h5, h6 {font-size:1em;text-align:left} - .textbox-wide {font-size:1.3em; font-style:italic} - .atc-ImageDescriptionText, .atc-ImageDescriptionCopyright {font-size: 0.75em; font-style:italic; font-weight:normal} - .atc-MetaItem { - font-size:0.6em; font-weight:normal; margin-bottom:0.75em; text-align:left; - list-style-type:none; text-transform:uppercase; display:inline-block} - .aut-Teaser_Avatar {font-size:0.6em; font-weight:bold; margin-bottom:0.75em; text-align:left} - .aut-Teaser_Name {font-size:0.6em; font-weight:bold; margin-bottom:0.75em; float:left; text-align:left} - .aut-Teaser_Description {font-size:0.6em; font-weight: normal; margin-bottom:0.75em; text-align:left; display:block} - .atc-Footer{font-size:0.6em; font-weight: normal; margin-bottom:0.75em; display:block} - ''' - - keep_only_tags = [dict(name='article', attrs={'class':'atc'}), - dict(name='div', attrs={'id':'FAZContent'}) - ] - - remove_tags_after = [dict(name='article', attrs={'class':'atc'})] - - remove_tags = [ - dict(name='div', attrs={'class':[ - 'atc-ContainerSocialMedia', - 'atc-ContainerFunctions_Interaction ', - 'ctn-PlaceholderContent ctn-PlaceholderContent-is-in-article-medium', - 'ctn-PlaceholderContent ctn-PlaceholderContent-is-in-article-medium ctn-PlaceholderContent-has-centered-content', - 'ctn-PlaceholderBox ctn-PlaceholderBox-is-in-article-text-right', - 'ctn-PlaceholderContent ctn-PlaceholderContent-is-in-article-text-left ctn-PlaceholderContent-is-in-article-small', - 'aut-Follow aut-Follow-is-small-teaser', - 'aut-Follow aut-Follow-is-teaser', - 'js-ctn-PaywallTeasers ctn-PaywallTeasers', - 'ctn-PaywallInfo_TeaserImageContainer', - 'ctn-PaywallInfo_OfferContainer' - ]}), - dict(name='aside', attrs={'class':['atc-ContainerMore', - 'atc-ContainerMoreOneTeaser' - ]}), - dict(name='span', attrs={'class':['data-button', - 'o-VisuallyHidden' - ]}), - dict(name='a', attrs={'class':'btn-Base_Link'}) - ] - - feeds = [ - ('FAZ.NET Aktuell', 'http://www.faz.net/aktuell/?rssview=1'), - ('Politik', 'http://www.faz.net/aktuell/politik/?rssview=1'), - ('Wirtschaft', 'http://www.faz.net/aktuell/wirtschaft/?rssview=1'), - ('Feuilleton', 'http://www.faz.net/aktuell/feuilleton/?rssview=1'), - ('Sport', 'http://www.faz.net/aktuell/sport/?rssview=1'), - ('Lebensstil', 'http://www.faz.net/aktuell/lebensstil/?rssview=1'), - ('Gesellschaft', 'http://www.faz.net/aktuell/gesellschaft/?rssview=1'), - ('Finanzen', 'http://www.faz.net/aktuell/finanzen/?rssview=1'), - ('Technik & Motor', 'http://www.faz.net/aktuell/technik-motor/?rssview=1'), - ('Wissen', 'http://www.faz.net/aktuell/wissen/?rssview=1'), - ('Reise', 'http://www.faz.net/aktuell/reise/?rssview=1'), - ('Beruf & Chance', 'http://www.faz.net/aktuell/beruf-chance/?rssview=1'), - ('Rhein-Main', 'http://www.faz.net/aktuell/rhein-main/?rssview=1') - ] - - # For multipages: - - INDEX = '' - - def append_page(self, soup, appendtag, position): - pager = soup.find('li',attrs={'class':'nvg-Paginator_Item nvg-Paginator_Item-to-next-page'}) - if pager: - nexturl = self.INDEX + pager.a['href'] - soup2 = self.index_to_soup(nexturl) - texttag = soup2.find('article', attrs={'class':'atc'}) - for cls in ( - 'atc-Header', - 'atc-ContainerMore', - 'atc-ContainerFunctions_Interaction', - 'aut-Follow aut-Follow-is-small-teaser', - 'aut-Follow aut-Follow-is-teaser' - ): - div = texttag.find(attrs={'class':cls}) - if div is not None: - div.extract() - newpos = len(texttag.contents) - self.append_page(soup2,texttag,newpos) - texttag.extract() - pager.extract() - appendtag.insert(position,texttag) - - # Find images - - def preprocess_html(self, soup): - self.append_page(soup, soup.body, 3) - for img in soup.findAll('img', attrs={'data-retina-src':True}): - img['src'] = img['data-retina-src'] - for img in soup.findAll('img', attrs={'data-src':True}): - img['src'] = img['data-src'] - return self.adeify_images(soup) - - # Some last cleanup - - def postprocess_html(self, soup, first_fetch): - for div in soup.findAll('div',attrs={'class':['atc-ContainerFunctions js-som-Abbinder', - 'ctn-PlaceholderContent ctn-PlaceholderContent-is-in-article-medium' - ]}): - div.extract() - return soup diff --git a/recipes/fc_knudde.recipe b/recipes/fc_knudde.recipe deleted file mode 100644 index 6febdbd972..0000000000 --- a/recipes/fc_knudde.recipe +++ /dev/null @@ -1,21 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1347706704(BasicNewsRecipe): - title = u'FC Knudde' - __author__ = u'DrMerry' - description = u'FC Knudde de populaire sport 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://a1.mzstatic.com/us/r1000/035/Purple/be/33/70/mzl.qkvshinq.320x480-75.jpg' - 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'}) - use_embedded_content = True - extra_css = 'img{border:0;padding:0;margin:0;width:100%}' - - feeds = [(u'FC Knudde', u'http://www.nusport.nl/feeds/rss/fc-knudde.rss')] diff --git a/recipes/fdb_pl.recipe b/recipes/fdb_pl.recipe deleted file mode 100644 index 3dbd074f1a..0000000000 --- a/recipes/fdb_pl.recipe +++ /dev/null @@ -1,47 +0,0 @@ -__license__ = 'GPL v3' -from calibre.web.feeds.news import BasicNewsRecipe - - -class FDBPl(BasicNewsRecipe): - title = u'Fdb.pl' - __author__ = 'fenuks' - description = u'Wiadomości ze świata filmu, baza danych filmowych, recenzje, zwiastuny, boxoffice.' - category = 'film' - language = 'pl' - extra_css = '.options-left > li {display: inline;} em {display: block;}' - cover_url = 'https://i1.fdbimg.pl/hygg2xp1/480x300_magq39.jpg' - use_embedded_content = False - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - remove_empty_feeds = True - remove_javascript = True - remove_attributes = ['style', 'font'] - ignore_duplicate_articles = {'title', 'url'} - - keep_only_tags = [dict(attrs={'class': ['row justify-content-center', 'figure']})] - remove_tags = [ - dict(attrs={'class': ['news-footer infinite-scroll-breakepoit', 'list-inline text-muted m-0']})] - feeds = [] - - def parse_index(self): - feeds = [] - feeds.append((u'Wiadomości', self.get_articles( - 'https://fdb.pl/wiadomosci?page={0}', 2))) - return feeds - - def get_articles(self, url, pages=1): - articles = [] - for nr in range(1, pages + 1): - soup = self.index_to_soup(url.format(nr)) - for tag in soup.findAll(attrs={'class': 'col-xs-6 col-sm-4 col-md-4 col-lg-3'}): - node = tag.find('h5') - title = node.a.string - url = node.a['href'] - date = '' - articles.append({'title': title, - 'url': url, - 'date': date, - 'description': '' - }) - return articles diff --git a/recipes/fe_india.recipe b/recipes/fe_india.recipe deleted file mode 100644 index 1c835cb6e2..0000000000 --- a/recipes/fe_india.recipe +++ /dev/null @@ -1,75 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -financialexpress.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict(attrs={ - 'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class FE_India(BasicNewsRecipe): - title = 'The Financial Express' - __author__ = 'Darko Miletic' - description = 'Financial news from India' - publisher = 'The Indian Express Limited' - category = 'news, politics, finances, India' - oldest_article = 2 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = False - language = 'en_IN' - remove_empty_feeds = True - ignore_duplicate_articles = {'url'} - publication_type = 'magazine' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - keep_only_tags = [classes('wp-block-post-title wp-block-post-excerpt ie-network-post-meta-wrapper wp-block-post-featured-image wp-block-post-content')] - remove_tags = [classes('parent_also_read')] - remove_attributes = ['width', 'height'] - - feeds = [ - # https://www.financialexpress.com/syndication/ - # Print feeds - ('Front Page','https://www.financialexpress.com/print/front-page/feed/'), - ('Corporate Markets','https://www.financialexpress.com/print/corporate-markets/feed/'), - ('Economy','https://www.financialexpress.com/print/economy-print/feed/'), - ('Opinion','https://www.financialexpress.com/print/edits-columns/feed/'), - ('personal Finance','https://www.financialexpress.com/print/personal-finance-print/feed/'), - # ('Brandwagon', 'https://www.financialexpress.com/print/brandwagon/feed/'), - # Other Feeds - ('Economy', 'https://www.financialexpress.com/economy/feed/'), - ('Banking & finance', 'https://www.financialexpress.com/industry/banking-finance/feed/'), - ('Opinion', 'https://www.financialexpress.com/opinion/feed/'), - ('Editorial', 'https://www.financialexpress.com/editorial/feed/'), - ('Budget', 'https://www.financialexpress.com/budget/feed/'), - ('Industry', 'https://www.financialexpress.com/industry/feed/'), - ('Market', 'https://www.financialexpress.com/market/feed/'), - ('Jobs', 'https://www.financialexpress.com/jobs/feed/'), - ('SME', 'https://www.financialexpress.com/industry/sme/feed/'), - ('Mutual Funds', 'https://www.financialexpress.com/money/mutual-funds/feed/'), - ('Health','https://www.financialexpress.com/lifestyle/health/feed'), - # ('Health Care','https://www.financialexpress.com/healthcare/feed'), - ('Science','https://www.financialexpress.com/lifestyle/science/feed'), - ('Infrastructure','https://www.financialexpress.com/infrastructure/feed'), - ('Money','https://www.financialexpress.com/money/feed'), - ] - - def get_cover_url(self): - soup = self.index_to_soup('https://www.magzter.com/IN/The-Indian-Express-Ltd./Financial-Express-Mumbai/Business/') - for citem in soup.findAll('meta', content=lambda s: s and s.endswith('view/3.jpg')): - return citem['content'] - - def preprocess_html(self, soup, *a): - for img in soup.findAll(attrs={'data-src': True}): - img['src'] = img['data-src'] - return soup diff --git a/recipes/felicia.recipe b/recipes/felicia.recipe deleted file mode 100644 index dc9cba5ebf..0000000000 --- a/recipes/felicia.recipe +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -revistafelicia.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Felicia(BasicNewsRecipe): - title = u'Revista Felicia' - __author__ = u'Silviu Cotoar\u0103' - description = u'O revist\u0103 pentru sufletul t\u0103u' - publisher = u'Revista Felicia' - oldest_article = 25 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Reviste' - encoding = 'utf-8' - cover_url = 'http://www.3waves.net/uploads/image/logo-revista-felicia_03.jpg' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'header'}), dict( - name='div', attrs={'id': 'contentArticol'}) - ] - - remove_tags = [ - dict(name='img', attrs={'src': ['http://www.revistafelicia.ro/templates/default/images/hdr_ultimul_nr.jpg']}), dict( - name='div', attrs={'class': ['content']}) - ] - - feeds = [ - (u'Feeds', u'http://www.revistafelicia.ro/rss') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/fhm_uk.recipe b/recipes/fhm_uk.recipe deleted file mode 100644 index 7c2ef76b4e..0000000000 --- a/recipes/fhm_uk.recipe +++ /dev/null @@ -1,45 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1325006965(BasicNewsRecipe): - title = u'FHM UK' - description = 'Good News for Men.' - cover_url = 'http://www.greatmagazines.co.uk/covers/large/w197/current/fhm.jpg' - # cover_url = 'http://profile.ak.fbcdn.net/hprofile-ak-snc4/373529_38324934806_64930243_n.jpg' - masthead_url = 'http://www.fhm.com/App_Resources/Images/Site/re-design/logo.gif' - __author__ = 'Dave Asbury' - # last updated 7/10/12 - language = 'en_GB' - oldest_article = 31 - max_articles_per_feed = 15 - remove_empty_feeds = True - no_stylesheets = True - - keep_only_tags = [ - dict(name='h1'), - dict(name='img', attrs={'id': 'ctl00_Body_imgMainImage'}), - dict(name='div', attrs={ - 'id': ['profileLeft', 'articleLeft', 'profileRight', 'profileBody']}), - dict(name='div', attrs={ - 'class': ['imagesCenterArticle', 'containerCenterArticle', 'articleBody', ]}), - - ] - - remove_tags = [ - dict(attrs={'id': ['ctl00_Body_divSlideShow']}), - - ] - feeds = [ - # repeatable search = {|}{%}{|}

{*}

- (u'Homepage', u'http://rss.feedsportal.com/c/375/f/434908/index.rss'), - (u'Funny', u'http://rss.feedsportal.com/c/375/f/434910/index.rss'), - (u'Girls', u'http://rss.feedsportal.com/c/375/f/434913/index.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:normal;font-size:small;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' diff --git a/recipes/fhmro.recipe b/recipes/fhmro.recipe deleted file mode 100644 index d4cafe4a5a..0000000000 --- a/recipes/fhmro.recipe +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -fhm.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class FHMro(BasicNewsRecipe): - title = u'FHM Ro' - __author__ = u'Silviu Cotoar\u0103' - description = u'Pentru c\u0103 noi putem' - publisher = 'FHM' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Reviste' - encoding = 'utf-8' - cover_url = 'http://www.fhm.com/App_Resources/Images/Site/re-design/logo.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'contentMainTitle'}), dict( - name='div', attrs={'class': 'entry'}) - ] - - remove_tags_after = [ - dict(name='div', attrs={'class': ['ratingblock ']}), dict( - name='a', attrs={'rel': ['tag']}) - ] - - remove_tags = [ - dict(name='div', attrs={'class': ['ratingblock ']}), dict( - name='div', attrs={'class': ['socialize-containter']}) - ] - - feeds = [ - (u'Feeds', u'http://www.fhm.ro/feed') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/fifty_two.recipe b/recipes/fifty_two.recipe deleted file mode 100644 index f1d8e9ec02..0000000000 --- a/recipes/fifty_two.recipe +++ /dev/null @@ -1,30 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe, classes - - -class fiftytwo(BasicNewsRecipe): - title = u'Fifty Two' - description = ('Every week, 52 publishes an essay that dives deep into an aspect of India’s history,' - ' politics and culture. Each story will explain, recall or establish something interesting ' - 'about life on our subcontinent, and tell readers why it matters to them.') - language = 'en_IN' - __author__ = 'unkn0wn' - oldest_article = 30 # days - max_articles_per_feed = 50 - encoding = 'utf-8' - use_embedded_content = False - no_stylesheets = True - remove_attributes = ['style', 'height', 'width'] - masthead_url = 'https://fiftytwo.in//img/52-logo.png' - # https://fiftytwo.in/img/favicon.png - ignore_duplicate_articles = {'url'} - extra_css = '.story-info, .story-notes, .story-intro {font-size:small; font-style:italic;}' - - keep_only_tags = [ - classes( - 'story-banner__container story-info story-slices story-notes' - ), - ] - - feeds = [ - ('Articles', 'https://fiftytwo.in/feed.xml'), - ] diff --git a/recipes/fisco_oggi.recipe b/recipes/fisco_oggi.recipe deleted file mode 100644 index 128241af77..0000000000 --- a/recipes/fisco_oggi.recipe +++ /dev/null @@ -1,27 +0,0 @@ -__license__ = 'GPL v3' -__author__ = 'faber1971' -description = 'Website of Italian Governament Income Agency (about revenue, taxation, taxes)- v1.00 (17, December 2011)' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1324112023(BasicNewsRecipe): - title = u'Fisco Oggi' - language = 'it' - __author__ = 'faber1971' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - remove_javascript = True - no_stylesheets = True - - feeds = [ - (u'Attualit\xe0', u'http://www.fiscooggi.it/taxonomy/term/1/feed'), - (u'Normativa', u'http://www.fiscooggi.it/taxonomy/term/5/feed'), - (u'Giurisprudenza', u'http://www.fiscooggi.it/taxonomy/term/8/feed'), - (u'Dati e statistiche', u'http://www.fiscooggi.it/taxonomy/term/12/feed'), - - (u'Analisi e commenti', u'http://www.fiscooggi.it/taxonomy/term/13/feed'), - (u'Bilancio e contabilit\xe0', u'http://www.fiscooggi.it/taxonomy/term/576/feed'), - (u'Dalle regioni', u'http://www.fiscooggi.it/taxonomy/term/16/feed'), - (u'Dal mondo', u'http://www.fiscooggi.it/taxonomy/term/17/feed')] diff --git a/recipes/fleshbot.recipe b/recipes/fleshbot.recipe deleted file mode 100644 index 28981ec9af..0000000000 --- a/recipes/fleshbot.recipe +++ /dev/null @@ -1,39 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, NA' -''' -fleshbot.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Fleshbot(BasicNewsRecipe): - title = 'Fleshbot' - __author__ = 'NA' - description = "Fleshbot, Pure Filth." - publisher = 'Fleshbot.com' - category = 'news, sex, sex industry, celebs, nudes, adult, adult toys, sex toys' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = True - language = 'en' - masthead_url = 'http://fbassets.s3.amazonaws.com/images/uploads/2012/01/fleshbot-logo.png' - extra_css = ''' - body{font-family: "Lucida Grande",Helvetica,Arial,sans-serif} - img{margin-bottom: 1em} - h1{font-family :Arial,Helvetica,sans-serif; font-size:large} - ''' - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - feeds = [(u'Articles', u'http://fleshbot.com/?feed=rss2')] - - remove_tags = [ - {'class': 'feedflare'}, - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/folkebladet_dk.recipe b/recipes/folkebladet_dk.recipe deleted file mode 100644 index 1f8e24a3e8..0000000000 --- a/recipes/folkebladet_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 - -''' -Folkebladet -''' - - -class Folkebladet_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Folkebladet' - description = 'Dine lokale nyheder på nettet' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Folkebladet', 'http://folkebladet.dk/feed/'), - ('Kommentarer', 'http://folkebladet.dk/comments/feed/'), - ] - diff --git a/recipes/folkebladetdjursland_dk.recipe b/recipes/folkebladetdjursland_dk.recipe deleted file mode 100644 index fdca400675..0000000000 --- a/recipes/folkebladetdjursland_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 - -''' -Folkebladet Djursland -''' - - -class FolkebladetDjursland_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Folkebladet Djursland' - description = 'Lokale og regionale nyheder' - category = 'newspaper, news, localnews, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Nyheder', 'http://dinby.dk/folkebladet-djursland/rss'), - ] - diff --git a/recipes/folketidende_dk.recipe b/recipes/folketidende_dk.recipe deleted file mode 100644 index 13b6041296..0000000000 --- a/recipes/folketidende_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 - -''' -folketidende.dk -''' - - -class Folketidende_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'folketidende.dk' - description = 'Lokalt nyhedssite, med nyheder og lokalstof om Lolland og Falster' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('folketidende.dk - Lolland & Falster samlet på et sted', 'http://folketidende.dk/rss-nyhedsbrev.xml'), - - ] - diff --git a/recipes/forbes.recipe b/recipes/forbes.recipe deleted file mode 100644 index 880af999dd..0000000000 --- a/recipes/forbes.recipe +++ /dev/null @@ -1,67 +0,0 @@ -from __future__ import absolute_import, division, print_function, unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict(attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class Forbes(BasicNewsRecipe): - title = u'Forbes' - description = 'Business and Financial News' - __author__ = 'Kovid Goyal' - oldest_article = 30 - max_articles_per_feed = 20 - language = 'en' - encoding = 'utf-8' - no_stylesheets = True - ignore_duplicate_articles = {'title', 'url'} - remove_empty_feeds = True - - extra_css = ''' - div.fb-captioned-img { - font-size: smaller; - margin-top: 1em; margin-bottom: 1em; - } - div.fb-captioned-img img { - display:block; - margin-left: auto; margin-right: auto; - } - ''' - feeds = [ - (u'Latest', u'https://www.forbes.com/news/index.xml'), - (u'Most Popular', u'https://www.forbes.com/feeds/popstories.xml'), - (u'Technology', u'https://www.forbes.com/technology/index.xml'), - (u'Business', u'https://www.forbes.com/business/index.xml'), - (u'Sports Money', u'https://www.forbes.com/sportsmoney/index.xml'), - (u'Leadership', u'https://www.forbes.com/leadership/index.xml'), - ] - - keep_only_tags = [ - classes('article-headline-container hero-image-block article-body bottom-contrib-block') - ] - - remove_tags = [ - classes('article-sharing'), - dict(name='button'), - ] - - def preprocess_html(self, soup): - h = soup.find(**classes('hero-image-block')) - if h is not None: - h1 = soup.find(**classes('article-headline-container')) - h.extract() - h1.append(h) - return soup - - def get_browser(self): - br = BasicNewsRecipe.get_browser(self) - br.set_cookie('dailyWelcomeCookie', 'true', '.forbes.com') - br.set_cookie('welcomeAd', 'true', '.forbes.com') - return br - - # def parse_index(self): - # return [('Articles', [{'title':'Test', 'url': - # 'http://www.forbes.com/sites/hamdiraini/2016/04/25/bazin-seeks-startups-to-accelerate-accorhotels-transformation/'}])] diff --git a/recipes/forbes_india.recipe b/recipes/forbes_india.recipe deleted file mode 100644 index 8b9f248a22..0000000000 --- a/recipes/forbes_india.recipe +++ /dev/null @@ -1,55 +0,0 @@ -from calibre.ptempfile import PersistentTemporaryFile -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1276934715(BasicNewsRecipe): - title = u'Forbes India' - __author__ = 'rty' - description = 'India Edition Forbes' - publisher = 'Forbes India' - category = 'Business News, Economy, India' - oldest_article = 7 - max_articles_per_feed = 100 - remove_javascript = True - use_embedded_content = False - no_stylesheets = True - language = 'en_IN' - temp_files = [] - articles_are_obfuscated = True - conversion_options = {'linearize_tables': True} - feeds = [ - (u'Contents', u'http://business.in.com/rssfeed/rss_all.xml'), - ] - extra_css = ''' - .t-10-gy-l{font-style: italic; font-size: small} - .t-30-b-d{font-weight: bold; font-size: xx-large} - .t-16-gy-l{font-weight: bold; font-size: x-large; font-syle: italic} - .storycontent{font-size: 4px;font-family: Times New Roman;} - ''' - - remove_tags_before = dict(name='div', attrs={'class': 'pdl10 pdr15'}) - - def get_obfuscated_article(self, url): - br = self.get_browser() - br.open(url) - response = br.follow_link(url_regex=r'/printcontent/[0-9]+', nr=0) - html = response.read() - self.temp_files.append(PersistentTemporaryFile('_fa.html')) - self.temp_files[-1].write(html) - self.temp_files[-1].close() - return self.temp_files[-1].name - - def get_cover_url(self): - index = 'http://business.in.com/magazine/' - soup = self.index_to_soup(index) - for image in soup.findAll('a', {"class": "lbOn a-9-b-d"}): - return image['href'] - # return image['href'] + '.jpg' - return None - - 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/forbes_pl.recipe b/recipes/forbes_pl.recipe deleted file mode 100644 index 5a7dbad559..0000000000 --- a/recipes/forbes_pl.recipe +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' - -import datetime -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class forbes_pl(BasicNewsRecipe): - title = u'Forbes.pl' - __author__ = 'Artur Stachecki ' - language = 'pl' - description = u'Biznes, finanse, gospodarka, strategie, wiadomości gospodarcze, analizy finasowe i strategiczne.' - oldest_article = 1 - index = 'http://www.forbes.pl' - cover_url = 'http://www.forbes.pl/resources/front/images/logo.png' - max_articles_per_feed = 100 - extra_css = '.Block-Photo {float:left; max-width: 300px; margin-right: 5px;}' - preprocess_regexps = [(re.compile(u'

()?(Czytaj|Zobacz) (też|także):.*?

', re.DOTALL), - lambda match: ''), (re.compile(u'Zobacz:.*?', re.DOTALL), lambda match: '')] - remove_javascript = True - no_stylesheets = True - now = datetime.datetime.now() - yesterday = now - datetime.timedelta(hours=24) - yesterday = yesterday.strftime("%d.%m.%Y %H:%M:%S") - pages_count = 4 - keep_only_tags = [dict(attrs={'class': [ - 'Block-Node Content-Article ', 'Block-Node Content-Article piano-closed']})] - remove_tags = [dict(attrs={'class': [ - 'Keywords Styled', 'twitter-share-button', 'Block-List-Related Block-List']})] - - feeds = [(u'Wszystkie', 'http://www.forbes.pl/rss')] - - '''def preprocess_html(self, soup): - self.append_page(soup, soup.body) - return soup - - - def append_page(self, soup, appendtag): - cleanup = False - nexturl = appendtag.find('a', attrs={'class':'next'}) - if nexturl: - cleanup = True - while nexturl: - soup2 = self.index_to_soup(self.index + nexturl['href']) - nexturl = soup2.find('a', attrs={'class':'next'}) - pagetext = soup2.findAll(id='article-body-wrapper') - if not pagetext: - pagetext = soup2.findAll(attrs={'class':'Article-Entry Styled'}) - for comment in pagetext.findAll(text=lambda text:isinstance(text, Comment)): - comment.extract() - pos = len(appendtag.contents) - appendtag.insert(pos, pagetext) - if cleanup: - for r in appendtag.findAll(attrs={'class':'paginator'}): - r.extract()''' diff --git a/recipes/formulaas.recipe b/recipes/formulaas.recipe deleted file mode 100644 index 802eefeab9..0000000000 --- a/recipes/formulaas.recipe +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -formula-as.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class FormulaAS(BasicNewsRecipe): - title = u'Formula AS' - __author__ = u'Silviu Cotoar\u0103' - publisher = u'Formula AS' - description = u'Formula AS' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Romania' - encoding = 'utf-8' - cover_url = 'http://www.formula-as.ro/_client/img/header_logo.png' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'item padded'}) - ] - - remove_tags = [ - dict(name='ul', attrs={'class': 'subtitle lower'}) - ] - - remove_tags_after = [ - dict(name='ul', attrs={'class': 'subtitle lower'}), - dict(name='div', attrs={'class': 'item-brief-options'}) - ] - feeds = [ - (u'\u0218tiri', u'http://www.formula-as.ro/rss/articole.xml') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/forsal.recipe b/recipes/forsal.recipe deleted file mode 100644 index 9ed97b0f76..0000000000 --- a/recipes/forsal.recipe +++ /dev/null @@ -1,51 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class ForsalPL(BasicNewsRecipe): - title = u'Forsal.pl' - __author__ = 'fenuks' - description = u'Na portalu finansowym Forsal.pl znajdziesz najświeższe wiadomości finansowe i analizy. Kliknij i poznaj aktualne kursy walut, notowania giełdowe oraz inne wiadomości ze świata finansów.' # noqa - category = 'economy, finance' - language = 'pl' - oldest_article = 7 - max_articles_per_feed = 100 - use_embedded_content = False - remove_empty_feeds = True - ignore_duplicate_articles = {'title', 'url'} - cover_url = 'http://www.bizneswnieruchomosciach.pl/wp-content/uploads/2010/07/logo_forsal.jpg' - no_stylesheets = True - remove_tags = [dict(name='div', attrs={'class': 'related'}), dict( - name='img', attrs={'title': 'Forsal'})] - feeds = [ - (u'Najnowsze', u'http://forsal.pl/atom/najnowsze'), - (u'Tylko na forsal.pl', u'http://forsal.pl/atom/tagi/forsal'), - (u'Publicystyka', u'http://forsal.pl/atom/tagi/opinia'), - (u'Bloomberg', u'http://forsal.pl/atom/tagi/bloomberg'), - (u'Financial Times', u'http://forsal.pl/atom/tagi/financial_times'), - (u'Gie\u0142da', u'http://forsal.pl/atom/tagi/gielda'), - (u'Waluty', u'http://forsal.pl/atom/tagi/waluty'), - (u'Surowce', u'http://forsal.pl/atom/tagi/surowce'), - (u'Komenarze finasnowe', u'http://forsal.pl/atom/tagi/komentarz'), - (u'Komentarze gie\u0142dowe', u'http://forsal.pl/atom/tagi/komentarz;gielda'), - (u'Komentarze walutowe', u'http://forsal.pl/atom/tagi/komentarz;waluty'), - - (u'Makroekonomia', u'http://forsal.pl/atom/tagi/makroekonomia'), - (u'Handel', u'http://forsal.pl/atom/tagi/handel'), - (u'Nieruchomo\u015bci', u'http://forsal.pl/atom/tagi/nieruchomosci'), - (u'Motoryzacja', u'http://forsal.pl/atom/tagi/motoryzacja'), - (u'Finanse', u'http://forsal.pl/atom/tagi/finanse'), - (u'Transport', u'http://forsal.pl/atom/tagi/transport'), - (u'Media', u'http://forsal.pl/atom/tagi/media'), - (u'Telekomunikacja', u'http://forsal.pl/atom/tagi/telekomunikacja'), - (u'Energetyka', u'http://forsal.pl/atom/tagi/energetyka'), - (u'Przemys\u0142', u'http://forsal.pl/atom/tagi/przemysl'), - (u'Moja firma', u'http://forsal.pl/atom/tagi/moja_firma')] - - def print_version(self, url): - url_id = re.search(u'/[0-9]+,', url) - if url_id: - return 'http://forsal.pl/drukowanie' + url_id.group(0)[:-1] - else: - return url diff --git a/recipes/fotoblogia_pl.recipe b/recipes/fotoblogia_pl.recipe deleted file mode 100644 index f72454aa33..0000000000 --- a/recipes/fotoblogia_pl.recipe +++ /dev/null @@ -1,18 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class Fotoblogia_pl(BasicNewsRecipe): - title = u'Fotoblogia.pl' - __author__ = 'fenuks' - description = u'Jeden z największych polskich blogów o fotografii.' - category = 'photography' - language = 'pl' - masthead_url = 'http://img.interia.pl/komputery/nimg/u/0/fotoblogia21.jpg' - cover_url = 'http://fotoblogia.pl/images/2009/03/fotoblogia2.jpg' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - keep_only_tags = [dict(name='article')] - remove_tags = [dict(attrs={'class': 'article-related'})] - feeds = [(u'Wszystko', u'http://fotoblogia.pl/feed/rss2')] diff --git a/recipes/fr_online.recipe b/recipes/fr_online.recipe deleted file mode 100644 index 85e415965e..0000000000 --- a/recipes/fr_online.recipe +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2010, Christian Schmitt' - -''' -fr-online.de -''' - -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class FROnlineRecipe(BasicNewsRecipe): - title = 'Frankfurter Rundschau' - __author__ = 'maccs' - description = 'Nachrichten aus D und aller Welt' - encoding = 'utf-8' - masthead_url = 'http://www.fr-online.de/image/view/-/1474018/data/823552/-/logo.png' - publisher = 'Druck- und Verlagshaus Frankfurt am Main GmbH' - category = 'news, germany, world' - language = 'de' - publication_type = 'newspaper' - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - oldest_article = 1 # Increase this number if you're interested in older articles - max_articles_per_feed = 50 # Seems a reasonable number to me - extra_css = ''' - body { font-family: "arial", "verdana", "geneva", sans-serif; font-size: 12px; margin: 0px; background-color: #ffffff;} - .imgSubline{background-color: #f4f4f4; font-size: 0.8em;} - .p--heading-1 {font-weight: bold;} - .calibre_navbar {font-size: 0.8em; font-family: "arial", "verdana", "geneva", sans-serif;} - ''' - remove_tags = [dict(name='div', attrs={'id': 'Logo'})] - cover_url = 'http://www.fr-online.de/image/view/-/1474018/data/823552/-/logo.png' - cover_margins = (100, 150, '#ffffff') - - feeds = [] - feeds.append( - ('Startseite', u'http://www.fr-online.de/home/-/1472778/1472778/-/view/asFeed/-/index.xml')) - feeds.append( - ('Politik', u'http://www.fr-online.de/politik/-/1472596/1472596/-/view/asFeed/-/index.xml')) - feeds.append( - ('Meinung', u'http://www.fr-online.de/politik/meinung/-/1472602/1472602/-/view/asFeed/-/index.xml')) - feeds.append( - ('Wirtschaft', u'http://www.fr-online.de/wirtschaft/-/1472780/1472780/-/view/asFeed/-/index.xml')) - feeds.append( - ('Sport', u'http://www.fr-online.de/sport/-/1472784/1472784/-/view/asFeed/-/index.xml')) - feeds.append(('Eintracht Frankfurt', - u'http://www.fr-online.de/sport/eintracht-frankfurt/-/1473446/1473446/-/view/asFeed/-/index.xml')) - feeds.append(('Kultur und Medien', - u'http://www.fr-online.de/kultur/-/1472786/1472786/-/view/asFeed/-/index.xml')) - feeds.append( - ('Panorama', u'http://www.fr-online.de/panorama/-/1472782/1472782/-/view/asFeed/-/index.xml')) - feeds.append( - ('Frankfurt', u'http://www.fr-online.de/frankfurt/-/1472798/1472798/-/view/asFeed/-/index.xml')) - feeds.append( - ('Rhein-Main', u'http://www.fr-online.de/rhein-main/-/1472796/1472796/-/view/asFeed/-/index.xml')) - feeds.append( - ('Hanau', u'http://www.fr-online.de/rhein-main/hanau/-/1472866/1472866/-/view/asFeed/-/index.xml')) - feeds.append( - ('Darmstadt', u'http://www.fr-online.de/rhein-main/darmstadt/-/1472858/1472858/-/view/asFeed/-/index.xml')) - feeds.append( - ('Wiesbaden', u'http://www.fr-online.de/rhein-main/wiesbaden/-/1472860/1472860/-/view/asFeed/-/index.xml')) - feeds.append( - ('Offenbach', u'http://www.fr-online.de/rhein-main/offenbach/-/1472856/1472856/-/view/asFeed/-/index.xml')) - feeds.append( - ('Bad Homburg', u'http://www.fr-online.de/rhein-main/bad-homburg/-/1472864/1472864/-/view/asFeed/-/index.xml')) - feeds.append( - ('Digital', u'http://www.fr-online.de/digital/-/1472406/1472406/-/view/asFeed/-/index.xml')) - feeds.append( - ('Wissenschaft', u'http://www.fr-online.de/wissenschaft/-/1472788/1472788/-/view/asFeed/-/index.xml')) - - def print_version(self, url): - return url.replace('index.html', 'view/printVersion/-/index.html') diff --git a/recipes/frankfurter_rundschau.recipe b/recipes/frankfurter_rundschau.recipe deleted file mode 100644 index 1eb8c348f1..0000000000 --- a/recipes/frankfurter_rundschau.recipe +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python - -''' -fr-online.de -''' - -from calibre.web.feeds.recipes import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict(attrs={ - 'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class FR(BasicNewsRecipe): - title = 'Frankfurter Rundschau' - __author__ = 'Kovid Goyal' - description = 'Nachrichten aus D und aller Welt' - language = 'de' - publication_type = 'newspaper' - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - oldest_article = 1 # Increase this number if you're interested in older articles - max_articles_per_feed = 50 # Seems a reasonable number to me - encoding = 'cp1252' - - keep_only_tags = [ - dict(id='fcms_page_main'), - ] - remove_tags = [ - dict(name='footer'), - dict(id='comments'), - ] - - feeds = [ - ('Startseite', u'http://www.fr.de/?_XML=rss'), - ('Frankfurt', u'https://www.fr.de/frankfurt/?_XML=rss'), - ('Rhein-Main', 'https://www.fr.de/rhein-main/?_XML=rss'), - ('Politik', 'https://www.fr.de/politik/?_XML=rss'), - ('Wirtschaft', 'https://www.fr.de/wirtschaft/?_XML=rss'), - ('Sport', 'https://www.fr.de/sport/?_XML=rss'), - ('Eintracht Frankfurt', 'https://www.fr.de/sport/eintracht/?_XML=rss'), - ('Kultur', 'https://www.fr.de/kultur/?_XML=rss'), - ('Wissen', 'https://www.fr.de/wissen/?_XML=rss'), - ('Leben', 'https://www.fr.de/leben/?_XML=rss'), - ('Panorama', 'https://www.fr.de/panorama/?_XML=rss'), - ] - - def preprocess_html(self, soup): - for img in soup.findAll('img', attrs={'data-src': True}): - img['src'] = img['data-src'] - main = soup.find(id='fcms_page_main') - for i, tag in tuple(enumerate(main)): - if getattr(tag, 'name', None): - main.replaceWith(tag) - break - return soup diff --git a/recipes/freakonomics.recipe b/recipes/freakonomics.recipe deleted file mode 100644 index 8b0ff9e840..0000000000 --- a/recipes/freakonomics.recipe +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python -__license__ = 'GPL v3' -__copyright__ = '2011, Starson17' -__docformat__ = 'restructuredtext en' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Freakonomics(BasicNewsRecipe): - title = 'Freakonomics Blog' - description = 'The Hidden side of everything' - __author__ = 'Starson17' - __version__ = '1.02' - __date__ = '11 July 2011' - language = 'en' - cover_url = 'http://ilkerugur.files.wordpress.com/2009/04/freakonomics.jpg' - use_embedded_content = False - no_stylesheets = True - oldest_article = 30 - remove_javascript = True - remove_empty_feeds = True - max_articles_per_feed = 50 - - feeds = [(u'Freakonomics Blog', u'http://www.freakonomics.com/feed/')] - keep_only_tags = [dict(name='div', attrs={'id': ['content']})] - remove_tags_after = [ - dict(name='div', attrs={'class': ['simple_socialmedia']})] - remove_tags = [dict(name='div', attrs={ - 'class': ['simple_socialmedia', 'single-fb-share', 'wp-polls']})] - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' diff --git a/recipes/fredensborglokalavisen_dk.recipe b/recipes/fredensborglokalavisen_dk.recipe deleted file mode 100644 index 6d636a08fe..0000000000 --- a/recipes/fredensborglokalavisen_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 - -''' -Uge-Nyt -''' - - -class FredensborgLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Uge-Nyt' - description = 'Uge-Nyt: Lokale og regionale nyheder, sport og kultur fra Fredensborg, Kokkedal og Humlebæk på fredensborg.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 Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Uge-Nyt', 'http://fredensborg.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/fredericialokalavisen_dk.recipe b/recipes/fredericialokalavisen_dk.recipe deleted file mode 100644 index 3fdf24d4c8..0000000000 --- a/recipes/fredericialokalavisen_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 Fredericia -''' - - -class FredericiaLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Fredericia' - description = 'Lokale og regionale nyheder, sport, kultur fra Fredericia og omegn på fredericia.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 Fredericia', 'http://fredericia.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Fredericia', 'http://fredericia.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Fredericia', 'http://fredericia.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Fredericia', 'http://fredericia.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Fredericia', 'http://fredericia.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Fredericia', 'http://fredericia.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/frederiksbergbladet_dk.recipe b/recipes/frederiksbergbladet_dk.recipe deleted file mode 100644 index d7d3f42b0c..0000000000 --- a/recipes/frederiksbergbladet_dk.recipe +++ /dev/null @@ -1,28 +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 - -''' -Frederiksberg Bladet -''' - - -class FrederiksbergBladet_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Frederiksberg Bladet' - - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - feeds = [ - ('Frederiksberg Bladet', 'http://minby.dk/frederiksberg-bladet/feed/'), - ('Kommentarer til Frederiksberg Bladet', 'http://minby.dk/frederiksberg-bladet/comments/feed/'), - - ] - diff --git a/recipes/frederikssundlokalavisen_dk.recipe b/recipes/frederikssundlokalavisen_dk.recipe deleted file mode 100644 index 80086f5ce2..0000000000 --- a/recipes/frederikssundlokalavisen_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 Frederikssund -''' - - -class FrederikssundLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Frederikssund' - description = 'Lokale, regionale nyheder, sport og kultur fra Frederikssund, Jægerspris og omegn på frederikssund.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 Frederikssund', 'http://frederikssund.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Frederikssund', 'http://frederikssund.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Frederikssund', 'http://frederikssund.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Frederikssund', 'http://frederikssund.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Frederikssund', 'http://frederikssund.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Frederikssund', 'http://frederikssund.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/freeway.recipe b/recipes/freeway.recipe deleted file mode 100644 index 76fc96a05c..0000000000 --- a/recipes/freeway.recipe +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__author__ = '2010, Gustavo Azambuja ' -''' -http://freeway.com.uy -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class General(BasicNewsRecipe): - title = 'freeway.com.uy' - __author__ = 'Gustavo Azambuja' - description = 'Revista Freeway, Montevideo, Uruguay' - language = 'es_UY' - timefmt = '[%a, %d %b, %Y]' - use_embedded_content = False - recursion = 1 - encoding = 'utf8' - remove_javascript = True - no_stylesheets = True - conversion_options = {'linearize_tables': True} - - oldest_article = 180 - max_articles_per_feed = 100 - keep_only_tags = [ - dict(id=['contenido']), - dict(name='a', attrs={'class': 'titulo_art_ppal'}), - dict(name='img', attrs={'class': 'recuadro'}), - dict(name='td', attrs={'class': 'txt_art_ppal'}) - ] - remove_tags = [ - dict(name=['object', 'link']) - ] - remove_attributes = ['width', 'height', 'style', 'font', 'color'] - - 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;} - img {float:left; clear:both; margin:10px} - p {font-family:Arial,Helvetica,sans-serif;} - ''' - - def parse_index(self): - feeds = [] - for title, url in [('Articulos', 'http://freeway.com.uy/revista/')]: - articles = self.art_parse_section(url) - if articles: - feeds.append((title, articles)) - return feeds - - def art_parse_section(self, url): - soup = self.index_to_soup(url) - div = soup.find(attrs={'id': 'tbl_1'}) - - current_articles = [] - for tag in div.findAllNext(attrs={'class': 'ancho_articulos'}): - if tag.get('class') == 'link-list-heading': - break - for td in tag.findAll('td'): - a = td.find('a', attrs={'class': 'titulo_articulos'}) - 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://freeway.com.uy' + url - p = td.find('p', attrs={'class': 'txt_articulos'}) - description = self.tag_to_string(p) - self.log('\t\tFound article:', title) - self.log('\t\t\t', url) - self.log('\t\t\t', description) - current_articles.append( - {'title': title, 'url': url, 'description': description, 'date': ''}) - - return current_articles - - 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 get_cover_url(self): - return 'http://freeway.com.uy/_upload/_n_foto_grande/noticia_1792_tapanoviembre2010.jpg' diff --git a/recipes/fstream.recipe b/recipes/fstream.recipe deleted file mode 100644 index 84745c7169..0000000000 --- a/recipes/fstream.recipe +++ /dev/null @@ -1,75 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class FIELDSTREAM(BasicNewsRecipe): - title = 'Field and Stream' - __author__ = 'Starson17 and Tonythebookworm' - description = 'Hunting and Fishing and Gun Talk' - language = 'en' - no_stylesheets = True - publisher = 'Starson17 and Tonythebookworm' - category = 'food recipes, hunting, fishing, guns' - use_embedded_content = False - no_stylesheets = True - oldest_article = 24 - remove_javascript = True - remove_empty_feeds = True - cover_url = 'http://www.arrowheadflyangler.com/Portals/1/Articles/FieldStream/Field%20and%20Stream%20March%20Fishing%20Edition%20Article%20Cover.jpg' # noqa - max_articles_per_feed = 10 - INDEX = 'http://www.fieldandstream.com' - - keep_only_tags = [ - dict(name='div', attrs={'class': ['article-wrapper']}), - ] - remove_tags = [ - dict(name='div', attrs={ - 'class': lambda x: x and 'content-main-bottom' in x.split()}), - dict(name='div', attrs={ - 'class': lambda x: x and 'pw-widget' in x.split()}), - ] - - def preprocess_html(self, soup): - for img in soup.findAll('img', attrs={'data-src': True}): - img['src'] = img['data-src'] - for form in soup.findAll('form'): - form.parent.extract() - return soup - - def parse_index(self): - feeds = [] - num = self.test[0] if self.test else 100 - for title, url in [ - ('Field Test', 'http://www.fieldandstream.com/blogs/field-test'), - (u"Wild Chef", u"http://www.fieldandstream.com/blogs/wild-chef"), - (u"The Gun Nuts", u"http://www.fieldandstream.com/blogs/gun-nut"), - (u"Whitetail 365", u"http://www.fieldandstream.com/blogs/whitetail-365"), - ('Field Notes', 'http://www.fieldandstream.com/blogs/field-notes'), - (u"Fly Talk", u"http://www.fieldandstream.com/blogs/flytalk"), - (u"The Conservationist", - u"http://www.fieldandstream.com/blogs/conservationist"), - ('The Lateral Line', 'http://www.fieldandstream.com/blogs/lateral-line'), - ('Total Outdoorsman', - 'http://www.fieldandstream.com/blogs/total-outdoorsman'), - ('A Sportsman\'s Life', - 'http://www.fieldandstream.com/blogs/a-sportsmans-life'), - ]: - self.log('Section:', title) - articles = self.make_links(url) - if articles: - feeds.append((title, articles)) - if len(feeds) > num: - break - return feeds - - def make_links(self, url): - current_articles = [] - soup = self.index_to_soup(url) - for item in soup.findAll('h2'): - link = item.find('a') - if link: - url = self.INDEX + link['href'] - title = self.tag_to_string(link) - self.log('\t', title, 'at', url) - current_articles.append( - {'title': title, 'url': url, 'description': '', 'date': ''}) - return current_articles diff --git a/recipes/furesoelokalavisen_dk.recipe b/recipes/furesoelokalavisen_dk.recipe deleted file mode 100644 index bede411a8a..0000000000 --- a/recipes/furesoelokalavisen_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 - -''' -Furesø Avis -''' - - -class FuresoeLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Furesø Avis' - description = 'Lokale og regionale nyheder, sport og kultur fra Farum, Værløse og Furesø på furesoe.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 Furesø Avis', 'http://furesoe.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Furesø Avis', 'http://furesoe.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Furesø Avis', 'http://furesoe.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Furesø Avis', 'http://furesoe.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Furesø Avis', 'http://furesoe.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Furesø Avis', 'http://furesoe.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/gamasutra_fa.recipe b/recipes/gamasutra_fa.recipe deleted file mode 100644 index ec0aba3948..0000000000 --- a/recipes/gamasutra_fa.recipe +++ /dev/null @@ -1,39 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -gamasutra.com -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gamasutra(BasicNewsRecipe): - title = 'Gamasutra Featured articles' - __author__ = 'Darko Miletic' - description = 'The Art and Business of Making Games' - publisher = 'Gamasutra' - category = 'news, games, IT' - oldest_article = 2 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'cp1252' - use_embedded_content = False - language = 'en' - remove_empty_feeds = True - masthead_url = 'http://www.gamasutra.com/images/gamasutra_logo.gif' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language, 'linearize_tables': True - } - - remove_tags_before = dict(name="div", attrs={'class': 'page_item'}) - remove_tags = [ - dict(name='meta'), dict(name='link'), dict(name='hr'), dict(name='div', attrs={'class': 'hide-phone'}), dict(name='div', attrs={'class': 'nav_links'}), - dict(name='div', attrs={'class': 'superfooter'}), dict(name='span', attrs={'class': 'comment_text'}), dict(name='a', attrs={'type': 'button'}) - ] - remove_attributes = ['width', 'height', 'name'] - - feeds = [ - (u'Feature Articles', u'http://feeds.feedburner.com/GamasutraFeatureArticles')] - - def print_version(self, url): - return url.partition('?')[0] + '?print=1' diff --git a/recipes/gamasutra_news.recipe b/recipes/gamasutra_news.recipe deleted file mode 100644 index 6a459b6dc5..0000000000 --- a/recipes/gamasutra_news.recipe +++ /dev/null @@ -1,40 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -gamasutra.com -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gamasutra(BasicNewsRecipe): - title = 'Gamasutra News' - __author__ = 'Darko Miletic' - description = 'The Art and Business of Making Games' - publisher = 'Gamasutra' - category = 'news, games, IT' - oldest_article = 2 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'cp1252' - use_embedded_content = False - language = 'en' - remove_empty_feeds = True - masthead_url = 'http://www.gamasutra.com/images/gamasutra_logo.gif' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language, 'linearize_tables': True - } - - remove_tags_before = dict(name="div", attrs={'class': 'page_item'}) - remove_tags = [ - dict(name='meta'), dict(name='link'), - dict(name='hr'), dict(name='div', attrs={'class': 'hide-phone'}), - dict(name='div', attrs={'class': 'nav_links'}), dict(name='div', attrs={'class': 'superfooter'}), - dict(name='span', attrs={'class': 'comment_text'}), dict(name='a', attrs={'type': 'button'}) - ] - remove_attributes = ['width', 'height', 'name'] - - feeds = [(u'News', u'http://feeds.feedburner.com/GamasutraNews')] - - def print_version(self, url): - return url.partition('?')[0] + '?print=1' diff --git a/recipes/gamespot.recipe b/recipes/gamespot.recipe deleted file mode 100644 index dd982b4e5d..0000000000 --- a/recipes/gamespot.recipe +++ /dev/null @@ -1,47 +0,0 @@ -__license__ = 'GPL v3' -__author__ = u'Marc Toensing' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class GamespotCom(BasicNewsRecipe): - - title = u'Gamespot.com Reviews' - description = 'review articles from gamespot.com' - language = 'en' - __author__ = u'Marc T\xf6nsing' - - oldest_article = 7 - max_articles_per_feed = 40 - remove_empty_feeds = True - no_stylesheets = True - no_javascript = True - - feeds = [ - ('All Reviews', 'http://www.gamespot.com/rss/game_updates.php?type=5'), - ('PC Reviews', 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=5'), - ('XBOX 360 Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1029'), - ('Wii Reviews', 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1031'), - ('PlayStation 3 Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1028'), - ('PlayStation 2 Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=7'), - ('PlayStation Portable Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1024'), - ('Nintendo DS Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1026'), - ('iPhone Reviews', - 'http://www.gamespot.com/rss/game_updates.php?type=5&platform=1049'), - ] - - remove_tags = [ - dict(name='div', attrs={'class': 'top_bar'}), - dict(name='div', attrs={'class': 'video_embed'}) - ] - - def get_cover_url(self): - return 'http://image.gamespotcdn.net/gamespot/shared/gs5/gslogo_bw.gif' - - def get_article_url(self, article): - return article.get('link') + '?print=1' diff --git a/recipes/gandul.recipe b/recipes/gandul.recipe deleted file mode 100644 index 5a29c28c20..0000000000 --- a/recipes/gandul.recipe +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -gandul.info -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gandul(BasicNewsRecipe): - title = u'G\u00E2ndul' - __author__ = u'Silviu Cotoar\u0103' - publisher = 'Gandul' - description = 'Cotidian Online' - 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://storage0.dms.mpinteractiv.ro/media/1/1/1706/1064063/1/logo.jpg?width=400' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'article'}) - ] - - remove_tags = [ - dict(name='a', attrs={'class': 'photo'}), dict( - name='div', attrs={'class': 'ad'}) - ] - - feeds = [ - (u'\u0218tiri', u'http://www.gandul.info/rss-stiri-prima-pagina.xml') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/gazeta_lubuska.recipe b/recipes/gazeta_lubuska.recipe deleted file mode 100644 index 4e749e2989..0000000000 --- a/recipes/gazeta_lubuska.recipe +++ /dev/null @@ -1,69 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GazetaLubuska(BasicNewsRecipe): - title = u'Gazeta Lubuska' - __author__ = 'fenuks' - description = u'Gazeta Lubuska - portal regionalny województwa lubuskiego.' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - extra_css = 'ul {list-style: none; padding:0; margin:0;}' - INDEX = 'http://www.gazetalubuska.pl' - masthead_url = INDEX + '/images/top_logo.png' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - feeds = [ - (u'Wszystkie', u'http://www.gazetalubuska.pl/rss.xml'), - (u'Dreznenko', u'http://www.gazetalubuska.pl/drezdenko.xml'), - (u'G\u0142og\xf3w', u'http://www.gazetalubuska.pl/glogow.xml'), - (u'Gorz\xf3w Wielkopolski', u'http://www.gazetalubuska.pl/gorzow-wielkopolski.xml'), - (u'Gubin', u'http://www.gazetalubuska.pl/gubin.xml'), - (u'Kostrzyn', u'http://www.gazetalubuska.pl/kostrzyn.xml'), - (u'Krosno Odrza\u0144skie', u'http://www.gazetalubuska.pl/krosno-odrzanskie.xml'), - (u'Lubsko', u'http://www.gazetalubuska.pl/lubsko.xml'), - (u'Mi\u0119dzych\xf3d', u'http://www.gazetalubuska.pl/miedzychod.xml'), - (u'Mi\u0119dzyrzecz', u'http://www.gazetalubuska.pl/miedzyrzecz.xml'), - (u'Nowa S\xf3l', u'http://www.gazetalubuska.pl/nowa-sol.xml'), - (u'S\u0142ubice', u'http://www.gazetalubuska.pl/slubice.xml'), - (u'Strzelce Kraje\u0144skie', u'http://www.gazetalubuska.pl/strzelce-krajenskie.xml'), - (u'Sulech\xf3w', u'http://www.gazetalubuska.pl/sulechow.xml'), - (u'Sul\u0119cin', u'http://www.gazetalubuska.pl/sulecin.xml'), - (u'\u015awi\u0119bodzin', u'http://www.gazetalubuska.pl/swiebodzin.xml'), - (u'Wolsztyn', u'http://www.gazetalubuska.pl/wolsztyn.xml'), - (u'Wschowa', u'http://www.gazetalubuska.pl/wschowa.xml'), - (u'Zielona G\xf3ra', u'http://www.gazetalubuska.pl/zielona-gora.xml'), - (u'\u017baga\u0144', u'http://www.gazetalubuska.pl/zagan.xml'), - (u'\u017bary', u'http://www.gazetalubuska.pl/zary.xml'), - (u'Sport', u'http://www.gazetalubuska.pl/sport.xml'), - (u'Auto', u'http://www.gazetalubuska.pl/auto.xml'), - (u'Dom', u'http://www.gazetalubuska.pl/dom.xml'), - (u'Praca', u'http://www.gazetalubuska.pl/praca.xml'), - (u'Zdrowie', u'http://www.gazetalubuska.pl/zdrowie.xml')] - - keep_only_tags = [dict(id='article')] - - def get_cover_url(self): - soup = self.index_to_soup( - self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') - nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] - soup = self.index_to_soup(nexturl) - self.cover_url = self.INDEX + \ - soup.find(id='cover').find(name='img')['src'] - return getattr(self, 'cover_url', self.cover_url) - - def decode_feedportal_url(self, url): - link = url.rpartition('l/0L0S')[2][:-12] - replaces = (('0B', '.'), ('0C', '/'), ('0H', ','), - ('0D', '?'), ('0F', '='), ('0A', '0'), ('0I', '_')) - for t in replaces: - link = link.replace(*t) - return 'http://' + link - - def print_version(self, url): - return self.decode_feedportal_url(url) + '&Template=printpicart' diff --git a/recipes/gazeta_pl_bydgoszcz.recipe b/recipes/gazeta_pl_bydgoszcz.recipe deleted file mode 100644 index dbc6fc0b78..0000000000 --- a/recipes/gazeta_pl_bydgoszcz.recipe +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' - -import re - -from calibre.ebooks.BeautifulSoup import Comment -from calibre.web.feeds.news import BasicNewsRecipe - - -class gw_bydgoszcz(BasicNewsRecipe): - title = u'Gazeta Wyborcza Bydgoszcz' - __author__ = 'fenuks' - language = 'pl' - description = 'Wiadomości z Bydgoszczy na portalu Gazeta.pl.' - category = 'newspaper' - publication_type = 'newspaper' - masthead_url = 'http://bi.gazeta.pl/im/3/4089/m4089863.gif' - INDEX = 'http://bydgoszcz.gazeta.pl' - cover_url = 'http://bi.gazeta.pl/i/hp/hp2009/logo.gif' - remove_empty_feeds = True - oldest_article = 3 - max_articles_per_feed = 100 - remove_javascript = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - # rules for gazeta.pl - preprocess_regexps = [ - (re.compile(u'Czytaj więcej.*', re.DOTALL), lambda m: '')] - keep_only_tags = [dict(id='gazeta_article')] - remove_tags = [dict(id=['gazeta_article_tools', 'gazeta_article_miniatures']), dict( - attrs={'class': ['mod mod_sociallist', 'c0', 'fb', 'voteNeedLogin']})] - remove_tags_after = dict(id='gazeta_article_body') - - feeds = [ - (u'Wiadomości', u'http://rss.feedsportal.com/c/32739/f/530239/index.rss')] - - def print_version(self, url): - if 'feedsportal.com' in url: - s = url.rpartition('gazeta0Bpl') - u = s[2] - if not s[0]: - u = url.rpartition('wyborcza0Bpl')[2] - u = u.replace('/l/', '/') - u = u.replace('/ia1.htm', '') - u = u.replace('0Dbo0F1', '') - u = u.replace('/story01.htm', '') - u = u.replace('0C', '/') - u = u.replace('A', '') - u = u.replace('0E', '-') - u = u.replace('0H', ',') - u = u.replace('0I', '_') - u = u.replace('0B', '.') - u = self.INDEX + u - return u - else: - return url - - def preprocess_html(self, soup): - tag = soup.find(id='Str') - if soup.find(attrs={'class': 'piano_btn_1'}): - return None - elif tag and tag.findAll('a'): - self.append_page(soup, soup.body) - return soup - - def append_page(self, soup, appendtag): - tag = soup.find('div', attrs={'id': 'Str'}) - try: - baseurl = soup.find(name='meta', attrs={ - 'property': 'og:url'})['content'] - except: - return 1 - link = tag.findAll('a')[-1] - while link: - soup2 = self.index_to_soup(baseurl + link['href']) - link = soup2.find('div', attrs={'id': 'Str'}).findAll('a')[-1] - if u'następne' not in link.string: - link = '' - pagetext = soup2.find(id='artykul') - comments = pagetext.findAll( - text=lambda text: isinstance(text, Comment)) - for comment in comments: - comment.extract() - pos = len(appendtag.contents) - appendtag.insert(pos, pagetext) - tag.extract() - - def image_url_processor(self, baseurl, url): - if url.startswith(' '): - return url.strip() - else: - return url diff --git a/recipes/gazeta_pl_szczecin.recipe b/recipes/gazeta_pl_szczecin.recipe deleted file mode 100644 index 9dd53619d1..0000000000 --- a/recipes/gazeta_pl_szczecin.recipe +++ /dev/null @@ -1,90 +0,0 @@ -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai - -import re - -from calibre.ebooks.BeautifulSoup import Comment -from calibre.web.feeds.news import BasicNewsRecipe - - -class GazetaPlSzczecin(BasicNewsRecipe): - title = u'Gazeta Wyborcza Szczecin' - description = u'Wiadomości ze Szczecina na portalu Gazeta.pl.' - __author__ = u'Michał Szkutnik' - __license__ = u'GPL v3' - language = 'pl' - publisher = 'Agora S.A.' - category = 'news, szczecin' - INDEX = 'http://szczecin.gazeta.pl' - cover_url = 'http://bi.gazeta.pl/i/hp/hp2009/logo.gif' - remove_empty_feeds = True - oldest_article = 3 - max_articles_per_feed = 100 - remove_javascript = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - # rules for gazeta.pl - preprocess_regexps = [ - (re.compile(u'Czytaj więcej.*', re.DOTALL), lambda m: '')] - keep_only_tags = [dict(id='gazeta_article')] - remove_tags = [dict(id=['gazeta_article_tools', 'gazeta_article_miniatures']), dict( - attrs={'class': ['mod mod_sociallist', 'c0', 'fb', 'voteNeedLogin']})] - remove_tags_after = dict(id='gazeta_article_body') - feeds = [(u'Wszystkie', u'http://rss.feedsportal.com/c/32739/f/530434/index.rss')] - - def print_version(self, url): - if 'feedsportal.com' in url: - s = url.rpartition('gazeta0Bpl') - u = s[2] - if not s[0]: - u = url.rpartition('wyborcza0Bpl')[2] - u = u.replace('/l/', '/') - u = u.replace('/ia1.htm', '') - u = u.replace('/story01.htm', '') - u = u.replace('0C', '/') - u = u.replace('A', '') - u = u.replace('0E', '-') - u = u.replace('0H', ',') - u = u.replace('0I', '_') - u = u.replace('0B', '.') - u = self.INDEX + u - return u - else: - return url - - def preprocess_html(self, soup): - tag = soup.find(id='Str') - if soup.find(attrs={'class': 'piano_btn_1'}): - return None - elif tag and tag.findAll('a'): - self.append_page(soup, soup.body) - return soup - - def append_page(self, soup, appendtag): - tag = soup.find('div', attrs={'id': 'Str'}) - try: - baseurl = soup.find(name='meta', attrs={ - 'property': 'og:url'})['content'] - except: - return 1 - link = tag.findAll('a')[-1] - while link: - soup2 = self.index_to_soup(baseurl + link['href']) - link = soup2.find('div', attrs={'id': 'Str'}).findAll('a')[-1] - if u'następne' not in link.string: - link = '' - pagetext = soup2.find(id='artykul') - comments = pagetext.findAll( - text=lambda text: isinstance(text, Comment)) - for comment in comments: - comment.extract() - pos = len(appendtag.contents) - appendtag.insert(pos, pagetext) - tag.extract() - - def image_url_processor(self, baseurl, url): - if url.startswith(' '): - return url.strip() - else: - return url diff --git a/recipes/gazeta_pomorska.recipe b/recipes/gazeta_pomorska.recipe deleted file mode 100644 index 0a4d2adebb..0000000000 --- a/recipes/gazeta_pomorska.recipe +++ /dev/null @@ -1,72 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GazetaPomorska(BasicNewsRecipe): - title = u'Gazeta Pomorska' - __author__ = 'Richard z forum.eksiazki.org, fenuks' - description = u'Gazeta Pomorska - portal regionalny' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - extra_css = 'ul {list-style: none; padding:0; margin:0;}' - INDEX = 'http://www.pomorska.pl' - masthead_url = INDEX + '/images/top_logo.png' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - feeds = [(u'Wszystkie', u'http://www.pomorska.pl/rss.xml'), - (u'Region', u'http://www.pomorska.pl/region.xml'), - (u'Bydgoszcz', u'http://www.pomorska.pl/bydgoszcz.xml'), - (u'Nakło', u'http://www.pomorska.pl/naklo.xml'), - (u'Koronowo', u'http://www.pomorska.pl/koronowo.xml'), - (u'Solec Kujawski', u'http://www.pomorska.pl/soleckujawski.xml'), - (u'Grudziądz', u'http://www.pomorska.pl/grudziadz.xml'), - (u'Inowrocław', u'http://www.pomorska.pl/inowroclaw.xml'), - (u'Toruń', u'http://www.pomorska.pl/torun.xml'), - (u'Włocławek', u'http://www.pomorska.pl/wloclawek.xml'), - (u'Aleksandrów Kujawski', - u'http://www.pomorska.pl/aleksandrow.xml'), - (u'Brodnica', u'http://www.pomorska.pl/brodnica.xml'), - (u'Chełmno', u'http://www.pomorska.pl/chelmno.xml'), - (u'Chojnice', u'http://www.pomorska.pl/chojnice.xml'), - (u'Ciechocinek', u'http://www.pomorska.pl/ciechocinek.xml'), - (u'Golub-Dobrzyń', u'http://www.pomorska.pl/golubdobrzyn.xml'), - (u'Mogilno', u'http://www.pomorska.pl/mogilno.xml'), - (u'Radziejów', u'http://www.pomorska.pl/radziejow.xml'), - (u'Rypin', u'http://www.pomorska.pl/rypin.xml'), - (u'Sępólno', u'http://www.pomorska.pl/sepolno.xml'), - (u'Świecie', u'http://www.pomorska.pl/swiecie.xml'), - (u'Tuchola', u'http://www.pomorska.pl/tuchola.xml'), - (u'Żnin', u'http://www.pomorska.pl/znin.xml'), - (u'Sport', u'http://www.pomorska.pl/sport.xml'), - (u'Zdrowie', u'http://www.pomorska.pl/zdrowie.xml'), - (u'Auto', u'http://www.pomorska.pl/moto.xml'), - (u'Dom', u'http://www.pomorska.pl/dom.xml'), - # (u'Reporta\u017c', u'http://www.pomorska.pl/reportaz.xml'), - (u'Gospodarka', u'http://www.pomorska.pl/gospodarka.xml')] - - keep_only_tags = [dict(id='article')] - - def get_cover_url(self): - soup = self.index_to_soup( - self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') - nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] - soup = self.index_to_soup(nexturl) - self.cover_url = self.INDEX + \ - soup.find(id='cover').find(name='img')['src'] - return getattr(self, 'cover_url', self.cover_url) - - def decode_feedportal_url(self, url): - link = url.rpartition('l/0L0S')[2][:-12] - replaces = (('0B', '.'), ('0C', '/'), ('0H', ','), - ('0D', '?'), ('0F', '='), ('0A', '0'), ('0I', '_')) - for t in replaces: - link = link.replace(*t) - return 'http://' + link - - def print_version(self, url): - return self.decode_feedportal_url(url) + '&Template=printpicart' diff --git a/recipes/gazeta_wroclawska.recipe b/recipes/gazeta_wroclawska.recipe deleted file mode 100644 index e4935d2511..0000000000 --- a/recipes/gazeta_wroclawska.recipe +++ /dev/null @@ -1,46 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GazetaWroclawska(BasicNewsRecipe): - title = u'Gazeta Wroc\u0142awska' - __author__ = 'fenuks' - description = u'Gazeta Regionalna Gazeta Wrocławska. Najnowsze Wiadomości Wrocław, Informacje Wrocław. Czytaj!' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/gazetawroclawska.png?24' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - remove_tags_after = dict(attrs={'src': 'http://nm.dz.com.pl/dz.png'}) - remove_tags = [dict(id='mat-podobne'), dict(name='a', attrs={ - 'class': 'czytajDalej'}), dict(attrs={'src': 'http://nm.dz.com.pl/dz.png'})] - - feeds = [ - (u'Fakty24', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533775/index.rss?201302'), - (u'Region', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_region.xml?201302'), - (u'Kultura', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533777/index.rss?201302'), - (u'Sport', u'http://gazetawroclawska.feedsportal.com/c/32980/f/533776/index.rss?201302'), - (u'Z archiwum', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_zarchiwum.xml?201302'), - - (u'M\xf3j reporter', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_mojreporter.xml?201302'), - (u'Historia', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_historia.xml?201302'), - (u'Listy do redakcji', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_listydoredakcji.xml?201302'), - (u'Na drogach', u'http://www.gazetawroclawska.pl/rss/gazetawroclawska_nadrogach.xml?201302')] - - def print_version(self, url): - return url.replace('artykul', 'drukuj') - - def skip_ad_pages(self, soup): - if 'Advertisement' in soup.title: - nexturl = soup.find('a')['href'] - return self.index_to_soup(nexturl, raw=True) - - def get_cover_url(self): - soup = self.index_to_soup( - 'http://www.prasa24.pl/gazeta/gazeta-wroclawska/') - self.cover_url = soup.find(id='pojemnik').img['src'] - return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/gazeta_wspolczesna.recipe b/recipes/gazeta_wspolczesna.recipe deleted file mode 100644 index 495c310e50..0000000000 --- a/recipes/gazeta_wspolczesna.recipe +++ /dev/null @@ -1,68 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GazetaWspolczesna(BasicNewsRecipe): - title = u'Gazeta Wsp\xf3\u0142czesna' - __author__ = 'fenuks' - description = u'Gazeta Współczesna - portal regionalny.' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - extra_css = 'ul {list-style: none; padding:0; margin:0;}' - INDEX = 'http://www.wspolczesna.pl' - masthead_url = INDEX + '/images/top_logo.png' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - feeds = [ - (u'Wszystkie', u'http://www.wspolczesna.pl/rss.xml'), - (u'August\xf3w', u'http://www.wspolczesna.pl/augustow.xml'), - (u'Bia\u0142ystok', u'http://www.wspolczesna.pl/bialystok.xml'), - (u'Bielsk Podlaski', u'http://www.wspolczesna.pl/bielsk.xml'), - (u'E\u0142k', u'http://www.wspolczesna.pl/elk.xml'), - (u'Grajewo', u'http://www.wspolczesna.pl/grajewo.xml'), - (u'Go\u0142dap', u'http://www.wspolczesna.pl/goldap.xml'), - (u'Hajn\xf3wka', u'http://www.wspolczesna.pl/hajnowka.xml'), - (u'Kolno', u'http://www.wspolczesna.pl/kolno.xml'), - (u'\u0141om\u017ca', u'http://www.wspolczesna.pl/lomza.xml'), - (u'Mo\u0144ki', u'http://www.wspolczesna.pl/monki.xml'), - (u'Olecko', u'http://www.wspolczesna.pl/olecko.xml'), - (u'Ostro\u0142\u0119ka', u'http://www.wspolczesna.pl/ostroleka.xml'), - (u'Powiat Bia\u0142ostocki', u'http://www.wspolczesna.pl/powiat.xml'), - (u'Sejny', u'http://www.wspolczesna.pl/sejny.xml'), - (u'Siemiatycze', u'http://www.wspolczesna.pl/siemiatycze.xml'), - (u'Sok\xf3\u0142ka', u'http://www.wspolczesna.pl/sokolka.xml'), - (u'Suwa\u0142ki', u'http://www.wspolczesna.pl/suwalki.xml'), - (u'Wysokie Mazowieckie', u'http://www.wspolczesna.pl/wysokie.xml'), - (u'Zambr\xf3w', u'http://www.wspolczesna.pl/zambrow.xml'), - (u'Sport', u'http://www.wspolczesna.pl/sport.xml'), - (u'Praca', u'http://www.wspolczesna.pl/praca.xml'), - (u'Dom', u'http://www.wspolczesna.pl/dom.xml'), - (u'Auto', u'http://www.wspolczesna.pl/auto.xml'), - (u'Zdrowie', u'http://www.wspolczesna.pl/zdrowie.xml')] - - keep_only_tags = [dict(id='article')] - - def get_cover_url(self): - soup = self.index_to_soup( - self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') - nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] - soup = self.index_to_soup(nexturl) - self.cover_url = self.INDEX + \ - soup.find(id='cover').find(name='img')['src'] - return getattr(self, 'cover_url', self.cover_url) - - def decode_feedportal_url(self, url): - link = url.rpartition('l/0L0S')[2][:-12] - replaces = (('0B', '.'), ('0C', '/'), ('0H', ','), - ('0D', '?'), ('0F', '='), ('0A', '0'), ('0I', '_')) - for t in replaces: - link = link.replace(*t) - return 'http://' + link - - def print_version(self, url): - return self.decode_feedportal_url(url) + '&Template=printpicart' diff --git a/recipes/gazeta_wyborcza.recipe b/recipes/gazeta_wyborcza.recipe deleted file mode 100644 index 9edcee6fb2..0000000000 --- a/recipes/gazeta_wyborcza.recipe +++ /dev/null @@ -1,126 +0,0 @@ -# -*- coding: utf-8 -*- -import re - -from calibre.ebooks.BeautifulSoup import Comment -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gazeta_Wyborcza(BasicNewsRecipe): - title = u'Gazeta Wyborcza' - __author__ = 'fenuks, Artur Stachecki' - language = 'pl' - description = 'Wiadomości z Polski i ze świata. Serwisy tematyczne i lokalne w 20 miastach.' - category = 'newspaper' - publication_type = 'newspaper' - # encoding = 'iso-8859-2' - masthead_url = 'http://bi.gazeta.pl/im/5/10285/z10285445AA.jpg' - INDEX = 'http://wyborcza.pl' - remove_empty_feeds = True - oldest_article = 3 - max_articles_per_feed = 100 - remove_javascript = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - - # rules for gazeta.pl - preprocess_regexps = [ - (re.compile(u'Czytaj więcej.*', re.DOTALL), lambda m: '')] - keep_only_tags = [dict(id='gazeta_article')] - remove_tags = [dict(id=['gazeta_article_tools', 'gazeta_article_miniatures']), dict( - attrs={'class': ['mod mod_sociallist', 'c0', 'fb', 'voteNeedLogin']})] - remove_tags_after = dict(id='gazeta_article_body') - - # rules for wyborcza.biz - preprocess_regexps.append((re.compile( - u'(
)?(
)? Czytaj (także|też):.*?\\.?
', re.DOTALL), lambda m: '')) - - feeds = [(u'Kraj', u'http://rss.feedsportal.com/c/32739/f/530266/index.rss'), - (u'\u015awiat', u'http://rss.feedsportal.com/c/32739/f/530270/index.rss'), - (u'Wyborcza.biz', u'http://wyborcza.biz/pub/rss/wyborcza_biz_wiadomosci.htm'), - (u'Komentarze', u'http://rss.feedsportal.com/c/32739/f/530312/index.rss'), - (u'Kultura', u'http://rss.gazeta.pl/pub/rss/gazetawyborcza_kultura.xml'), - (u'Nauka', u'http://rss.feedsportal.com/c/32739/f/530269/index.rss'), - (u'Opinie', u'http://rss.gazeta.pl/pub/rss/opinie.xml'), - (u'Gazeta \u015awi\u0105teczna', - u'http://rss.feedsportal.com/c/32739/f/530431/index.rss'), - (u'Du\u017cy Format', - u'http://rss.feedsportal.com/c/32739/f/530265/index.rss'), - (u'Witamy w Polsce', u'http://rss.feedsportal.com/c/32739/f/530476/index.rss'), - (u'M\u0119ska Muzyka', - u'http://rss.feedsportal.com/c/32739/f/530337/index.rss'), - (u'Lata Lec\u0105', u'http://rss.feedsportal.com/c/32739/f/530326/index.rss'), - (u'Solidarni z Tybetem', - u'http://rss.feedsportal.com/c/32739/f/530461/index.rss'), - (u'W pon. - \u017bakowski', - u'http://rss.feedsportal.com/c/32739/f/530491/index.rss'), - (u'We wt. - Kolenda-Zalewska', - u'http://rss.feedsportal.com/c/32739/f/530310/index.rss'), - (u'\u015aroda w \u015brod\u0119', - u'http://rss.feedsportal.com/c/32739/f/530428/index.rss'), - (u'W pi\u0105tek - Olejnik', - u'http://rss.feedsportal.com/c/32739/f/530364/index.rss'), - (u'Nekrologi', u'http://rss.feedsportal.com/c/32739/f/530358/index.rss') - ] - - def print_version(self, url): - if 'feedsportal.com' in url: - s = url.rpartition('wyborcza0Bpl') - u = s[2] - if not s[0]: - u = url.rpartition('gazeta0Bpl')[2] - u = u.replace('/l/', '/') - u = u.replace('/ia1.htm', '') - u = u.replace('/story01.htm', '') - u = u.replace('0C', '/') - u = u.replace('A', '') - u = u.replace('0E', '-') - u = u.replace('0H', ',') - u = u.replace('0I', '_') - u = u.replace('0B', '.') - u = self.INDEX + u - return u - else: - return url - - def preprocess_html(self, soup): - tag = soup.find(id='Str') - if soup.find(attrs={'class': 'piano_btn_1'}): - return None - elif tag and tag.findAll('a'): - self.append_page(soup, soup.body) - return soup - - def append_page(self, soup, appendtag): - tag = soup.find('div', attrs={'id': 'Str'}) - try: - baseurl = soup.find(name='meta', attrs={ - 'property': 'og:url'})['content'] - except: - return 1 - link = tag.findAll('a')[-1] - while link: - soup2 = self.index_to_soup(baseurl + link['href']) - link = soup2.find('div', attrs={'id': 'Str'}).findAll('a')[-1] - if u'następne' not in link.string: - link = '' - pagetext = soup2.find(id='artykul') - comments = pagetext.findAll( - text=lambda text: isinstance(text, Comment)) - for comment in comments: - comment.extract() - pos = len(appendtag.contents) - appendtag.insert(pos, pagetext) - tag.extract() - - def get_cover_url(self): - soup = self.index_to_soup('http://wyborcza.pl/0,76762,3751429.html') - cover = soup.find(attrs={'class': 'gallerycontent'}) - self.cover_url = cover.ul.li.a.img['src'].replace('P.jpg', '.jpg') - return getattr(self, 'cover_url', self.cover_url) - - def image_url_processor(self, baseurl, url): - if url.startswith(' '): - return url.strip() - else: - return url diff --git a/recipes/gcn.recipe b/recipes/gcn.recipe deleted file mode 100644 index f8522f98cb..0000000000 --- a/recipes/gcn.recipe +++ /dev/null @@ -1,64 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GCN(BasicNewsRecipe): - title = u'Gazeta Codziennej Nowiny' - __author__ = 'fenuks' - description = u'nowiny24.pl - portal regionalny województwa podkarpackiego.' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - extra_css = 'ul {list-style: none; padding:0; margin:0;}' - INDEX = 'http://www.nowiny24.pl' - masthead_url = INDEX + '/images/top_logo.png' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - ignore_duplicate_articles = {'title', 'url'} - remove_attributes = ['style'] - use_embedded_content = False - - feeds = [(u'Wszystkie', u'http://www.nowiny24.pl/rss.xml'), - (u'Podkarpacie', u'http://www.nowiny24.pl/podkarpacie.xml'), - (u'Bieszczady', u'http://www.nowiny24.pl/bieszczady.xml'), - (u'Rzeszów', u'http://www.nowiny24.pl/rzeszow.xml'), - (u'Przemyśl', u'http://www.nowiny24.pl/przemysl.xml'), - (u'Leżajsk', u'http://www.nowiny24.pl/lezajsk.xml'), - (u'Łańcut', u'http://www.nowiny24.pl/lancut.xml'), - (u'Dębica', u'http://www.nowiny24.pl/debica.xml'), - (u'Jarosław', u'http://www.nowiny24.pl/jaroslaw.xml'), - (u'Krosno', u'http://www.nowiny24.pl/krosno.xml'), - (u'Mielec', u'http://www.nowiny24.pl/mielec.xml'), - (u'Nisko', u'http://www.nowiny24.pl/nisko.xml'), - (u'Sanok', u'http://www.nowiny24.pl/sanok.xml'), - (u'Stalowa Wola', u'http://www.nowiny24.pl/stalowawola.xml'), - (u'Tarnobrzeg', u'http://www.nowiny24.pl/tarnobrzeg.xml'), - (u'Sport', u'http://www.nowiny24.pl/sport.xml'), - (u'Dom', u'http://www.nowiny24.pl/dom.xml'), - (u'Auto', u'http://www.nowiny24.pl/auto.xml'), - (u'Praca', u'http://www.nowiny24.pl/praca.xml'), - (u'Zdrowie', u'http://www.nowiny24.pl/zdrowie.xml'), - (u'Wywiady', u'http://www.nowiny24.pl/wywiady.xml')] - - keep_only_tags = [dict(id='article')] - - def get_cover_url(self): - soup = self.index_to_soup( - self.INDEX + '/apps/pbcs.dll/section?Category=JEDYNKI') - nexturl = self.INDEX + soup.find(id='covers').find('a')['href'] - soup = self.index_to_soup(nexturl) - self.cover_url = self.INDEX + \ - soup.find(id='cover').find(name='img')['src'] - return getattr(self, 'cover_url', self.cover_url) - - def decode_feedportal_url(self, url): - link = url.rpartition('l/0L0S')[2][:-12] - replaces = (('0B', '.'), ('0C', '/'), ('0H', ','), - ('0D', '?'), ('0F', '='), ('0A', '0'), ('0I', '_')) - for t in replaces: - link = link.replace(*t) - return 'http://' + link - - def print_version(self, url): - return self.decode_feedportal_url(url) + '&Template=printpicart' diff --git a/recipes/geek_poke.recipe b/recipes/geek_poke.recipe deleted file mode 100644 index 027532b1f3..0000000000 --- a/recipes/geek_poke.recipe +++ /dev/null @@ -1,80 +0,0 @@ -import re - -from calibre.utils.magick import Image, create_canvas -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1307556816(BasicNewsRecipe): - title = u'Geek and Poke' - __author__ = u'DrMerry' - description = u'Geek and Poke Cartoons' - publisher = u'Oliver Widder' - author = u'Oliver Widder, DrMerry (calibre-code), calibre' - oldest_article = 31 - max_articles_per_feed = 100 - language = u'en' - simultaneous_downloads = 1 - timefmt = ' [%a, %d %B, %Y]' - summary_length = -1 - no_stylesheets = True - category = 'News.IT, Cartoon, Humor, Geek' - use_embedded_content = False - cover_url = 'http://geekandpoke.typepad.com/aboutcoders.jpeg' - remove_javascript = True - remove_empty_feeds = True - publication_type = 'blog' - masthead_url = None - conversion_options = { - 'comments': '', 'tags': category, 'language': language, 'publisher': publisher, 'author': author - } - - remove_tags_before = dict(name='p', attrs={'class': 'content-nav'}) - remove_tags_after = dict(name='div', attrs={'class': 'entry-content'}) - remove_tags = [dict(name='div', attrs={'class': 'entry-footer'}), - dict(name='div', attrs={'id': 'alpha'}), - dict(name='div', attrs={'id': 'gamma'}), - dict(name='iframe'), - dict(name='p', attrs={'class': 'content-nav'})] - - filter_regexps = [(r'feedburner\.com'), - (r'pixel.quantserve\.com'), - (r'googlesyndication\.com'), - (r'yimg\.com'), - (r'scorecardresearch\.com')] - - preprocess_regexps = [ - (re.compile(r'(

( |\s)*

|]*>Tweet|]*>|||]*>[^<]*[^<]*)', re.DOTALL | re.IGNORECASE), lambda match: ''), - (re.compile(r'( |\s\s)+\s*', re.DOTALL | - re.IGNORECASE), lambda match: ' '), - (re.compile(r'(]*>)]>((?!', re.DOTALL | - re.IGNORECASE), lambda match: match.group(1) + match.group(2) + ''), - (re.compile(r'(]*alt="([^"]*)"[^>]*>)', re.DOTALL | re.IGNORECASE), - lambda match: '
' + match.group(2) + '
' + match.group(1) + '
'), - (re.compile(r'()+', re.DOTALL | - re.IGNORECASE), lambda match: '
'), - ] - - extra_css = 'body, h3, p, div, span{margin:0px; padding:0px} h3.entry-header{font-size: 0.8em} div.entry-body{font-size: 0.7em}' - - def postprocess_html(self, soup, first): - for tag in soup.findAll('img', src=True): - iurl = tag['src'] - img = Image() - img.open(iurl) - # print '***img is: ', iurl, '\n****width is: ', width, 'height is: - # ', height - img.trim(0) - # print '***TRIMMED img width is: ', width, 'height is: ', height - left = 0 - top = 0 - border_color = '#ffffff' - width, height = img.size - # print '***retrieved img width is: ', width, 'height is: ', height - height_correction = 1.17 - canvas = create_canvas( - width, height * height_correction, border_color) - canvas.compose(img, left, top) - canvas.save(iurl) - return soup - - feeds = ['http://feeds.feedburner.com/GeekAndPoke?format=xml'] diff --git a/recipes/gentoftelokalavisen_dk.recipe b/recipes/gentoftelokalavisen_dk.recipe deleted file mode 100644 index 1b023c11ca..0000000000 --- a/recipes/gentoftelokalavisen_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 - -''' -Villabyerne -''' - - -class GentofteLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Villabyerne' - description = 'Lokale og regionale nyheder, sport og kultur fra Gentofte, Hellerup og Charlottenlund på gentofte.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 Villabyerne', 'http://gentofte.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Villabyerne', 'http://gentofte.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Villabyerne', 'http://gentofte.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Villabyerne', 'http://gentofte.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Villabyerne', 'http://gentofte.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Villabyerne', 'http://gentofte.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/german_gov.recipe b/recipes/german_gov.recipe deleted file mode 100644 index 21fe87df16..0000000000 --- a/recipes/german_gov.recipe +++ /dev/null @@ -1,31 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class GermanGovernmentPress(BasicNewsRecipe): - title = u'Pressemitteilungen der Bundesregierung' - oldest_article = 14 - __author__ = 'malfi' - max_articles_per_feed = 100 - no_stylesheets = True - cover_url = 'http://www.bundesregierung.de/static/images/logoBR.gif' - language = 'de' - keep_only_tags = [] - keep_only_tags.append(dict(name='h2')) - keep_only_tags.append(dict(name='div', attrs={'class': 'textblack'})) - keep_only_tags.append(dict(name='div', attrs={'class': 'subtitle'})) - keep_only_tags.append(dict(name='div', attrs={'class': 'text'})) - remove_tags = [] - feeds = [ - (u'Pressemitteilungen', u'http://www.bundesregierung.de/Webs/Breg/DE/Service/RSS/Functions/bundesregierungPressemitteilungenRSS20,templateId=renderNewsfeed.rdf')] # noqa - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:small;} - p{font-family:Arial,Helvetica,sans-serif;font-size:small;} - body{font-family:Helvetica,Arial,sans-serif;font-size:small;} - ''' - - def print_version(self, url): - m = re.search(r'^(.*).html$', url) - return str(m.group(1)) + ',layoutVariant=Druckansicht.html' diff --git a/recipes/gezgin_dergi.recipe b/recipes/gezgin_dergi.recipe deleted file mode 100644 index 9dff4e0cae..0000000000 --- a/recipes/gezgin_dergi.recipe +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class BasicUserRecipe1390492898(BasicNewsRecipe): - title = u'Gezgin Dergi' - __author__ = 'asalet_r' - language = 'tr' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - - feeds = [(u'Gezgin Dergi', u'http://www.gezgindergi.com/feed/')] diff --git a/recipes/gildia_pl.recipe b/recipes/gildia_pl.recipe deleted file mode 100644 index dc349ee206..0000000000 --- a/recipes/gildia_pl.recipe +++ /dev/null @@ -1,72 +0,0 @@ -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gildia(BasicNewsRecipe): - title = u'Gildia.pl' - __author__ = 'fenuks' - description = u'Fantastyczny Portal Kulturalny - newsy, recenzje, galerie, wywiady. Literatura, film, gry komputerowe i planszowe, komiks, RPG, sklep. Nie lekceważ potęgi wyobraźni!' # noqa - cover_url = 'http://www.film.gildia.pl/_n_/portal/redakcja/logo/logo-gildia.pl-500.jpg' - category = 'culture' - cover_url = 'http://portal.gildia.pl/images/logo-main.png' - language = 'pl' - oldest_article = 8 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - preprocess_regexps = [(re.compile(u''), lambda match: '')] - ignore_duplicate_articles = {'title', 'url'} - remove_tags = [dict(name='div', attrs={'class': [ - 'backlink', 'im_img', 'addthis_toolbox addthis_default_style', 'banner-bottom']})] - keep_only_tags = [dict(name='div', attrs={'class': 'widetext'}), dict(name='article', attrs={'id': re.compile(r'post-\d+')})] - feeds = [(u'Gry', u'http://www.gry.gildia.pl/rss'), - (u'Literatura', u'http://www.literatura.gildia.pl/rss'), - (u'Film', u'http://www.film.gildia.pl/rss'), - (u'Horror', u'http://www.horror.gildia.pl/rss'), - (u'Konwenty', u'http://www.konwenty.gildia.pl/rss'), - (u'Plansz\xf3wki', u'http://www.planszowki.gildia.pl/rss'), - (u'Manga i anime', u'http://www.manga.gildia.pl/rss'), - (u'Star Wars', u'http://www.starwars.gildia.pl/rss'), - (u'Techno', u'http://www.techno.gildia.pl/rss'), - (u'Historia', u'http://www.historia.gildia.pl/rss'), - (u'Magia', u'http://www.magia.gildia.pl/rss'), - (u'Bitewniaki', u'http://www.bitewniaki.gildia.pl/rss'), - (u'RPG', u'http://www.rpg.gildia.pl/rss'), - (u'LARP', u'http://www.larp.gildia.pl/rss'), - (u'Muzyka', u'http://www.muzyka.gildia.pl/rss'), - (u'Nauka', u'http://www.nauka.gildia.pl/rss'), - ] - - def skip_ad_pages(self, soup): - content = soup.find('div', attrs={'class': 'news'}) - if content is None: - return - - words = ('recenzj', 'zapowied', 'fragmen', - 'relacj', 'wywiad', 'nominacj') - document_title = soup.title.renderContents().decode('utf-8').lower() - for word in words: - if word in document_title: - for link in content.findAll(name='a'): - if word in link['href'] or (link.string and word in link.string): - return self.index_to_soup(link['href'], raw=True) - for tag in content.findAll(name='a', href=re.compile('/publicystyka/')): - if 'Więcej...' == tag.string: - return self.index_to_soup(tag['href'], raw=True) - - def preprocess_html(self, soup): - title = soup.title.renderContents().decode('utf-8').lower() - for a in soup('a', href=True): - if not a['href'].startswith('http'): - if '/gry/' in a['href']: - a['href'] = 'http://www.gry.gildia.pl' + a['href'] - elif u'książk' in title or u'komiks' in title: - a['href'] = 'http://www.literatura.gildia.pl' + a['href'] - elif u'komiks' in title: - a['href'] = 'http://www.literatura.gildia.pl' + a['href'] - else: - a['href'] = 'http://www.gildia.pl' + a['href'] - return soup diff --git a/recipes/gizmodo.recipe b/recipes/gizmodo.recipe deleted file mode 100644 index 01430e87d7..0000000000 --- a/recipes/gizmodo.recipe +++ /dev/null @@ -1,36 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -gizmodo.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Gizmodo(BasicNewsRecipe): - title = 'Gizmodo' - __author__ = 'Darko Miletic' - description = "Gizmodo, the gadget guide. So much in love with shiny new toys, it's unnatural." - publisher = 'gizmodo.com' - category = 'news, IT, Internet, gadgets' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = True - language = 'en' - masthead_url = 'http://cache.gawkerassets.com/assets/gizmodo.com/img/logo.png' - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - feeds = [(u'Articles', u'http://feeds.gawker.com/gizmodo/vip?format=xml')] - - remove_tags = [ - {'class': 'feedflare'}, - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/glamour.recipe b/recipes/glamour.recipe deleted file mode 100644 index d53edb4176..0000000000 --- a/recipes/glamour.recipe +++ /dev/null @@ -1,36 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1305547242(BasicNewsRecipe): - title = u'Glamour (US)' - oldest_article = 21 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - language = 'en' - remove_javascript = True - __author__ = 'Anonymous' - auto_cleanup = True - - feeds = [ - (u'All Fashion', - u'http://feeds.glamour.com/glamour/all_fashion'), - (u'All Beauty', - u'http://feeds.glamour.com/glamour/all_beauty'), - (u'All Sex, Love & Life', - u'http://feeds.glamour.com/glamour/sex_love_life'), - (u'All Health & Fitness', - u'http://feeds.glamour.com/glamour/health_fitness'), - (u'Slaves to Fashion blog', - u'http://feeds.glamour.com/glamour/slavestofashion'), - (u'The Girls in the Beauty Department', - u'http://feeds.glamour.com/glamour/thegirlsinthebeautydepartment'), - (u'Smitten blog', - u'http://feeds.glamour.com/glamour/smitten'), - (u'Save the Date', - u'http://feeds.feedburner.com/glamour/save-the-date'), - (u'Save the Date', - u'http://feeds.feedburner.com/glamour/save-the-date'), - (u'Vitamin G blog', - u'http://feeds.glamour.com/glamour/vitamin-g'), - ] diff --git a/recipes/glennbeck.recipe b/recipes/glennbeck.recipe deleted file mode 100644 index 3ce2362812..0000000000 --- a/recipes/glennbeck.recipe +++ /dev/null @@ -1,100 +0,0 @@ -from calibre.ebooks.BeautifulSoup import BeautifulSoup, Comment, 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 GlennBeckRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'kwetal' - language = 'en' - version = 1 - - title = u'Glenn Beck' - publisher = u'Premiere Radio Networks' - category = u'News, Opinion' - description = u'The fusion of entertainment and enlightenment' - - oldest_article = 7 - max_articles_per_feed = 100 - - no_stylesheets = True - remove_javascript = True - use_embedded_content = False - - feeds = [(u'Glenn Beck', u'http://feeds.feedburner.com/GlennBeckArticles')] - - def preprocess_html(self, soup): - # Their html is horribly broken; if we search for the div that has the content BeatifulSoup returns the div with only the headline and no content. - # This is due to illegal nesting of tags. So we do it the hard way. - - # We can find this one, and we don't want it. - div = soup.find('div', attrs={'id': 'extraInfo'}) - if div: - div.extract() - - # Don't want these either. - iframes = soup.findAll('iframe') - [iframe.extract() for iframe in iframes] - - # Get empty document. - freshSoup = self.getFreshSoup() - - # This is the broken div; but we can find the headline. - newsDiv = soup.find('div', attrs={'class': 'news-detail'}) - if newsDiv: - if newsDiv.h1: - freshSoup.body.append(newsDiv.h1) - - # The content is wrapped in

tags, most of the time anyway. - counter = 0 - for p in soup.findAll('p'): - if p.get('class') == 'smalltextwhite': - # But we don't want this one. - continue - - freshSoup.body.append(p) - counter += 1 - - # Debugging block - - # In some articles the content is not wrapped in

tags. In that case the counter is low. - # 2 is the magic number that seems to work. - if counter <= 2: - # So they are playing hard-to-get: first throw out all comments. - comments = soup.findAll( - text=lambda text: isinstance(text, Comment)) - [comment.extract() for comment in comments] - - # Find all unwrapped strings. - for txt in soup.findAll(text=True): - raw = txt.strip() - # Debugging line - - if (txt.parent.name == 'body' and len(raw) > 0) and not (len(raw) == 6 and raw == ' '): - # This is our content; ignore the rest. - para = new_tag(freshSoup, 'p') - para.append(raw) - freshSoup.body.append(para) - counter += 1 - - # Now if the counter is still 0 or 1 they did something completely - # different and we still have an empty article. In a last attempt, - # add the whole content div, just in case. - if counter < 2: - freshSoup.body.append(newsDiv) - - # Debugging block - - return freshSoup - - def getFreshSoup(self, title=None): - if title: - return BeautifulSoup('' + str(title) + '') - else: - return BeautifulSoup('') diff --git a/recipes/glos_wielkopolski.recipe b/recipes/glos_wielkopolski.recipe deleted file mode 100644 index 8bd140f1b2..0000000000 --- a/recipes/glos_wielkopolski.recipe +++ /dev/null @@ -1,45 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class GlosWielkopolski(BasicNewsRecipe): - title = u'G\u0142os Wielkopolski' - __author__ = 'fenuks' - description = u'Gazeta Regionalna Głos Wielkopolski. Najnowsze Wiadomości Poznań. Czytaj Informacje Poznań!' - category = 'newspaper' - language = 'pl' - encoding = 'iso-8859-2' - masthead_url = 'http://s.polskatimes.pl/g/logo_naglowek/gloswielkopolski.png?24' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - no_stylesheets = True - use_embedded_content = False - ignore_duplicate_articles = {'title', 'url'} - remove_tags_after = dict(attrs={'src': 'http://nm.dz.com.pl/dz.png'}) - remove_tags = [dict(id='mat-podobne'), dict(name='a', attrs={'class': 'czytajDalej'}), dict(attrs={ - 'src': 'http://nm.dz.com.pl/dz.png'}), dict(name='a', attrs={'href', 'http://www.gloswielkopolski.pl/newsletter/'})] - - feeds = [ - (u'Wszystkie', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533779/index.rss?201302'), - (u'Wiadomo\u015bci', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533780/index.rss?201302'), - (u'Sport', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533781/index.rss?201302'), - (u'Kultura', u'http://gloswielkopolski.feedsportal.com/c/32980/f/533782/index.rss?201302'), - (u'Porady', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_porady.xml?201302'), - (u'Blogi', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_blogi.xml?201302'), - (u'Nasze akcje', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_naszeakcje.xml?201302'), - (u'Opinie', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_opinie.xml?201302'), - (u'Magazyn', u'http://www.gloswielkopolski.pl/rss/gloswielkopolski_magazyn.xml?201302')] - - def print_version(self, url): - return url.replace('artykul', 'drukuj') - - def skip_ad_pages(self, soup): - if 'Advertisement' in soup.title: - nexturl = soup.find('a')['href'] - return self.index_to_soup(nexturl, raw=True) - - def get_cover_url(self): - soup = self.index_to_soup( - 'http://www.prasa24.pl/gazeta/glos-wielkopolski/') - self.cover_url = soup.find(id='pojemnik').img['src'] - return getattr(self, 'cover_url', self.cover_url) diff --git a/recipes/go4it.recipe b/recipes/go4it.recipe deleted file mode 100644 index 38bc9619c5..0000000000 --- a/recipes/go4it.recipe +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -go4it.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Go4ITro(BasicNewsRecipe): - title = u'go4it' - __author__ = u'Silviu Cotoar\u0103' - description = 'Gadgeturi, Lifestyle, Tehnologie' - publisher = 'go4it' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Reviste,Ziare,IT' - encoding = 'utf-8' - cover_url = 'http://www.go4it.ro/images/logo.png' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'subTitle clearfix'}), dict( - name='div', attrs={'class': 'story'}) - ] - - remove_tags = [ - dict(name='span', attrs={'class': ['data']}), dict( - name='a', attrs={'class': ['comments']}) - ] - - feeds = [ - (u'Feeds', u'http://feeds2.feedburner.com/Go4itro-Stiri') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/goal.recipe b/recipes/goal.recipe deleted file mode 100644 index f8300ea508..0000000000 --- a/recipes/goal.recipe +++ /dev/null @@ -1,13 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1325677767(BasicNewsRecipe): - title = u'Goal' - oldest_article = 1 - language = 'it' - max_articles_per_feed = 100 - auto_cleanup = True - remove_tags_after = [dict(id='article_content')] - feeds = [(u'Goal', u'http://www.goal.com/it/feeds/news?fmt=rss')] - __author__ = 'faber1971' - description = 'Sports news from Italy' diff --git a/recipes/gofin_pl.recipe b/recipes/gofin_pl.recipe deleted file mode 100644 index a4361245c3..0000000000 --- a/recipes/gofin_pl.recipe +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__author__ = 'teepel ' - -''' -gofin.pl -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class gofin(BasicNewsRecipe): - title = u'Gofin' - __author__ = 'teepel ' - language = 'pl' - description = u'Portal Podatkowo-Księgowy' - INDEX = 'http://gofin.pl' - oldest_article = 7 - max_articles_per_feed = 100 - remove_empty_feeds = True - simultaneous_downloads = 5 - remove_javascript = True - no_stylesheets = True - auto_cleanup = True - - feeds = [ - (u'Podatki', u'http://www.rss.gofin.pl/podatki.xml'), - (u'Prawo Pracy', u'http://www.rss.gofin.pl/prawopracy.xml'), - (u'Rachunkowo\u015b\u0107', u'http://www.rss.gofin.pl/rachunkowosc.xml'), - (u'Sk\u0142adki, zasi\u0142ki, emerytury', u'http://www.rss.gofin.pl/zasilki.xml'), - (u'Firma', u'http://www.rss.gofin.pl/firma.xml'), - (u'Prawnik radzi', u'http://www.rss.gofin.pl/prawnikradzi.xml')] diff --git a/recipes/good_to_know.recipe b/recipes/good_to_know.recipe deleted file mode 100644 index cd35d03db3..0000000000 --- a/recipes/good_to_know.recipe +++ /dev/null @@ -1,34 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1305547242(BasicNewsRecipe): - title = u'Good to Know (uk)' - oldest_article = 14 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - remove_javascript = True - __author__ = 'Anonymous' - language = 'en_GB' - remove_tags = [ - dict(name='div', attrs={'class': ['articles_footer', 'printoptions']})] - - def print_version(self, url): - return url + '/print/1' - - 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 - - feeds = [ (u'Family Conception Advice', u'http://www.goodtoknow.co.uk/feeds/family.rss'), - (u'Family Health Advice', u'http://www.goodtoknow.co.uk/feeds/health.rss'), - (u'Diet Advice', u'http://www.goodtoknow.co.uk/feeds/diet.rss'), - (u'Food Advice', u'http://www.goodtoknow.co.uk/feeds/food.rss'), - (u'Sex Advice', u'http://www.goodtoknow.co.uk/feeds/sex.rss'), - (u'Easy Exercise', u'http://www.goodtoknow.co.uk/feeds/easyexercise.rss'), - (u'Recipes', u'http://www.goodtoknow.co.uk/feeds/recipes.rss'), - (u'Food Quick-tips', u'http://www.goodtoknow.co.uk/feeds/foodquicktips.rss'), - ] diff --git a/recipes/googlemobileblog.recipe b/recipes/googlemobileblog.recipe deleted file mode 100644 index abd8705866..0000000000 --- a/recipes/googlemobileblog.recipe +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- - -from calibre.web.feeds.news import BasicNewsRecipe - - -class BasicUserRecipe1318572445(BasicNewsRecipe): - title = u'Google Mobile Blog' - language = 'en' - oldest_article = 7 - max_articles_per_feed = 100 - auto_cleanup = True - - feeds = [(u'Google Mobile Blog', u'http://googlemobile.blogspot.com/atom.xml')] diff --git a/recipes/grenaalokalavisen_dk.recipe b/recipes/grenaalokalavisen_dk.recipe deleted file mode 100644 index 7ba89f98c7..0000000000 --- a/recipes/grenaalokalavisen_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 Grenaa -''' - - -class GrenaaLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Grenaa' - description = 'Lokale og regionale nyheder, sport, kultur fra Grenå og omegn på grenaa.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 Grenaa', 'http://grenaa.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Grenaa', 'http://grenaa.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Grenaa', 'http://grenaa.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Grenaa', 'http://grenaa.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Grenaa', 'http://grenaa.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Grenaa', 'http://grenaa.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/gribskovlokalavisen_dk.recipe b/recipes/gribskovlokalavisen_dk.recipe deleted file mode 100644 index d800f7aba5..0000000000 --- a/recipes/gribskovlokalavisen_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 - -''' -Ugeposten Gribskov -''' - - -class GribskovLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Ugeposten Gribskov' - description = 'Lokale og regionale nyheder, sport og kultur fra Gribskov og omegn på gribskov.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 Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Ugeposten Gribskov', 'http://gribskov.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/grid_to.recipe b/recipes/grid_to.recipe deleted file mode 100644 index 6645225047..0000000000 --- a/recipes/grid_to.recipe +++ /dev/null @@ -1,81 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class TheGrid(BasicNewsRecipe): - #: The title to use for the ebook - title = u'The Grid' - - #: A couple of lines that describe the content this recipe downloads. - #: This will be used primarily in a GUI that presents a list of recipes. - description = (u'The Grid is a weekly city magazine and daily website providing a fresh, ' - 'accessible voice for Toronto.') - - #: The author of this recipe - __author__ = u'Yusuf W' - - #: The language that the news is in. Must be an ISO-639 code either - #: two or three characters long - language = 'en_CA' - - #: Publication type - #: Set to newspaper, magazine or blog - publication_type = 'newspaper' - - #: Convenient flag to disable loading of stylesheets for websites - #: that have overly complex stylesheets unsuitable for conversion - #: to ebooks formats - #: If True stylesheets are not downloaded and processed - no_stylesheets = True - - #: List of tags to be removed. Specified tags are removed from downloaded HTML. - remove_tags_before = dict(name='div', id='content') - remove_tags_after = dict(name='div', id='content') - remove_tags = [ - dict(name='div', attrs={'class': 'right-content pull-right'}), - dict(name='div', attrs={'class': 'right-content'}), - dict(name='div', attrs={'class': 'ftr-line'}), - dict(name='div', attrs={'class': 'pull-right'}), - dict(name='div', id='comments'), - dict(name='div', id='tags') - ] - - #: Keep only the specified tags and their children. - # keep_only_tags = [dict(name='div', id='content')] - - cover_margins = (0, 0, '#ffffff') - - INDEX = 'http://www.thegridto.com' - - def get_cover_url(self): - soup = self.index_to_soup(self.INDEX) - cover_url = soup.find( - attrs={'class': 'article-block latest-issue'}).find('img')['src'] - - return cover_url - - def parse_index(self): - - # Get the latest issue - soup = self.index_to_soup(self.INDEX) - a = soup.find( - 'div', attrs={'class': 'full-content stuff-ftr'}).findAll('a')[2] - - # Parse the index of the latest issue - self.INDEX = self.INDEX + a['href'] - soup = self.index_to_soup(self.INDEX) - - feeds = [] - for section in ['city', 'life', 'culture']: - section_class = 'left-content article-listing ' + section + ' pull-left' - div = soup.find(attrs={'class': section_class}) - - articles = [] - for a in div.findAll(attrs={'class': 'post-title'}): - title = self.tag_to_string(a) - url = a['href'] - - articles.append({'title': title, 'url': url, - 'description': '', 'date': ''}) - - feeds.append((section, articles)) - return feeds diff --git a/recipes/grrm.recipe b/recipes/grrm.recipe deleted file mode 100644 index 5acb66a046..0000000000 --- a/recipes/grrm.recipe +++ /dev/null @@ -1,32 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2011, Darko Miletic ' -''' -grrm.livejournal.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class NotABlog(BasicNewsRecipe): - title = 'Not A Blog - George R.R. Martin' - __author__ = 'Darko Miletic' - description = 'George R.R. Martin' - oldest_article = 15 - max_articles_per_feed = 100 - language = 'en' - encoding = 'utf-8' - no_stylesheets = True - use_embedded_content = True - publication_type = 'blog' - - conversion_options = { - 'comment': description, 'tags': 'sf, fantasy, game of thrones', 'publisher': 'George R.R. Martin', 'language': language - } - - feeds = [(u'Posts', u'http://grrm.livejournal.com/data/rss')] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return self.adeify_images(soup) diff --git a/recipes/gs24_pl.recipe b/recipes/gs24_pl.recipe deleted file mode 100644 index 9f24b1e66f..0000000000 --- a/recipes/gs24_pl.recipe +++ /dev/null @@ -1,46 +0,0 @@ -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai - -import re -import string - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1322322819(BasicNewsRecipe): - title = u'GS24.pl (Głos Szczeciński)' - description = u'Internetowy serwis Głosu Szczecińskiego' - __author__ = u'Michał Szkutnik' - __license__ = u'GPL v3' - language = 'pl' - publisher = 'Media Regionalne sp. z o.o.' - category = 'news, szczecin' - oldest_article = 2 - max_articles_per_feed = 100 - auto_cleanup = True - cover_url = "http://www.gs24.pl/images/top_logo.png" - - feeds = [ - # (u'Wszystko', u'http://www.gs24.pl/rss.xml'), - (u'Szczecin', u'http://www.gs24.pl/szczecin.xml'), - (u'Stargard', u'http://www.gs24.pl/stargard.xml'), - (u'Świnoujście', u'http://www.gs24.pl/swinoujscie.xml'), - (u'Goleniów', u'http://www.gs24.pl/goleniow.xml'), - (u'Gryfice', u'http://www.gs24.pl/gryfice.xml'), - (u'Kamień Pomorski', u'http://www.gs24.pl/kamienpomorski.xml'), - (u'Police', u'http://www.gs24.pl/police.xml'), - (u'Region', u'http://www.gs24.pl/region.xml'), - (u'Sport', u'http://www.gs24.pl/sport.xml'), - ] - - def get_article_url(self, article): - s = re.search("""/0L0S(gs24.*)/story01.htm""", article.link) - s = s.group(1) - replacements = {"0B": ".", "0C": "/", - "0H": ",", "0I": "_", "0D": "?", "0F": "="} - for (a, b) in replacements.items(): - s = string.replace(s, a, b) - s = string.replace(s, "0A", "0") - return "http://" + s - - def print_version(self, url): - return url + "&Template=printpicart" diff --git a/recipes/gulfnews.recipe b/recipes/gulfnews.recipe deleted file mode 100644 index 7adbff5182..0000000000 --- a/recipes/gulfnews.recipe +++ /dev/null @@ -1,61 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2011, Darko Miletic ' -''' -gulfnews.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class GulfNews(BasicNewsRecipe): - title = 'Gulf News' - __author__ = 'Darko Miletic' - description = 'News from United Arab Emirrates, persian gulf and rest of the world' - publisher = 'Al Nisr Publishing LLC' - category = 'news, politics, UAE, world' - oldest_article = 2 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'utf8' - use_embedded_content = False - language = 'en' - remove_empty_feeds = True - publication_type = 'newsportal' - masthead_url = 'http://gulfnews.com/media/img/gulf_news_logo.jpg' - extra_css = """ - body{font-family: Arial,Helvetica,sans-serif } - img{margin-bottom: 0.4em; display:block} - h1{font-family: Georgia, 'Times New Roman', Times, serif} - ol,ul{list-style: none} - .synopsis{font-size: small} - .details{font-size: x-small} - .image{font-size: xx-small} - """ - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - remove_tags = [ - dict(name=['meta', 'link', 'object', 'embed']), dict( - attrs={'class': ['quickLinks', 'ratings']}), dict(attrs={'id': 'imageSelector'}) - ] - remove_attributes = ['lang'] - keep_only_tags = [ - dict(name='h1'), dict( - attrs={'class': ['synopsis', 'details', 'image', 'article']}) - ] - - feeds = [ - - (u'UAE News', u'http://gulfnews.com/cmlink/1.446094'), - (u'Business', u'http://gulfnews.com/cmlink/1.446098'), - (u'Entertainment', u'http://gulfnews.com/cmlink/1.446095'), - (u'Sport', u'http://gulfnews.com/cmlink/1.446096'), - (u'Life', u'http://gulfnews.com/cmlink/1.446097') - ] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return soup diff --git a/recipes/gulli.recipe b/recipes/gulli.recipe deleted file mode 100644 index 6ce1924ad3..0000000000 --- a/recipes/gulli.recipe +++ /dev/null @@ -1,26 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1259599587(BasicNewsRecipe): - title = u'Gulli' - description = 'News from Germany' - language = 'de' - __author__ = 'posativ' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - - feeds = [(u'gulli:news', u'http://ticker.gulli.com/rss/')] - - remove_tags = [dict(name='div', attrs={'class': ['FloatL', '_forumBox']})] - - keep_only_tags = [dict(name='div', attrs={'id': ['_contentLeft']})] - - remove_tags_after = [dict(name='div', attrs={'class': ['_bookmark']})] - - extra_css = ''' - .byline {color:#666;margin-bottom:0;font-size:12px} - .blockquote {color:#030303;font-style:italic;padding-left:15px;} - img {align:center;} - .li {list-style-type: none} - ''' diff --git a/recipes/h3.recipe b/recipes/h3.recipe deleted file mode 100644 index 022dc7d12a..0000000000 --- a/recipes/h3.recipe +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai -from __future__ import with_statement - -__license__ = 'GPL v3' -__copyright__ = '2009, Kovid Goyal ' -__docformat__ = 'restructuredtext en' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class H3(BasicNewsRecipe): - title = u'H\xedrszerz\u0151' - oldest_article = 5 - max_articles_per_feed = 50 - language = 'hu' - - __author__ = 'Ezmegaz' - - feeds = [ - (u'Belf\xf6ld', - u'http://www.hirszerzo.hu/rss.belfold.xml'), - (u'K\xfclf\xf6ld', - u'http://www.hirszerzo.hu/rss.kulfold.xml'), - (u'Profit', - u'http://www.hirszerzo.hu/rss.profit.xml'), - (u'Shake', - u'http://www.hirszerzo.hu/rss.shake.xml'), - (u'Publicisztika', - u'http://www.hirszerzo.hu/rss.publicisztika.xml'), - (u'Elemz\xe9s', - u'http://www.hirszerzo.hu/rss.elemzes.xml'), - (u'Sorok k\xf6z\xf6tt', - u'http://www.hirszerzo.hu/rss.sorok_kozott.xml'), - (u'Gal\xe9ria', - u'http://www.hirszerzo.hu/rss.galeria.xml'), - (u'Patro', - u'http://www.hirszerzo.hu/rss.patro.xml')] diff --git a/recipes/haderslevlokalavisen_dk.recipe b/recipes/haderslevlokalavisen_dk.recipe deleted file mode 100644 index acf69c606b..0000000000 --- a/recipes/haderslevlokalavisen_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 Haderslev -''' - - -class HaderslevLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Haderslev' - description = 'Lokale og regionale nyheder, sport, kultur fra Haderslev og omegn på haderslev.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 Haderslev', 'http://haderslev.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Haderslev', 'http://haderslev.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Haderslev', 'http://haderslev.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Haderslev', 'http://haderslev.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Haderslev', 'http://haderslev.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Haderslev', 'http://haderslev.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/hankyoreh.recipe b/recipes/hankyoreh.recipe deleted file mode 100644 index e929f87d5c..0000000000 --- a/recipes/hankyoreh.recipe +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -__license__ = 'GPL v3' -__copyright__ = '2011, Seongkyoun Yoo ' -''' -Profile to download The Hankyoreh -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class Hankyoreh(BasicNewsRecipe): - language = 'ko' - title = u'한겨례' - description = u'The Hankyoreh News articles' - __author__ = 'Seongkyoun Yoo' - oldest_article = 7 - max_articles_per_feed = 10 - no_stylesheets = True - remove_javascript = True - - keep_only_tags = [ - dict(name='div', attrs={'class': ['article-head']}), - dict(name='div', attrs={'class': ['article-text']}), - ] - remove_tags = [ - dict(name='p', attrs={'class': ['category']}), - ] - remove_tags_after = dict(id={'ad_box01'}) - - feeds = [ - (u'정치', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_politics.xml'), - (u'사회', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_society.xml'), - (u'문화', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_culture.xml'), - (u'스포츠', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_sports.xml'), - (u'사설·칼럼', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_opinion.xml'), - (u'만화만평', 'http://www.hani.co.kr/ilram/rss/hkr_news_list_cartoon.xml'), - ] diff --git a/recipes/heavy_metal_it.recipe b/recipes/heavy_metal_it.recipe deleted file mode 100644 index bd23923966..0000000000 --- a/recipes/heavy_metal_it.recipe +++ /dev/null @@ -1,23 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1336289226(BasicNewsRecipe): - title = u'Heavy Metal' - oldest_article = 15 - max_articles_per_feed = 100 - auto_cleanup = False - masthead_url = 'http://net-static2.tccstatic.com/template/tmw/img/tj.gif' - feeds = [(u'Heavy Metal', u'http://www.heavy-metal.it/feed/')] - keep_only_tags = [ - dict(name='div', attrs={'class': 'entry'}) - ] - remove_tags_after = [ - dict(name='div', attrs={'class': 'sociable'}) - ] - description = 'An Heavy metal Italian magazine' - __author__ = 'faber1971' - language = 'it' - - -__version__ = 'v1.0' -__date__ = '6, May 2012' diff --git a/recipes/heise_open.recipe b/recipes/heise_open.recipe deleted file mode 100644 index 2b8c5a7d1f..0000000000 --- a/recipes/heise_open.recipe +++ /dev/null @@ -1,37 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, Anton Gillert ' - -''' -Fetch Heise Open. -''' -from calibre.web.feeds.news import BasicNewsRecipe - - -class HeiseOpenDe(BasicNewsRecipe): - - title = 'Heise Open' - description = 'Opensource news from Germany' - __author__ = 'Anton Gillert' - use_embedded_content = False - language = 'de' - timefmt = ' [%d %b %Y]' - max_articles_per_feed = 40 - no_stylesheets = True - - feeds = [('Heise Open', 'http://www.heise.de/open/news/news-atom.xml')] - - def print_version(self, url): - return url + '?view=print' - - remove_tags = [dict(id='navi_top'), - dict(id='navi_bottom'), - dict(name='div', attrs={'class': 'navi_top_logo'}), - dict(name='img', attrs={ - 'src': '/open/icons/open_logo_2009_weiss.gif'}), - dict(name='h5', attrs={'style': 'margin: 0.5em 0;'}), - dict(name='p', attrs={'class': 'news_datum'}), - dict(name='p', attrs={'class': 'size80'})] - remove_tags_after = [dict(name='p', attrs={'class': 'size80'})] - - def get_cover_url(self): - return 'http://www.heise.de/open/icons/open_logo_2009_weiss.gif' diff --git a/recipes/helsingin_sanomat.recipe b/recipes/helsingin_sanomat.recipe deleted file mode 100644 index cf50e6587e..0000000000 --- a/recipes/helsingin_sanomat.recipe +++ /dev/null @@ -1,34 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict(attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class AdvancedUserRecipe1298137661(BasicNewsRecipe): - title = u'Helsingin Sanomat' - __author__ = 'oneillpt' - language = 'fi' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - remove_javascript = True - keep_only_tags = [ - classes('article-title single-article'), - ] - remove_tags = [ - dict(attrs={'class':['hidden print-url', 'article-paywall']}), - dict(style=lambda x: x and 'height: 0' in x), - ] - - feeds = [ - (u'Uutiset - HS.fi', u'https://www.hs.fi/uutiset/rss/'), - ] - - def preprocess_html(self, soup): - for tag in soup.findAll(attrs={'data-mfp-src':True}): - tag.name = 'img' - tag['src'] = tag['data-mfp-src'] - tag['style'] = 'display:block' - return soup diff --git a/recipes/hindu_human_rights.recipe b/recipes/hindu_human_rights.recipe deleted file mode 100644 index ce967842fe..0000000000 --- a/recipes/hindu_human_rights.recipe +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -from calibre.web.feeds.news import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict( - attrs={'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class HinduHumanRights(BasicNewsRecipe): - title = 'Hindu Human Rights' - __author__ = 'Vishvas Vasuki' - language = 'en_IN' - oldest_article = 30 - max_articles_per_feed = 100 - auto_cleanup = True - - feeds = [ - ('HHR main', 'https://www.hindusforhumanrights.org/en/home?format=rss'), - ] diff --git a/recipes/hnonline.recipe b/recipes/hnonline.recipe deleted file mode 100644 index 5a5f6ee5a9..0000000000 --- a/recipes/hnonline.recipe +++ /dev/null @@ -1,79 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class HNonlineRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'lacike' - language = 'sk' - version = 1 - - title = u'HNonline' - publisher = u'HNonline' - category = u'News, Newspaper' - description = u'News from Slovakia' - cover_url = u'http://hnonline.sk/img/sk/_relaunch/logo2.png' - - 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.hnonline.sk, for listing see - # http://rss.hnonline.sk/prehlad - feeds = [] - feeds.append((u'HNonline|Ekonomika a firmy', - u'http://rss.hnonline.sk/?p=kC1000')) - feeds.append((u'HNonline|Slovensko', u'http://rss.hnonline.sk/?p=kC2000')) - feeds.append((u'HNonline|Svet', u'http://rss.hnonline.sk/?p=kC3000')) - feeds.append((u'HNonline|\u0160port', u'http://rss.hnonline.sk/?p=kC4000')) - feeds.append((u'HNonline|Online rozhovor', - u'http://rss.hnonline.sk/?p=kCR000')) - - feeds.append((u'FinWeb|Spr\u00E1vy zo sveta financi\u00ED', - u'http://rss.finweb.hnonline.sk/spravodajstvo')) - feeds.append((u'FinWeb|Koment\u00E1re a anal\u00FDzy', - u'http://rss.finweb.hnonline.sk/?p=kPC200')) - feeds.append((u'FinWeb|Invest\u00EDcie', - u'http://rss.finweb.hnonline.sk/?p=kPC300')) - feeds.append((u'FinWeb|Svet akci\u00ED', - u'http://rss.finweb.hnonline.sk/?p=kPC400')) - feeds.append( - (u'FinWeb|Rozhovory', u'http://rss.finweb.hnonline.sk/?p=kPC500')) - feeds.append((u'FinWeb|T\u00E9ma t\u00FD\u017Ed\u0148a', - u'http://rss.finweb.hnonline.sk/?p=kPC600')) - feeds.append((u'FinWeb|Rebr\u00ED\u010Dky', - u'http://rss.finweb.hnonline.sk/?p=kPC700')) - - feeds.append((u'HNstyle|Kult\u00FAra', - u'http://style.hnonline.sk/?p=kTC100')) - feeds.append((u'HNstyle|Auto-moto', u'http://style.hnonline.sk/?p=kTC200')) - feeds.append((u'HNstyle|Digit\u00E1l', - u'http://style.hnonline.sk/?p=kTC300')) - feeds.append((u'HNstyle|Veda', u'http://style.hnonline.sk/?p=kTCV00')) - feeds.append((u'HNstyle|Dizajn', u'http://style.hnonline.sk/?p=kTC400')) - feeds.append( - (u'HNstyle|Cestovanie', u'http://style.hnonline.sk/?p=kTCc00')) - feeds.append( - (u'HNstyle|V\u00EDkend', u'http://style.hnonline.sk/?p=kTC800')) - feeds.append((u'HNstyle|Gastro', u'http://style.hnonline.sk/?p=kTC600')) - feeds.append((u'HNstyle|M\u00F3da', u'http://style.hnonline.sk/?p=kTC700')) - feeds.append((u'HNstyle|Modern\u00E1 \u017Eena', - u'http://style.hnonline.sk/?p=kTCA00')) - feeds.append((u'HNstyle|Pre\u010Do nie?!', - u'http://style.hnonline.sk/?p=k7C000')) - - keep_only_tags = [] - keep_only_tags.append(dict(name='h1', attrs={'class': 'detail-titulek'})) - keep_only_tags.append( - dict(name='div', attrs={'class': 'detail-podtitulek'})) - keep_only_tags.append(dict(name='div', attrs={'class': 'detail-perex'})) - keep_only_tags.append(dict(name='div', attrs={'class': 'detail-text'})) - - 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;} - ''' diff --git a/recipes/hoersholmlokalavisen_dk.recipe b/recipes/hoersholmlokalavisen_dk.recipe deleted file mode 100644 index 476d2f0814..0000000000 --- a/recipes/hoersholmlokalavisen_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 - -''' -Ugebladet -''' - - -class HoersholmLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Ugebladet' - description = 'Lokale, regionale nyheder, sport og kultur i Hørsholm, Rungsted, Fredensborg og Humlebæk på hoersholm.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 Ugebladet', 'http://hoersholm.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Ugebladet', 'http://hoersholm.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Ugebladet', 'http://hoersholm.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Ugebladet', 'http://hoersholm.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Ugebladet', 'http://hoersholm.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Ugebladet', 'http://hoersholm.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/hola.recipe b/recipes/hola.recipe deleted file mode 100644 index dae6328cac..0000000000 --- a/recipes/hola.recipe +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=UTF-8 -__license__ = 'GPL v3' -__copyright__ = '30 June 2012, desUBIKado' -__author__ = 'desUBIKado' -__description__ = 'Diario de actualidad, moda y belleza' -__version__ = 'v0.03' -__date__ = '28, Jul 2016' -''' -http://www.hola.com/ -''' - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class hola_es(BasicNewsRecipe): - author = 'desUBIKado' - description = 'Diario de actualidad, moda y belleza' - title = u'¡Hola!' - publisher = 'Hola S.L.' - category = 'Spanish celebrities, Entertainment News, Royalty, Daily Variety, Hollywood' - language = 'es' - masthead_url = 'http://imagenes.hola.com/comunes/2008/logo-holacom.gif' - timefmt = '[%a, %d %b, %Y]' - oldest_article = 7 - delay = 1 - encoding = 'utf-8' - max_articles_per_feed = 100 - use_embedded_content = False - remove_empty_feeds = True - remove_javascript = True - no_stylesheets = True - - feeds = [ - - (u'Famosos', u'http://www.hola.com/famosos/rss.xml'), - (u'Realeza', u'http://www.hola.com/realeza/rss.xml'), - (u'Cine', u'http://www.hola.com/cine/rss.xml'), - (u'M\xfasica', u'http://www.hola.com/musica/rss.xml'), - (u'Moda y modelos', u'http://www.hola.com/moda/portada/rss.xml'), - (u'Belleza y salud', u'http://www.hola.com/belleza/portada/rss.xml'), - (u'Ni\xf1os', u'http://www.hola.com/ninos/rss.xml') - ] - - keep_only_tags = [ - dict(name='article', attrs={'class': ['body col-md-8 col-xs-12']})] - - remove_tags = [dict(name='div', attrs={'class': ['comments', 'news-share', 'sponsored-news']}), - dict(name='div', attrs={'itemprop': ['logo']}), - dict(name='span', attrs={'class': ['hidden']}), - dict(name='p', attrs={'class': ['hidden']}), - dict(name='section', attrs={'class': ['news-tags']}) - ] - - remove_tags_after = dict(name='div', attrs={'class': 'comments'}) - - # VER GALERÍA - preprocess_regexps = [ - # Quitar VER GALERÍA - (re.compile(r'VER GALER', re.DOTALL | re.IGNORECASE), lambda m: ''), - # Quitar enlaces varios - (re.compile(r'

', - re.DOTALL | re.IGNORECASE), lambda m: '') - ] - - # Recuperamos la portada de papel (la imagen 520 tiene mayor resolucion) - # http://www.hola.com/imagenes/revista/3727/portada-revista-hola-520.jpg - def get_cover_url(self): - index = 'http://www.hola.com/abono/ediciondigital/' - soup = self.index_to_soup(index) - for image in soup.findAll('img', src=True): - if image['src'].endswith('portada-revista-hola-520.jpg'): - return 'http://www.hola.com' + image['src'] - return None - - def get_article_url(self, article): - url = article.get('guid', None) - return url - - extra_css = ''' - h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:30px;} - h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal; font-style:italic; font-size:18px;} - ''' diff --git a/recipes/hollywood_reporter.recipe b/recipes/hollywood_reporter.recipe deleted file mode 100644 index e7120267a7..0000000000 --- a/recipes/hollywood_reporter.recipe +++ /dev/null @@ -1,55 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2014, Darko Miletic ' -''' -www.hollywoodreporter.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class THR_En(BasicNewsRecipe): - title = 'The Hollywood Reporter' - __author__ = 'Darko Miletic' - description = 'Read about the latest in Hollywood and entertainment news from The Hollywood Reporter, your source for detailed movie reviews, celebrity styles, and industry blogs.' # noqa - publisher = 'The Hollywood Reporter' - category = 'Entertainment news, Hollywood news, celebrity news, latest Hollywood news' - oldest_article = 2 - max_articles_per_feed = 200 - no_stylesheets = True - encoding = 'utf8' - use_embedded_content = False - language = 'en' - remove_empty_feeds = True - publication_type = 'newsportal' - auto_cleanup = True - auto_cleanup_keep = "//div[contains(concat(' ', normalize-space(@class), ' '), ' image ')]" - - extra_css = """ - body{font-family: Georgia,Times,serif} - h1,h2,h3{font-family: "Vonness-Bold-Compressed",Helvetica,sans-serif} - .credit,.caption{font-family: Arial,sans-serif;} - .credit,.caption,.submitted{font-size: small; color: gray;} - .main_media_credit{clear: left; font-size: x-small; text-align: right; color: gray;} - img{margin-top: 0.5em; margin-bottom: 0.4em; display:block} - """ - - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - feeds = [ - - (u'Movies', u'http://feeds.feedburner.com/thr/film'), - (u'TV', u'http://feeds.feedburner.com/thr/television'), - (u'Style&Culture', u'http://feeds.feedburner.com/thr/style'), - (u'International', u'http://feeds.feedburner.com/thr/international'), - (u'Music', u'http://feeds.feedburner.com/thr/music'), - (u'Tech', u'http://feeds.feedburner.com/TheHollywoodReporter-Technology'), - (u'Awards', u'http://feeds.feedburner.com/thr/awards'), - (u'Business', u'http://feeds.feedburner.com/thr/business'), - (u'Asia', u'http://feeds.feedburner.com/HollywoodReporterAsia'), - (u'Guilds and Labor', u'http://feeds.feedburner.com/thr/labor'), - (u'Box Office', u'http://feeds.feedburner.com/thr/boxoffice'), - (u'Real Estate', u'http://feeds.feedburner.com/thr/RealEstate'), - (u'Politics', u'http://feeds.feedburner.com/thr/politics') - ] diff --git a/recipes/hornsherredavis_dk.recipe b/recipes/hornsherredavis_dk.recipe deleted file mode 100644 index a60e5e6ac6..0000000000 --- a/recipes/hornsherredavis_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 - -''' -Hornsherred Avis -''' - - -class Hornsherredavis_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Hornsherred Avis' - description = 'Lokale nyheder fra Jægerspis, Skibby og Bramsnæs' - category = 'newspaper, news, localnews, sport, culture, Denmark' - oldest_article = 30 - max_articles_per_feed = 50 - auto_cleanup = True - language = 'da' - - # Feed are found here: http://hornsherredavis.dk/ - feeds = [ - ('Hornsherred Avis', 'http://hornsherredavis.dk/?feed=rss2'), - ('Kommentarer til Hornsherred Avis', 'http://hornsherredavis.dk/?feed=comments-rss2'), - ] diff --git a/recipes/hornsherredlokalavisen_dk.recipe b/recipes/hornsherredlokalavisen_dk.recipe deleted file mode 100644 index b3d453bed2..0000000000 --- a/recipes/hornsherredlokalavisen_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 Hornsherred -''' - - -class HornsherredLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Lokalavisen Hornsherred' - description = 'Lokale og regionale nyheder, sport og kultur fra Hornsherred og omegn på hornsherred.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 Hornsherred', 'http://hornsherred.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Lokalavisen Hornsherred', 'http://hornsherred.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Lokalavisen Hornsherred', 'http://hornsherred.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Lokalavisen Hornsherred', 'http://hornsherred.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Lokalavisen Hornsherred', 'http://hornsherred.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Lokalavisen Hornsherred', 'http://hornsherred.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/hotcity.recipe b/recipes/hotcity.recipe deleted file mode 100644 index b0ed801420..0000000000 --- a/recipes/hotcity.recipe +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -hotcity.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class HotcityRo(BasicNewsRecipe): - title = u'Hotcity' - __author__ = u'Silviu Cotoar\u0103' - description = u'Cultura urban\u0103 feminin\u0103' - publisher = 'Hotcity' - oldest_article = 5 - language = 'ro' - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - category = 'Ziare,Reviste' - encoding = 'utf-8' - cover_url = 'http://www.hotcity.ro/i/bg_header.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='div', attrs={'class': 'articol_title'}), dict( - name='div', attrs={'class': 'text'}) - ] - - feeds = [ - (u'Feeds', u'http://www.hotcity.ro/rss') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/hotnews.recipe b/recipes/hotnews.recipe deleted file mode 100644 index 0f61ef3032..0000000000 --- a/recipes/hotnews.recipe +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -__license__ = 'GPL v3' -__copyright__ = u'2011, Silviu Cotoar\u0103' -''' -hotnews.ro -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Hotnews(BasicNewsRecipe): - title = 'Hotnews' - __author__ = u'Silviu Cotoar\u0103' - description = u'\u0218tiri din Rom\u00e2nia' - publisher = 'Hotnews' - 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://www.hotnews.ro/images/new/logo.gif' - - conversion_options = { - 'comments': description, 'tags': category, 'language': language, 'publisher': publisher - } - - keep_only_tags = [ - dict(name='h1', attrs={'class': 'title'}), dict( - name='div', attrs={'id': 'articleContent'}) - ] - - feeds = [(u'\u0218tiri', u'http://www.hotnews.ro/rss/actualitate'), (u'English', u'http://www.hotnews.ro/rss/english') - ] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/house_news.recipe b/recipes/house_news.recipe deleted file mode 100644 index ae1f42b484..0000000000 --- a/recipes/house_news.recipe +++ /dev/null @@ -1,31 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2012-2015, Eddie Lau' -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipeHouseNews(BasicNewsRecipe): - title = u'The House News Bloggers 主場博客' - __author__ = 'Eddie Lau' - publisher = 'The House News Bloggers' - oldest_article = 1 - max_articles_per_feed = 100 - auto_cleanup = False - no_stylesheets = True - language = 'zh' - encoding = 'utf-8' - description = 'http://thehousenewsbloggers.net' - category = 'Chinese, Blogs, Opinion, News, Hong Kong' - masthead_url = 'http://thehousenewsbloggers.files.wordpress.com/2014/09/screen-shot-2014-09-11-at-8-55-13.png' - extra_css = 'img {display: block; margin-left: auto; margin-right: auto; margin-top: 10px; margin-bottom: 10px; max-height:90%;} p[class=date] {font-size:50%;} div[class=author] {font-size:75%;} p[class=caption] {font-size:50%;}' # noqa - feeds = [(u'Latest', u'http://thehousenewsbloggers.net/feed/')] - keep_only_tags = [dict(name='h1', attrs={'class': ['title']}), - dict(name='span', attrs={'class': ['author vcard']}), - dict(name='time', attrs={'class': ['entry-date']}), - dict(name='section', attrs={'class': ['entry']})] - remove_tags = [dict(name='div', attrs={'id': ['jp-post-flair']})] - - def populate_article_metadata(self, article, soup, first): - if first and hasattr(self, 'add_toc_thumbnail'): - picdiv = soup.find('img') - if picdiv is not None: - self.add_toc_thumbnail(article, picdiv['src']) diff --git a/recipes/hrt.recipe b/recipes/hrt.recipe deleted file mode 100644 index 3042d074ce..0000000000 --- a/recipes/hrt.recipe +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' - -''' -www.hrt.hr -''' - -import re - -from calibre.ebooks.BeautifulSoup import 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 HRT(BasicNewsRecipe): - title = 'HRT: Vesti' - __author__ = 'Darko Miletic' - description = 'News from Croatia' - publisher = 'HRT' - category = 'news, politics, Croatia, HRT' - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = False - language = 'hr' - - lang = 'hr-HR' - 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} - .news-single-timedata{color:#20558A; font-size:x-small;} - .nsTitle{color:#20558A; font-size:large; font-weight:bold;} - a{color:#20558A;} - .external-link-new-window{color:#20558A;} - - ''' - - 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(name='div', attrs={'class': 'bigVijest'})] - - remove_tags = [dict(name=['object', 'link', 'embed'])] - - remove_tags_after = dict(name='div', attrs={'class': 'nsAuthor'}) - - feeds = [ - - (u'Vijesti', u'http://www.hrt.hr/?id=316&type=100&rss=vijesti'), - (u'Sport', u'http://www.hrt.hr/?id=316&type=100&rss=sport'), - (u'Zabava', u'http://www.hrt.hr/?id=316&type=100&rss=zabava'), - (u'Filmovi i serije', u'http://www.hrt.hr/?id=316&type=100&rss=filmovi'), - (u'Dokumentarni program', u'http://www.hrt.hr/?id=316&type=100&rss=dokumentarci'), - (u'Glazba', u'http://www.hrt.hr/?id=316&type=100&rss=glazba'), - (u'Kultura', u'http://www.hrt.hr/?id=316&type=100&rss=kultura'), - (u'Mladi', u'http://www.hrt.hr/?id=316&type=100&rss=mladi'), - (u'Manjine', u'http://www.hrt.hr/?id=316&type=100&rss=manjine'), - (u'Radio', u'http://www.hrt.hr/?id=316&type=100&rss=radio') - ] - - def preprocess_html(self, soup): - soup.html['xml:lang'] = self.lang - soup.html['lang'] = self.lang - mlang = new_tag(soup, 'meta', [ - ("http-equiv", "Content-Language"), ("content", self.lang)]) - mcharset = new_tag(soup, 'meta', [ - ("http-equiv", "Content-Type"), ("content", "text/html; charset=UTF-8")]) - soup.head.insert(0, mlang) - soup.head.insert(1, mcharset) - for item in soup.findAll(style=True): - del item['style'] - return self.adeify_images(soup) diff --git a/recipes/huffingtonpost.recipe b/recipes/huffingtonpost.recipe deleted file mode 100644 index e949dc4016..0000000000 --- a/recipes/huffingtonpost.recipe +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -from __future__ import print_function - -from calibre.web.feeds.news import BasicNewsRecipe - - -def classes(classes): - q = frozenset(classes.split(' ')) - return dict(attrs={ - 'class': lambda x: x and frozenset(x.split()).intersection(q)}) - - -class HuffingtonPostRecipe(BasicNewsRecipe): - __license__ = 'GPL v3' - __author__ = 'kwetal and Archana Raman' - language = 'en' - version = 2 - - title = u'The Huffington Post' - publisher = u'huffingtonpost.com' - category = u'News, Politics' - description = u'Political Blog' - - oldest_article = 1.1 - max_articles_per_feed = 100 - - encoding = 'utf-8' - remove_empty_feeds = True - no_stylesheets = True - remove_javascript = True - - recipe_specific_options = { - 'days': { - 'short': 'Oldest article to download from this news source. In days ', - 'long': 'For example, 0.5, gives you articles from the past 12 hours', - 'default': str(oldest_article) - } - } - - def __init__(self, *args, **kwargs): - BasicNewsRecipe.__init__(self, *args, **kwargs) - d = self.recipe_specific_options.get('days') - if d and isinstance(d, str): - self.oldest_article = float(d) - - keep_only_tags = [ - classes('entry__header entry__body') - ] - remove_tags = [ - classes('app-download-interstitial share-bar top-media--video advertisement extra-content' - ' below-entry entry-inline-subscription-module related-articles') - ] - # Feeds from: http://www.huffingtonpost.com/syndication/ - feeds = [] - - feeds.append( - (u'Politics', u'http://www.huffingtonpost.com/feeds/verticals/politics/index.xml')) - - feeds.append( - (u'Media', u'http://www.huffingtonpost.com/feeds/verticals/media/index.xml')) - - feeds.append( - (u'Business', u'http://www.huffingtonpost.com/feeds/verticals/business/index.xml')) - - feeds.append( - (u'Entertainment', u'http://www.huffingtonpost.com/feeds/verticals/entertainment/index.xml')) - - feeds.append( - (u'Living', u'http://www.huffingtonpost.com/feeds/verticals/living/index.xml')) - - feeds.append( - (u'Style', u'http://www.huffingtonpost.com/feeds/verticals/style/index.xml')) - - feeds.append( - (u'Green', u'http://www.huffingtonpost.com/feeds/verticals/green/index.xml')) - - feeds.append( - (u'Technology', u'http://www.huffingtonpost.com/feeds/verticals/technology/index.xml')) - - feeds.append( - (u'Comedy', u'http://www.huffingtonpost.com/feeds/verticals/comedy/index.xml')) - - feeds.append( - (u'World', u'http://www.huffingtonpost.com/feeds/verticals/world/index.xml')) - - feeds.append((u'Original Reporting', - u'http://www.huffingtonpost.com/tag/huffpolitics/feed')) - - extra_css = ''' - h1{font-family :Arial,Helvetica,sans-serif; font-size:large;} - h2{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#000000;} - h3{font-family :Arial,Helvetica,sans-serif; font-size:medium; color:#000000;} - body{font-family:verdana,arial,helvetica,geneva,sans-serif ;} - #title_permalink{color:black;font-size:large;} - .date{color:#858585;font-family:"Times New Roman",sans-serif;} - .comments_datetime v05{color:#696969;} - .teaser_permalink{font-style:italic;font-size:xx-small;} - .blog_posted_date{color:#696969;font-size:xx-small;font-weight: bold;} - ''' -# a[href]{color: blue; text-decoration: none; cursor: pointer;} - - def get_article_url(self, article): - """ - Workaround for Feedparser behaviour. If an item has more than one element, article.link is empty and - article.links contains a list of dictionaries. - Todo: refactor to searching this list to avoid the hardcoded zero-index - """ - link = article.get('link') - print("Link:" + link) - if not link: - links = article.get('links') - if links: - link = links[0]['href'] - if not links[0]['href']: - link = links[1]['href'] - - return link - - def postprocess_html(self, soup, first_fetch): - for tag in soup.findAll('div', text="What's Your Reaction?"): - tag.extract() - - for tg in soup.findAll('blockquote'): - tg.extract() - - return soup diff --git a/recipes/hvidovreavis_dk.recipe b/recipes/hvidovreavis_dk.recipe deleted file mode 100644 index 2eed9d54d8..0000000000 --- a/recipes/hvidovreavis_dk.recipe +++ /dev/null @@ -1,20 +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 BasicNewsRecipe - - -class Hvidovre_Avis_dk(BasicNewsRecipe): - title = 'Hvidovre avis' - language = 'da' - oldest_article = 7 - max_articles_per_feed = 50 - auto_cleanup = True - feeds = [ - ('Lokale nyheder', 'http://hvidovre.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Sport', 'http://hvidovre.lokalavisen.dk/section/senestesportrss'), - ('112', 'http://hvidovre.lokalavisen.dk/section/seneste112rss'), - ('Kultur', 'http://hvidovre.lokalavisen.dk/section/senestekulturrss'), - ('Læserbreve', 'http://hvidovre.lokalavisen.dk/section/senestelaeserbreverss'), - ] diff --git a/recipes/hvidovrelokalavisen_dk.recipe b/recipes/hvidovrelokalavisen_dk.recipe deleted file mode 100644 index 21a1169442..0000000000 --- a/recipes/hvidovrelokalavisen_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 - -''' -Hvidovre Avis -''' - - -class HvidovreLokalavisen_dk(BasicNewsRecipe): - __author__ = 'CoderAllan.github.com' - title = 'Hvidovre Avis' - description = 'Lokale og regionale nyheder, sport og kultur fra Hvidovre på hvidovre.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 Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/senestenytrss'), - ('Seneste lokale nyheder fra Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/senestelokalenyhederrss'), - ('Seneste sport fra Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/senestesportrss'), - ('Seneste 112 nyheder fra Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/seneste112rss'), - ('Seneste kultur nyheder fra Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/senestekulturrss'), - ('Seneste læserbreve fra Hvidovre Avis', 'http://hvidovre.lokalavisen.dk/section/senestelaeserbreverss'), - - ] - diff --git a/recipes/ibm_smarter_planet.recipe b/recipes/ibm_smarter_planet.recipe deleted file mode 100644 index 77cd3fec57..0000000000 --- a/recipes/ibm_smarter_planet.recipe +++ /dev/null @@ -1,25 +0,0 @@ - -from calibre.web.feeds.news import BasicNewsRecipe - - -class AdvancedUserRecipe1293122276(BasicNewsRecipe): - title = u'Smarter Planet | Tumblr' - __author__ = 'Jack Mason' - author = 'IBM Global Business Services' - publisher = 'IBM' - language = 'en' - category = 'news, technology, IT, internet of things, analytics' - oldest_article = 14 - max_articles_per_feed = 30 - no_stylesheets = True - use_embedded_content = False - masthead_url = 'http://www.hellercd.com/wp-content/uploads/2010/09/hero.jpg' - remove_tags_before = dict(id='item') - remove_tags_after = dict(id='item') - remove_tags = [dict(attrs={'class': ['sidebar', 'about', 'footer', 'description,' 'disqus', 'nav', 'notes', 'disqus_thread']}), - dict(id=['sidebar', 'footer', 'disqus', 'nav', 'notes', - 'likes_container', 'description', 'disqus_thread', 'about']), - dict(name=['script', 'noscript', 'style'])] - - feeds = [(u'Smarter Planet Tumblr', - u'http://smarterplanet.tumblr.com/mobile/rss')] diff --git a/recipes/icons/f1_ultra.png b/recipes/icons/f1_ultra.png deleted file mode 100644 index 45565f27883bb0c8d0111a276df9ef7ceb97d4cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!L4Z$)E08W>V3@|jvQSTN0~6y# zKkr+rvUfEVpG}+mdGm&EXHWmiO8)clw+lbByY*+z1CBW2`f-eo3;2xveEn>8x77hO1iM;e3hGd_MPCHFUk+fTTY&}J6H5i_`cqUw`-;c oyy03_VKL*;LxuhzBl~}h`8=#&;%drbfp#-^y85}Sb4q9e0OZeMrvLx| diff --git a/recipes/icons/f_secure.png b/recipes/icons/f_secure.png deleted file mode 100644 index a36e72ce3daf38b7794b38e488c9f01b648f4fc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 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 KxvX0fw zOGs2v9LCS{&g)(s9UaGasiWu^+C#{KXcI&creTCpNiA*D&Rs#PgaQe|+D73fiK3`Q zmh>P9S_~5Q7$4a%O*%fAx%bYw=bZlD%~{;BgQzF zo={R!&R`H>6iJV8ZZ+((YU_kuD6C|i^>yLe)bC^PY2_g$!5C30i>~%Of3&K!y|ZTD zfs)#~@|L(6jcsSrxzw-i^m1}yoGDQx48X8-9i&vGYj550Q?ihsn|zpGUf?CAk?#F% zr}_zHKc^-crF5V^209GT!u3U~>QD4_4Ge0efhY56ruE##;>Jeu-ksmmuZbs^&me$- z0msKd6zg4kW_^L94npH=CTk zG1`6MO8U#^qc_La=Dvxw6=ra(m2zEKw29xcj8F)|5nCJi%pYDF?m9o5dij+5jf!~N z(ua4U%1TIFYXusgY0}fNFd&KiHX$Uxm~vLLV3rsfP7Dsg+sd1o%M)E@O^u!X3oM}7 ziPaObvF~iSIX-)ToQF)Sp=o_#o&^FhEKiSVM z%T6yPAB+bh6=l0yzE0fsa#`Spg=$X_&Y%heiUf(yzkmDu(i!CxjIv1Y^;;Ef?XRw0 z&VGD@86i*%@OB+cFu>!-hZ8W!h*n2?4gp56GG^!gExwp4u4Dq?GS7xyDQKbeJh%WW z#*YrR!Yj0tkTH}H_6;xN!H`lCerpM*0B5Kw6cMszvba+XmH|j1=Lfd`4vAaT>A!)100000NkvXXu0mjfHmF~8 diff --git a/recipes/icons/fhm_uk.png b/recipes/icons/fhm_uk.png deleted file mode 100644 index d62dcedf268ade71adb2bcc045c91f4233b5e547..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1786 zcmV_qkTSb!w5?URIJy4W}q+fJVUH9H|?|JUM*7Ez} zrj?FqOA3ud0)@&zBQvq@>ZmR?>L_R8kc`wMGqVptCXa+eHqr$URZ0+AsN@VXjYQN2 z3RwaK2_ymwX0Ti4s6Bx5JW)>0KCLlH%%rBb@Imqv9ghoijgTT&=s zQ!I1o?WrVM-Op0qtZ$AMM@Cwhq%o{0q@USu5)&p(*W|M6hHJyheq}wzAsHBPb9rGL zEwgBQ_1aC?XWMx?l*4MioQ!cW8Mot&aNtsVOuW~2r_$_lYqd3vYXwkY@5+o#@kQp0A{CYBRgp{_mgv_0_9CxOcH@ zoAu#1Z>DXNqwBhdzxSm#U;XE|E-z1C{P?H-_zxca(|3OKC*RKF@bnj7e!O43^ZI`t zt;c6($G`MjFZ=SBe*DdE{NE3Mw2Z~DtuOxW7tX)>`^V?YZs}kW-MeqEUjMi0`g*Y9 z)@GUC->lBh?s)LIC*OH(Q-`zVM3+vluVz1fvp;N4AOFgB^*Fup#`Jo~btZLw^TE6S z`Y#v%^VZqjXXg9ve6ttH#glHoey^{K$+%uD+@74~#ht}xKUO|`^08??PBR}l+ji?& zjl90}v$y(1ny1}Ruh#X0pWnPa*2_D`N82Zle)`?Nf9CU_Tn``Q#jx5uigjwkMNGF& zQg^hRTbHTv=JLsV!yz4}_v54Uv-y*8b8>zxHr?%cUY8&K;CpX>Cb=iwXaV%!wWAy z|NI~Qq3^x+`d|Lltjmt>O`cq=2KD?y&%W}?_y6`Ex7Rl>JpD=cKT;;{6x%5j=HIPxW0S7diodZ;&}24cXp@8v(!79 z**A|LpZwZOi`1|0pP6>)6Cc0*+pio;yI+28GVeZm_jY^sSucJ1sW1G_^uWuXcJ`s^ z!%v+r7yI)&c6;4CHtl*YY}qw6pzU=mrWzxa#$j(cb#W;sT6Jq-f2|AAOgfJqtDN5# zVYP8*KX-_h2&1bb9o?NZY&+j-?xdYWW=t$c3 zCL+vwl2C_|`q?O7?e{HrUDrn|ZES7KG0^CVU712w28+oUMk=MX+#)s8Y~0sLpVTVK zezTt5nm2Z}Ji7Sc?wxyCzh19Tm&<69irDN2G}c;~TOBv{< zNwd9LYm+8dX(wvxkMG=Ty2NomkAa&Ktu|;Rg@J*@l&&&>Z0xKk%$U+QDwQCrY_E<~ zCeoA`lYy!;5`dgEf}m?u8jYl5LXc>*5J7;X(WrnLP(>0o+N$X2m24!_6$*tQlgOYE zc2cEdLO^W{>Og_k(bHiJt#wir1Oyq43XsSE1!>mRLL$&0!bHjxHHjdj5r}AG0R%t; zKmat*Xfyx`fJV@W3IT|1Yl*&506HUuU_vx12wGK8Ng@dvjYb6s5{X3UE}4=;MkP70 zVOW&fII& zsuB@LE1-tZo*C-uD@6^6+`02d(Ddn6oJ$7rmoMK*qaAY{9mj%uckGxDJbk*2XyDbl zbsBUJy1GaG`Xw?3e*OCg1&ki;mi+qlVQ`P;&2xNv_l^(^qWACrgbD+kl`+V%ww_90 zWx2VH6|KN|Fl8f%GJu}N96$a7C=3nlOmeuY+qX|*Jf@VYFAyy)EvNG^ z4H+^dKvPq5DG$}=&71$ABB68V&NY*w48RQ^$!mIu$;ruWYZ9kHVEU8^ey(TFo>9C% ze*E|=$pC}a^dO_7qr1u*Bqk=d=jU$UzI~PVfB*j7EE!;!zyNsz0G~0m*x1;Pd?q+J axNkLKN5C2!mid$b0000o|NsAAymalM!zT_N zKJnn;PZ!6Kid%0dG_oBq;9>o|?dkveN=y9<7e$#DFZU~ulbY@3s=df$ zo@j*nC+nJ^SSfLVMmb0Q11cU(XXdaeP52@=rC#8PQbYd#1y7kQUId@W$@_AbF^^w{ R*A!?vgQu&X%Q~loCIIZFJ#YX3 diff --git a/recipes/icons/fisco_oggi.png b/recipes/icons/fisco_oggi.png deleted file mode 100644 index 50764afddeb547de0c4a16b7369676031452663d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 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 KelF{r5}E)~1u*ph diff --git a/recipes/icons/forbes_pl.png b/recipes/icons/forbes_pl.png deleted file mode 100644 index 2d3c051e017c0c925c852373d633322277d09c63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmV-00nh%4P)C>lQzdjkzaM>>SW>LfA)ti9mhEw={&&cy$u_tpX z?@V8CH97|(e$zh*s^PLz*sZGe$L&-8{rmUr>(}$O9cS}vcD8gse)Q%F2z6b;9H;|}&r zUe?yRYQ>5xS1!NUyc;O^psW?5;qTwSH^VdEpTCUIurDEJeqaB}gskV!o&i;Symj}c zlFhB4G@uJ1dOlvcaWgdiUPdKU!w#2_Q@i)x?wtDi?tP&2ukSyuX*k?awfk`SIz$6d z=l!aVEBbCw4W~j=zr23)Xy4)Im##vjZ@5I>RJOetn(_C~Ux=RXuisqPbb^JFw)5{_ zzrMbH^XAlfi1fYmitDQOH?ymruiEq<2JS@VKs8)7@dldu_08Ld)twNzCtcHlvG(!N zlWQ&!KR$ef2;MDhfNHqm9t{bN8<`alxmRnq0X6*m{{7kFwGZoipc>)}p&D*SWa|Zwb002ovPDHLkV1j?JDUARC diff --git a/recipes/icons/forsal.png b/recipes/icons/forsal.png deleted file mode 100644 index 3ab23b99941bb2035f53302744600ecb4a9295f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)d8URkD;b{su|o_jx5&~vRb zb*Pv~W(`^ma3oU*zN!EW6z$Q4{pk7p?tLxKrcWFPP?{y0XidOD3cmE!hNSXK_v4+r zXC6NUaR1zex$Qd=G(9#}G8wHV0&t*wRrzvVlBMJ=p>M;Y0h9 zL7s-blF0x{0!)k~1ScuPP+4N0C&|muSCND$2q4Ww0FI(3OPZi0coKaT4S)%oxJd%w zC{#4hMAS@*BKiVNfUrd(AplO2w^+ug+zbdQqNg=7yt=+h{6iWg04}E3p4>e+R+wbe z=}VWJ002ovPDHLkV1oa%1#18R diff --git a/recipes/icons/fotoblogia_pl.png b/recipes/icons/fotoblogia_pl.png deleted file mode 100644 index fcd86454bcf00fc00e75f96d54cf83a2ac80bd84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wBx+BpCi@`0fExMV>B>Ar-fhfAF(99J6O+OEY-P z9X;!CrNZMUDf|A*H}t&c;raIeKjTunUwd!sWbmfcocMokMw)^Ak%|ZVe@pXsBz~Ca z8285h@bjNK(h?Oyj?XsuBs^dM6=Y?dambYcae}<8tQ=Vm(9_n=QIePcj}HSaXb0kc0_y$% z)pYRk@G#QX0hnsDNpgU;rluHB(=sFjHp$7zm;i&k7})``($ca(_If0-74krJKsph~ z|Ayp<2OJz6q=f>|kO@cz%max5L&yQZ^uh_`Uqlk`2Z__e z0SAD%6v)1eq~{_q)Oaa%z*b=JTZ1srFm`MXz=2-^)l0+F(lil5@fRR|2E;#+#O?qc zER9*>@eNh@)}%r00000NkvXX Hu0mjfti#y^ diff --git a/recipes/icons/frankfurter_rundschau.png b/recipes/icons/frankfurter_rundschau.png deleted file mode 100644 index 6752828ad5da18ae73864238c7f8d19f3ea38031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmV+g0{Z=lP)M6=Y?dambYcae}<8tQ=Vm(9_n=QIePcj}HSaXb0kc0_y$% z)pYRk@G#QX0hnsDNpgU;rluHB(=sFjHp$7zm;i&k7})``($ca(_If0-74krJKsph~ z|Ayp<2OJz6q=f>|kO@cz%max5L&yQZ^uh_`Uqlk`2Z__e z0SAD%6v)1eq~{_q)Oaa%z*b=JTZ1srFm`MXz=2-^)l0+F(lil5@fRR|2E;#+#O?qc zER9*>@eNh@)}%r00000NkvXX Hu0mjfti#y^ diff --git a/recipes/icons/freakonomics.png b/recipes/icons/freakonomics.png deleted file mode 100644 index 16f623a72583f697bc306c209ffba7669550a22c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3684 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 M07*qoM6N<$g3Oz77XSbN diff --git a/recipes/icons/frederikssundlokalavisen_dk.png b/recipes/icons/frederikssundlokalavisen_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;SWK;?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;SWHFPmT_s6j8mp^~kN0zyJIJO2L&efRut1gTSuK2Q(@yRSONI zqB$j_*j4iNG|R0{+&P1x0Stcr{uw(nTcg}kDO+11RRxHYGPN`-tn!vr{{8z0p#h@$ z_n%*rcg+T>)+n=7PczU6)dM2+bR(b$P|u8g3;z8515wHF>-W#SR}QAkEzm5tR4+8s zcGWR9F|v2C2LdBwBW*Wr^&&H%!}1na9=~*wb;ZQ8UQJ9g~fzyBZ@0QGo!d1}Py$R$Zghx3K^ zM=;pc>5B!jO2u<2hfBMVyu36*^bXf1~mmXZQ; RT_OMg002ovPDHLkV1h{dLGSHFPmT_s6j8mp^~kN0zyJIJO2L&efRut1gTSuK2Q(@yRSONI zqB$j_*j4iNG|R0{+&P1x0Stcr{uw(nTcg}kDO+11RRxHYGPN`-tn!vr{{8z0p#h@$ z_n%*rcg+T>)+n=7PczU6)dM2+bR(b$P|u8g3;z8515wHF>-W#SR}QAkEzm5tR4+8s zcGWR9F|v2C2LdBwBW*Wr^&&H%!}1na9=~*wb;ZQ8UQJ9g~fzyBZ@0QGo!d1}Py$R$Zghx3K^ zM=;pc>5B!jO2u<2hfBMVyu36*^bXf1~mmXZQ; RT_OMg002ovPDHLkV1h{dLGSMqeb$zKB_$22&Himyc$pF^8coOtJ4<5!&q4pU&cQ8YBLc$sWGT_vX-mP3k5=dvCg1g88}`L9%6-L9j{(ms=mhGNfun)EM#V($E8vfCgi&-VFb9mK>n*$n^hfAz z!~URLE$~a)a5UK9HK5y2Z$wuk?`=ALF9t3HSM^4ux8lJWJ$yT3M0*Ne7zPH1wqpG= zI_+qqVPFZ^1vbjw-w(8;oK_j%Qeyv(WiKx=v(4YJaNr*fBnPaK?8*Nb$?T!@X9s9nEZd uf`qnW4;50=D?>Z)L1M1scs@6u<9QBTlhYHLxjNAR0000}fy%3ni>?pt-82a*GIo}p`^>=Rsl)hy@SIl^7%|yu3RX2;t;!N>V2C($;*Ik17~cs$82n0;ULWSV-|*OM!DJQY^$kY^ zpE6q(q$)@PcO(U7AxED=Zy8&97lJmS;|4 TyngIF&?gL@u6{1-oD!MFDy z+yDgI00r9s0^0xq+W-LE007zm0NMis%m4_@00_y4a)`z%nK3B z3=+%@6U+}3%n%jTMn>02O4vZ+#bs;B9#rs=My>8+~iud3;%F(@zqakcxb4Eb?ZLe5!M*Lnz3s%j?!&(C!oTjpzs(RA z&Jq{w$H4E(#PP|<^3BWg&&u%7$@0?8@zc-p)6ntN&+ygG@Yc@q*3a?V)brol^Woa^ z;@$P+-}dC*_2%F8<>2@1=K1XD|LN%e<>UY4;r`*<|M2hm`0)Ap^ZWSp`}p%_YGw66THuIQ|z=c=LKm5knsf%S=s=ub`9O;8RNfI0vG z00DGTPE!Ct=GbNc008(&L_t(|+GW9mS_A7zOeyq+392s&w?-DeHN+%Mj6cZn60IwlY_mTwUrv6H&qbnT;aA;M%_(3h8hAo zlbL6=n<^t|bk@*Px(Q%9+`Zbl<&y2U5RgA!Z2;USGV?XNEvG%p;R749s=%H?Qjo7t z>~qA6N3?gaG_ZdiR#-Hblbg_*R~{4p3LMzP)itblRJP4TUA$L407s1_?e&YjU8zld zCn5c}z|B?hWydFfj7AhmJ`yt&GG$pnsi%KIxSxhs=^F^fx>vCLVTEG~!8&;{6{ a-`F3};YUp_j4BfV0000Ps0PWpi3Q1 z1G=Z-@r4|wKm^xt^mZinh+DpX1xybDC6|W&`tu3921xh<69q6%fGDRr4`>9kEV+q~ aBm@8|2@8vw@z0$A0000|$GZq6*Oa9I@i*fAk;VO?a+8{a6`7;2vnyjXJ5mDK znK}ZE9-`4Zvc%q&Ys-28@i#)QubEHHL9iS7k$w4bK>Wm$(+&>0vL&V?5dTB4GyNn& zQuuiX5OQ5*HS#!*2IuAKlEY+;KS(Vh=gAs38uwPR#LOpK0z`u^uswObz=vmeQ0z)y z3ZREe>0HNT<)Xgj;BK4-GD1 zTTihy{wbc{z1uZzJV1zB1`mdVpWBC`k7SC_4Gm!Vfqsv|y9j)wUK%oZ`ToeF{@~{j zS^k&-G{oAk!No&dNq@uAmdZ8danux~Fr5uRXpBQ{9@riuJc3P;W~jT_nXwE7{_IE{ zgP`V;EpZW+_I1)f_f(4lW125Z A=Kufz diff --git a/recipes/icons/gazeta_wyborcza.png b/recipes/icons/gazeta_wyborcza.png deleted file mode 100644 index b231f7d69622e058d3921027e8ab3c0c80d7016b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9E0De_ps3O3BMoFRmIV0) uGdMiEkp|@Odb&7VTuKjlRi5%GKM_!SBB=gEP~(Y+_9JoKrxJS4Bn+O)7(bOYd7xl)U%~Lcg7IS| z^Jgkn_cU#88#vrHbh>Tie9zG3p_%7>E1x@7-j8j3AGn6!_lUfoSnxnv|ACa=eNpwt z44m!FlU4#<%vciS7tG-B>_!@pljG^)7*cU-?ulkb=0F~X3v>2G-rlzHf5O(g-Jcag zc%;u-9mv=@YtDj4#a6mMUDl<$uh5h(oO>W*+YSc#12$gTe~DWM4f DPdkPt diff --git a/recipes/icons/geek_poke.png b/recipes/icons/geek_poke.png deleted file mode 100644 index 8d4b1dca9a69e289d57d3b186e7bc2ef5c218f5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyO9OmDT!D02TH4H+Gi_~cLqkI= zD=TemY{J9CYinz(tE+*6VPRoaRaMs3)*&GwKv^p*D~K|<2#^63v9q%Ss)VqC%AB2@ zBO@ariYqEAfDE9Ny}iAgo134XAJ8bE7N9NB(b2K7vGMWoDJdzbsi_$m896yQxw*N8 zg@wh%#igaC<>lo-?f>V_-4ArAQb~|sFas;AsHmvEzP^7zKz>0%|AYzaH*7e6;ljOp zuU@_S@Zs05Uk5ioZU(Ae?CIhdQgQ2TudC2u2ZqBjKyRj<`1e1P*V5Sg`=oW(A|`l< zMz2lc5_`1sm(PwfuXb9LY?`{TLn3U`t*rqGUDvIAK1MaK{P;9eT&`WvZ1&ra&t`-@ z-xGJ{`ML+2tnXg^xhwWutkc0%`6U&5i_9Z|8fG03S#R1{@Pm84MoJd*?hEUeF&^PM zyV7%p$tS}WmD94J8PkO(BxvmlOYFL?<@0sdsju9IQjONz&w1Mcoy*|q>gTe~DWM4f DLL;>T diff --git a/recipes/icons/gentoftelokalavisen_dk.png b/recipes/icons/gentoftelokalavisen_dk.png deleted file mode 100644 index 70464fce89f6a09dfde9717982aa2e0b0901dfd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 801 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 S1UFv*0000hAJ- zma2A^s;<7us=msWuD*t%vgYpc%GTbt#?r3B&g$~^?(+7|+Ty0V#-g^yp0dK?>h6lB zw!Y5RilVZDp00kHu6mlPvc}T3!p`32?%w9=+T!ZM(%RPI=7yfKy2{qp-saNY=H}}1 zlCHXrs=AJ*w(|D+(%RzxzYx*@004_gL_t(|UhUCG5(7a913<*&%{e>A|G&`Xv(3C< zb?%}NkU}(yK+!+~ZmDBnE1KS#)=3~g@zC|mUI2B+=6YLILIOCmU0<;!OD-sT>m&&R zs8|yP0G;~}6z)Wu599L}q?Bfq1Jk$5*a#Cc4H#Woen@vnCktSxE+U}Cw}+!xQ-0PC db}%EF`2+LD1?rSeM{EE9002ovPDHLkV1mYKta1PV diff --git a/recipes/icons/glamour.png b/recipes/icons/glamour.png deleted file mode 100644 index 130d477afd8cc074fa2f7c92f3f38e477b7e0da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 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 diff --git a/recipes/icons/gofin_pl.png b/recipes/icons/gofin_pl.png deleted file mode 100644 index 6efbb2a7afed4efa29439194c71a473b1cb4e6ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmV-Y0gwv(007wl0RR5|_t@6@*4o$s0Q>9f{_ybp@bdZE z*#G_i{{H^_|Nq+v57-3@*#`*T0}0py3fKV%+5iLA0RzC0FFZ$5Y{QUg(%+2}J(*FAU`O(qbAR+tc>gQZv1V%q@#`N72Y zz`*sr!2R{}{QLR+`~LU4z4p4g^RBV-t+4Q@tni$i_sPrh%*pn`#@YY@O+6@x> z|Ni{{{SV&Z0RR910d!JMQvg8b*k%9#0KZ8@K~#8NWy;f%1OW_2;r^4f#G>K>EdU#Zk02=!&EBuN>wB;6gP#>FL3sY~eDG-Q+Wb~v0X>Tl gOr{@&&Wx^p0Ut{k#Lm8biU0rr07*qoM6N<$g1QMu%K!iX diff --git a/recipes/icons/good_to_know.png b/recipes/icons/good_to_know.png deleted file mode 100644 index 256f3647d9e6425b56a5d65f2801b7e36af34ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 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 diff --git a/recipes/icons/gs24_pl.png b/recipes/icons/gs24_pl.png deleted file mode 100644 index 0be176e730ff55c2aae02fe801052492176ac8e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmVP)t-s{{H>| zL59B1;1ErY?(+7|+UKsr*q*o1exJfWaHKC}oF7<~-sbNQOpU+K;6QMsAX$}vpu#X^ zov*{$ZbCerQ`c59uKtd^M5gn%2#(lh+RG6Bfv+5yoM_G65LJsIRP zNu(fe%4(QU%yhvclD--&v5gjL4StP%!T(?0cwYp&(>{Nt00000NkvXXu0mjf_m^)k diff --git a/recipes/icons/gulfnews.png b/recipes/icons/gulfnews.png deleted file mode 100644 index 8e4bbc3c4f619631f688f8f00944d8ce0a72d66c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmVvOY%E-#p($w7B+}+&WQcY6f;Nj=y=l1sY zSyWk)kCK&=m3eh}KsrEscY8uSLVkLFNJ2<~eSu0vN=-;jjEIaoH9K^0beEKunU~mB2!LNp`M|lpQ59nqobjtq@kpxqNSyyrB+Z@S5jB5tgf%EuduGLw6e6dv$eOi zw^&nHzP!G`zQ7w48(UUe!okAD!^OqK#a&okURhpYTw%+~%gxKp&&|)!&(PD-(_&p> z)YH_})YaD2*4WqBV_st=A0-?W9NyjDCm|AXk%!>z`;5+ zIw2Y%#KOcpHau)+Y;9?6$j8WVYjAOGamvZca&B_W%gjDFKF!R{bZ>Oe&d<=!&_6jp z(a_P-(bCh=(;*unc5-%jba>U%)j>N!8xgnq1>g((4>+kRH@bB>P@$vHV^7HcZ^z`(De}ja8 zgh)e3Nkd8f{QZZ6hyMQlh=qu8x#OMy00H<(L_t(|+GC&-Xu~eN-Vn-g5cY1xkQI2y zwnPZZW=WEFPN+te*Ec@BWv4Kd!z91g(?uIap5vGjGfNZ`lo#tJy&-g^I+Fa++_0IF zevIufzFDu72aA}21e6=cW?{!{;~J`qq~*mvKjsEqdkBZ^q%@P2+u}Lm$d>N1WR(qJ z69h4N*Rf3!T^?*1i{>v=E2TU3;Ued_G|Xjs!Wc`j1WfIL&CAq|3-GgUe-LyQi+tv$ zMuu6BY%izYi{uf&B447(9mDS;B&aOSZ-_nU9|zjlo#9BjC7CD6Qi)B$DM6DdYYp_} zJYARaVv|37h1rOca~m%olhY*)Olh;kXDKP(JWqTI>aUdts28V6pvo&SOQ zP03O$777SE3Kc!%RxwL3aHK06c`Zn0krPvxAzxO9P|$7ct9V~gMUVAhw5@w2YwFeA zYCB9aP!j%DvB|R9GB@OumE><;V3lK;?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;SW5&6a+_9FY4l7f>=H#?jDaX)O{VR}Gj9jCCiKyrf?-`RS>M8_Kw yY$JFgyu1{+7(Y5G{Np+DzOlkepg1|0i(ymUhx_q5`vZYaWAJqKb6Mw<&;$TnG)X=H diff --git a/recipes/icons/heavy_metal_it.png b/recipes/icons/heavy_metal_it.png deleted file mode 100644 index 46529cb072e1e7d356c60e6b90f800eb008c47bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2050 zcmV+d2>thoP)`1mJCm6V^W5Ft-QC^Y4G(p9FR3D7ab7BD zm13bt6^NG9LxKz;{hRzDBt+hK_m(`K_x5(V*>moZ?|k>%rN1A7C=jXmT6HDe{06-} zm6CHwQ^@8oS@epAu6~i|Jjm5h7X-pQ%K=r9FK&KD{ABw3+Vb2cbIajghuiD+4P#=_ za=0(I(e&PmP4v!0y5xT7V$0e1V1cl}uY2U2pH?ofvkV3zu~;k=japnoyG$pG+q+BJ zyRk64hC-1jMD9RzS*=n1)dD)_Ch5O?2$&Kc&wl%Lp~2-1Vt`Mq3!(Uem9DVM&@ zqVJT6#gDlcO)mXGu5amfLe1q1eVtcNcfT!hxc(LvOtnfy?@V6ZY{wq6)BU=3EB%ne zX0j}$7pgLfR2nw1z)!s7Qm9#6Zfsd&=%(j>R`L+>|IbxbkpSzZ9S*4K3>He1=_j3} zDU>ut0?efq{AuDPL{NYleUp`CFk@rMK?gni)0mI=;J82gT~^CcC@tUFfw<1eC`y=6 z%nc!AJ{60ig!b-t?i-@wQzu- z==*HKex&mCdiL|XY`kF;W%z16o}z|Xe{^vrSb)9JXfzyQtFPpGO1R;S4}lHwl0>b` zJK_xl)Ag;>H?=L@y1%%^Hmht_+BLfe@a{>dbV(-D-Y7&iQJN(;IR_5{^I-bHMATv_jBP z0MKB|$EzP+QU!=1#`u45^vW4}`f{D9)R}(F*=9Py!U{77MyI>wNS`|pmfp&MahSjE z<2BU~{8-v-??0s^%k(C1YLkA<T<&_~)jv%@ju zqi-`wnpBMP%DZh~B+9jPdq->x=%zzXv>=$~C<)(X&#T#o@VV6Fbff;Tjua_1UzNe^ zc>E(5OfAEqDQ@d_Gp6K|IFSj8+YSL`RPx?M6~oA1LCG5k-86e6M+t6Fk_IJ%up&h_ zePTIK(xC?M1YTiR<-wzf60sJw9y;TIQu6>&t?2|HV!h#K9a?`Jr74@+fD%~5YA|oJ z!{Y-BVV^S+#~$T9XJRpoey*#-n@@6g(a(8^wbpo|heJdk&SFJ&dFV%7!h|B2%h=G$ z9l(ac?gaF3EPR^<7VSGe@bcR2aVn$#AZfTqaKOMb98_rv#k2x!vGsadQREj;6QgL7##5(Rm{B|y~U@s%Gq ziiCu;0+r>J)^w(A+&Xs?>d%uv2-ZH28t=b7(~&;Y)%||qU~nJ!Cdh6*0x{?aRWVrx3*!d@ zR}C1ksBL!z@bDBjKj=zFw%UH#>c! z$`u{Mg;8&Il=u&?^A6v%beilA3F1lCs{=|q8-O`uEeh3;8ekNXhuPfdIz(A6){3n}!iRzx?<039>Y#gyyt goN=G;;@?{O4O27;+SZfniU0rr07*qoM6N<$f)fGws{jB1 diff --git a/recipes/icons/heise_open.png b/recipes/icons/heise_open.png deleted file mode 100644 index 27418ca7222fa206d8b7367fcf6fa5d0a2fa40f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1468 zcmb`F_fyjc0L8zIdUay8XB9=zqD7Ap0+9fL2m~RFfFT~k20^C8FhU}rDG+iZAVa8$ zvMLBcpi*SWMmAX45CSF)Ap{I7VP|6Tf9U7#y?5{TPogu*=I9~SLjV9AMcN|J`>XLi zKPv4vqA;l&02Fhb9Wd7W_uKym2n5pC*WcUQ)6>%fgTZ34SXWoq#>Pe_lUZ3=Nu|<_ zjSY!JBA3f|cXtg840LpK=H}*jJRS~*tE;PPZ*NB;kxoudW@ctWp>TV9duL}SJ3AW& zgBcncLZQ&*2v$~BoSmH+495KYd}wH>rKM$JVxps?l&2?;SaHV($)J3Bi)JUr&PTt1)Q+0n7Eu;B0S9~2bi<>i(4>Qzxuk&%(n znh4TU$#_O%3q(hd?0V;o&|$KE=hw*C3Fzw6vC%7ABMF?&ii}b6i|p zVq;_P<8U!CF<30t-rjzBX(=ZsXMB7dg+dJu3`|Z=K8%VgC@6@JkI%}=dO@dKTU+<_ z_2uT|6c!YEdU`^Qj4CQBmiT;ESJ$|>xS5%maTcqosfjnw8yXr)c=CiqBrYy4Mny%{ z*4E~|$|Dkqo>(l4#Y##_nw_1+U@#;Si9jH**=#PC>x4qB3x#Ad8LY40)zvjUHD!lH znwXf>*Vk87RRsqJ`}z5mmX^Zd@c#b(iHQk!cXtYfB3N6a#!*K`M)LCV^7Hc@930Zq z)1?v#NDm|yi7hNFT3cHO2M6UcxlAg(g~61Ump^#$Ae=yGXlTgH%p4dPSXo|9e)^s1 z>FLPG$j!}7p+HD}^r*3+v8}BwIXStvw|94EhdDZ0#3(W~H60!v4h;$MxqCM-Fc6JK zzs}Fs*3qF-shKZd+S=MyS64FwC(i5(dWMKbxd6ZqI$;%4+sdXnb27EG6_cJDlif-% z-C2W#)TMo!-y;zgm`FAzgG$##p1xtgt_eoa|HgA_nrrYJjt^(QA7=7l#t>0z3^(Zf zLA?<5JMb9c?&kLT&Ixwa2?dHp+Xb(ynoup!b=c~ueD7JHW~pH-Sw_7c=~jH)N%m9v z^;s2Orho@Ej}8c4eSu0yKHknvONz%%VWa4VjTm}$^`%tzstYD|2{z*4cVY(YsmI<@ zM0vT|=aJES=}#(2ulrRm8Xkz2&RoR~%J~O|23u(2B%ZWZ<1)rU;?toKmV~aiC&k85 zG@-7T`~T*ucvo1S44eH5r)#;wfv2YynTi9ej7B)|Mp#omm96*p5s0Y%(a% z4_D?Z#wk{dl()VWN?>ZSpI$IXs=)2D^Ve(>#>tjn@o2)N_OoV7p0-jeE9~2S@CEZM zJ>TXGNw*y^c?T(W1OsGTOxbZV1Rm+)ffXnUYwXKzJAH}=d(kAtCuD{(IirlM(Ic() zb_1O7FZJ}X#AggvVQkBRGCaEG7eL#s*iH{UTS{}vI!odf(WA;f_!n8NszzrIl(c;F z%1i{IFX&7J_^xZudV+EY*PXa{W&9xOFB3C`08g#Ko?p4{-Hm^$(#{3l7+1(30h0nY zXd17$i7axEze{@aT*UA7y9~Na;Hzuljh<_}-;{F3!V<#2> diff --git a/recipes/icons/helsingin_sanomat.png b/recipes/icons/helsingin_sanomat.png deleted file mode 100644 index 97ad6a875586c20a6547d6fd287177cf88169544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P){-muz~M1szXxft?sGTzG|`e2Alei=`PaT^cZ6iE-9_=<4q2>+kC9@a^vM?(g&O@bmET^z`-j_4W5A zJ7y?7X!!X0DLrWY{r&#_{xe5!?b4}t0002`Nkl zNseXiA-c+G0Ak$0F#P}qz9C9J!Z5^TtTPeBAMR&HeI4D0j9`_#?Qg*^|L6#zlLoyN zqD4B!fLWUSs1|(5h80DLd~pOo&o#-rQB(;rYJJ3lS>xmrnMaj01J-f&!ZNN?M#UvL z1(VJKY+=5lqK(`(S3fy{{h2pFJ5HdAmwazF?ju)Jl4rXYxpq`(%8-M`JLEw_mWH$s pf)hz98cj>m9_A&f?tBh4f*%@k8r*`VOuzsD002ovPDHLkV1nk+H~0Vm diff --git a/recipes/icons/hindu_human_rights.png b/recipes/icons/hindu_human_rights.png deleted file mode 100644 index bc8088750eeffe1e2b648be9869932e5462e0045..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1035 zcmV+m1oZofP)B6~GHa%Wf;af?tmy!gK&B;d9zyTU3#>sXq z)#F`3ps9oql`Vicztdj-S82$TY+r~4Y}Acg1%95p8Qvd@0$=9&*~*Ae(+B)u=hxe4 zeJ>4uneF#JKhRHAikcQc3_2R;^d&d=Wu@=e%Ahn|C90(&i0PJcLNC(;-nII^-|6esyBPxqWZ>~s5`7Ba`zlxh}0OqptK`e(E6um46LkGOry3fUB9 zL$x5{0f*7L7@PmEZ7#lQdUZead!_Hb2uG?#G7k?Zp&pu~@%UqP<>{C2KKlKh<+an7 z+7_JHB)99)hNxXX4?Ldy|Cr@GTN~=d0oa25TctK$S{AbEW&Oc3zaDsH7%5OM4tPMO zbky^&-(4W(T$r%n+@>8lQoxdejg!){0U0RBaTevt02v;oD-G=2*cgDd0Vfr505BS1 zmVpQ%2~`FqC$!p)93aKRX)Yy#Rmw+!zu(m$RbNSh2jl}eeoiqm5|g8xSiY(16gQ(x zBV{)Q341xQ5Dl4HE3H``#aPm0tgzIW;cmRx z$9$=;IgkX}2NXXNx2**+@*ET_5|PjEKq zcQ)7*V*4`J?{iVmvm9Swm2frH<8Fr6_mW_sC&-D0)qz%T^8-%DyM8JPIuz}+JJSAk zhWGX`JD?pq!t6GO*lr88I~DKxJl9WzldS9ztS$r8Jk!H;V~FjF0IP*Q=JzsvfaHz{ z`{jO?YXYrS23X$7@Sf)lDpo~EjRbyh^6a(OzXA-0OpwEYLH{N{V0VN)utMG!wL4*-(i%R}Df2fB)g@ko%B z-HgK&A}5jE_rJ)h6pzk5$Rjq3prT|n= zW|p>1Rc*c=kg(L2!Hhq2rH#iFQy|G;%AdT<(pTv1KKsHdsJWd%X3seIwu&4q8+l)xn0sw^8Elp};VAlWu002ovPDHLk FV1ioD*Tet- diff --git a/recipes/icons/hnonline.png b/recipes/icons/hnonline.png deleted file mode 100644 index b0df23d5f1a9b367b57fe8a2b6250f880eb7ba9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 632 zcmV-;0*C#HP)1}&{QctS?)m!r zUVWWbc9<1GaU4f=IbMfIYmg2+Z5c&#aEqw@{r>*`|L^klpR&c{>FzRFf&edKn5@CI z!_xl$|6F^V2sUXTN_P!AY{}E!`1$)~f}%-lk@ffaK4OaW_W9`S@vXhhS$LY1sJ_hB z-~cXQ05D}mXpZad^8hYk1T<%Uma!5)Z@kFX>Fx3_R)OsB^a3$uVSk?kGiC)eXNsY? zGg*V8w8t=4f&BgcO>dJAJZ)=;rL4TnL}!iH`OX>u009t5L_t(|UhUAuZp1JYhS7U% z2Znjd%*@Qp%-r{XieASHH_=qCH?tV!Tm6c1WXmAHhkqx3u1lg$r!-b^O~ah?gxZBH z?G?FNXpB@qHMYrlc1V+U4-tFSPV~_3mTQoPJDpQxpbydMHxsJ56d}S$@H%aK3Qp#m zZ3$*tbG8Ii&(;JNMy<))_#b4VD`*Ns#7mNynbid5G|~Mg^JOB7d&`>mCepULMrM7Z z=EX7{L0b_5+dE`-%e6?dGicw55IAsYq#W~$X;L^unI=caCITm?VR8n-M9wedH;ao= zmsb%|ESd=1+}fT3clXu=9`bIOJU%hTUetaq(SDcfgHfNLN`Em{`i90SF75|bb}3F* S)R?sZ0000K;?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;SWC66GWtBKKP~EgeeM$z?i?KMEiLXgHtsz(?ms{7M@Q~fNA7BB@Ni!9hKBcX zYxi_?`GJM`-QD^4_4)bv{Gp-z?BV?S_5Az!{QUg?KtTU}egA=h|Dv4#qoDt!r2n+C z|FyOM#>4-|$N%u?|M>O){Ph3*`2YU=|Ns9E2wScI005auL_t&-83n=NPJ&<*0MK(k zK$()cq#te8`@dN&wb-;`47{BK03h1UwP3O`MQ5pBSMB$)@sTe%eZD!D!ILP_RdEd` zZQWkR5w>;{SxVD)9e&;;$jF*R^eYHa*h6y=^c2n*PIF?Qq{ME0k_2^RkeBrw+^V@L z_dxUvw8z6(M$csMh%futR&JZ{mmAA+fA|Fe007`0&t^5B<|LjS00000NkvXXu0mjf D&6=}# diff --git a/recipes/icons/hollywood_reporter.png b/recipes/icons/hollywood_reporter.png deleted file mode 100644 index 91e98e3fac1d196b9a66533dcda9fb0893e5e6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVSnHw#IK;RrA5Ar^+i%nSz^K;$7NFk)ml!o_ruk>Lt2lFV#WFIuqT?hQ8o%%hixw3LWaa)dwNz|sV$aNGGq?Hk^AE#5 z4z`W`{mTXTzW@K<#=x+yzV7SQE0Y8L*D)~s|Np;TS?P?6^UYT;`@!6W3=9mrm6d?h zr@ecZRaWk2WnLvA0g}+typ$0C>i>VBy1!4JY^bij+0i*UE_NFm8^b0cku_l5jSLK% zm{=Z8o4#ezUYqj546MWh>WAnzRBeK2<_`t)Ljg8YzX%%}w)?lNYn|Zwm@rUQ;tmQ+H=# z^5W8xMJiew8yn_DMK59E+>nqw&CYSPh&01eNu}iik}HLzmq{xx6_s7VFS$}eVX3gp z3IWOG;tC)sVHu#*G9l@e;_^$Slo=MusF8#irb{bNmsSCh2&4ibAqY*7p;=s}SzH=O p;$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;SW9?M=THuwz&zs2Z?E1 zhcm@qK9N8un32Nv6RKcV5=6h#-gkU3>0eAm-4M~J#S9HK5N6E6FKmb)^Vtj%WBNNK zg8}HZzaUOUE5d?13J_}z&fbxOyP>55p+S=NnprnR|h5#{^wzjrNbN|lH z&Z?@aZfC3C{U!jh7bpZBHV0002;NklS$rRmfG=E8Kn+0E?H7suy!#?A?b5dku#)8*T1uzD}2Z1fi>LaYTSnu1Fo zAQ4i?qM-qw4Im*($T{x<_)T)rUJxa!3lzuV0T5jPiNynuHTVvRG-nq;o(1PaIy9yC z;E-e%T&!OQFy=f3(>lQF0Yw~q0G$A1$g{vsz0Q+!@Z4zh db5r~J^#@tNFjT!-=wtu@002ovPDHLkV1kRzvZVk3 diff --git a/recipes/icons/house_news.png b/recipes/icons/house_news.png deleted file mode 100644 index 4b1c1998ad03fdfe49cd525f93dbbeafeb56a562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmV+!0_OdRP)E|s0Y!*Kqg*1$iTx;JXMq_C=(H!qEiopxj|(I>1n5mI(O)Pc1e~Ww#he3 zSKF>#(^T4~t(~?@GTX(G?Xdk9J|(DOLkb^W-Vi>?^W+=qEO*=E3VHl@A5=$Ko||7< zh%z+5!ioGcvx0>>#}D0De+7b-513b#r>EG!MEU(@K0m*>n9b$Dk7o1m=+JQ-Sy8C- z{GD6r*C1lXF|Q|HLXdyu?VTM6TA=_e+jd>ov`j@+DcpXcPX~>ewLJ~f6Cz1^G!cS8 z6a_R}t#+rqe{dklGBuz)c~kia#7-J>qVx{JELj?sCLu_KfP${)HO;72qcq)p!%0>* zrQk*w!by$`r`f=GDa>t1W0`5B?=7JBrPu>6k|2r*-9s44O!j}i?+KhB$b|F|&agMp zJDTL5CEucJ??|2#)76kR``^-t(I?zZxy3m%zF-mmXZ?~&)#~-e)>f%p{?=%8g$v?6 zb+2$ueO^D>CQdHyWc>nC{cN{!>i9J*+v*B9xMf>;n49|45<>OJlriHMQt33FT``Pm zt%ikJWvM^81KIs@#{C-pPWuIx<2t*$_%*goQ!f@*80KH;i?QJWGICjZKWf9A~WSCTc!Du@uUw#W^nvi2^#152BCY17RhIh*1cU zxF0j~9^cIdi$JE)AOA{Z$1k2g`}XSfBlY{p1c+!`{Kojl_QAnJ;4Rm1vi|3j!S>M< z4TfL_f@m6w-5rK|Kk4FRQM%fy!g?i`K|q*LRT1WNaWY|COLTHp1V|u(#F{{Ypp%nD zT@$kzA%Phy(KN(t4ko%dnT<9!i<=W{H~Q$$}j&ntMcQ0}2`{9$MsuE^G2*ia5FwM!F4)Rh+U;+sOFdzX^kQp5!fB=FuV@>?! zbg65_Vrl98HQw{&hd++Rby4axjKKf^ N002ovPDHLkV1oPOyORI_ diff --git a/recipes/icons/huffingtonpost.png b/recipes/icons/huffingtonpost.png deleted file mode 100644 index 0bd11bd96ff6be5b378dcf52b6fa69666007f21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmV-D0mA-?P)jZ#DL=G05U>2j^a3zK?n#00KtG50RsU*U_cJ{5p3 z0KOG~4*>oYfDnMi8n9wKU}psw07w;p27polC;(^`fCPZi8nC2K&Jr208G|^i;H)Rd&g}GnDBkf&I-^0kShQc0JQ>;0njS|5dgC_V8giY zvRea201|dqfEIv40Vn}z6o3?fK>-K=SgipI#zS_`0M2*h7l3zm59V|OnxVakuz9SC P00000NkvXXu0mjf(4=db diff --git a/recipes/icons/huffingtonpost_uk.png b/recipes/icons/huffingtonpost_uk.png deleted file mode 100644 index 392cf8b7104527629da561ad3a4ebb4f407ea2db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!M}SX=t4?8xesP*{S*CeKj$3ni zNKa#EPg7`bQ}*mhIddi#Etp=pbZ+PR6|?tjowsktg8e(MK7MfR@xvQWAKiZb^zMsi z4_>`^^ybyOFP{aBlvIFbx_i1fhE&{I+ruo@5Fp?hzisRPsbTl+=2)wBXe`^xx~ue5 z=yJ=M_SqV%=KkDk)SLdNa?P>We|JKEE!j82{>$Z@n`{f>pEH@%$Sq-#p7STS0ca$H Mr>mdKI;Vst0R7lq<^TWy diff --git a/recipes/icons/hvidovreavis_dk.png b/recipes/icons/hvidovreavis_dk.png deleted file mode 100644 index 253d59b2583d19e3e8df88c7262661779ec4098a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)J(tP91}8Ep(7jkfaWC zh#<<+5W~uxG;*0TMM2RB9cOvV@4difPJKS)=H2I!19>jh0fLtw;=?lu$SP4hlFNPT zl)E5TeK(bQy;clD3{yClM|e78Tt3(8aw-5Of35b8tPw?li?$V7*DoChu*Wy^xZ8wn ziOi@Fbo(OnOYQtAd5**y-;)EaCf#; zq|%w#^lw>`P6iSXI!qn5pdb_=*v4cybD(${{aRgh>12GVXJ`Sy#l!h9beI|}K|wgO zBnK2PB;|Z91Mn%n`eu#+Xl>Y+&yp~7Sb~Cc5bR(QWEGO!(HH+4-f<+-K$Rec5 zwSMeSC4k#-F+x=8!K>OW@Z0dzF^VG9bbfDmlaO{>M9)O6#^_n+g-6ov*p4J{dc zA4_Z|>#O#{wm7(qUG+uEi)HodgK`T)$70iwVA=hr1Cd~$$e$Yy)&2vyjr4RhVNde_0000< KMNUMnLSTXdK;?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?kk3$Ny$~G+ibNz&WT6+bh-O8Eg+&YZiW z-ek!IsM@6pNLo5DA43dqN%Aj{3NRy}36uyp&?At5H39|LB2a-AfdNMjKnK#bC~H7B r+ie5PtPMC)xa#3KI#ycV7yh>oPp$^+;rRl<00000NkvXXu0mjfkKJX1 diff --git a/recipes/icons/ideal_granada.png b/recipes/icons/ideal_granada.png deleted file mode 100644 index 022305f78b24e9bb699b32baee9cff11fe39c682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmV?kk3$Ny$~G+ibNz&WT6+bh-O8Eg+&YZiW z-ek!IsM@6pNLo5DA43dqN%Aj{3NRy}36uyp&?At5H39|LB2a-AfdNMjKnK#bC~H7B r+ie5PtPMC)xa#3KI#ycV7yh>oPp$^+;rRl<00000NkvXXu0mjfkKJX1 diff --git a/recipes/icons/ideal_jaen.png b/recipes/icons/ideal_jaen.png deleted file mode 100644 index 022305f78b24e9bb699b32baee9cff11fe39c682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmV?kk3$Ny$~G+ibNz&WT6+bh-O8Eg+&YZiW z-ek!IsM@6pNLo5DA43dqN%Aj{3NRy}36uyp&?At5H39|LB2a-AfdNMjKnK#bC~H7B r+ie5PtPMC)xa#3KI#ycV7yh>oPp$^+;rRl<00000NkvXXu0mjfkKJX1 diff --git a/recipes/icons/idg_se.png b/recipes/icons/idg_se.png deleted file mode 100644 index f9142929574ca9f0d769a1279ff65f0210cf6ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyW&u7Su0Z<#|NlZ8Uyy{nXRiqZ z>J%&q@(X5Q5Ku612uLVs=%2rS|M~mx|LGO%XJBBI_jGX#sfcTxbepe5fyX5_&y{QI z=l}M*nV1X}ch@e|WKWl{v8#V|V;b+`+suJi|1$V!_MPH)$SA2+So$)BJHpiecqR87 z=edmgnLjbB^ab2va9z&G^j<~4{q@y626h`o$R!_Dt}5oHKm#jx;||Dq*Q;-NQr{+ZMo&Rt>7eRbXCZx_=pZJO%X@NVseZ=OeY ze7ut;xF+QPOrL-`$}3!#)J5~Nx?f-sYn-Rw%xSYI&P8eU|&8(d@F)->D_JIi!U t`>Iv-3h9PmQ2$fd0;p)c)I$ztaD0e0sx(EwDkZ0 diff --git a/recipes/icons/iekspries.png b/recipes/icons/iekspries.png deleted file mode 100644 index f0c543dcf7654078fc5048d0767c229e749c1c7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUy{0OAQ$^;cDiF!uR0ATp zTWWIu|Nk!yy|50b#@f@xF@z&JS;LHtxtL9*EwZEAc*epdYgndgu`{N$Z8GfOO_5-l uDWEx{gRy5JPdLx@yqqOVdXmJYm>H6sRrVg_+%XGi41=eupUXO@geCxv6D|+{ diff --git a/recipes/icons/ihned.cz.png b/recipes/icons/ihned.cz.png deleted file mode 100644 index 0cf00abae8e9b005cb5053f1e4e54d438e04beb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1063 zcmV+?1laqDP)n|q8dxH=Wcv3MUQ0Z zaF!m*Qt*ZA71g0MJ$^^StC1W%nxk9XWPp>$QtEHzreXW*bq}^-dsiP<$Y|-iMFY>e z#X!7W)EZyR=vv+Tx9J-VKfP>`F&U|a+wz5n8ymJ?b^J{ycy2h+lqzuUu!6y)`bkcE zy54NHT8`iPdae@XU@WO#TQGtEaO+pSffyiXXLZ^1TKso)-T+55MG^mHL0>YQYQz7$ zphv{8fgu4R$f!KEVjL$VN9M~v+x;eJeAjk1S5d|Y*x2DR>JhECGdts63X+6V>Ero zXZU@ojv}x|@1@1@+zTM%Hq$rrWJzs&gGCVcW` zt-FF)hhVyB32}KSNmr|GyHQu>DmVT#71P_hMQnb5C;@?wW~k}(5{xUQb_HnTxN`Bw zvd9oF+0NuNX;fb^10XXrZh5&TZ34%Y$O$6*R zrp4D|O8A({xO{MGde4%)8Wjr)u)2C*g>0qS#M&T%eG&!eF(rea}~_>wRwmg zKo2+sZb56DnbEnZ1<*Ad=5H4aC>;o(7Q-33Qg!DsuRAvxG$UMr4{<4m>SBi>!jR}K zafThv(rB6<%W2SL;CO(@N5oF92^D$Shy5>{uIqxC*tvyz@og6i5qoYlfq(MOuFTzT h&HcYE`vmXSUIA_?TZsC$V5R^7002ovPDHLkV1o9r?D_xz diff --git a/recipes/icons/ihned.png b/recipes/icons/ihned.png deleted file mode 100644 index 0cf00abae8e9b005cb5053f1e4e54d438e04beb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1063 zcmV+?1laqDP)n|q8dxH=Wcv3MUQ0Z zaF!m*Qt*ZA71g0MJ$^^StC1W%nxk9XWPp>$QtEHzreXW*bq}^-dsiP<$Y|-iMFY>e z#X!7W)EZyR=vv+Tx9J-VKfP>`F&U|a+wz5n8ymJ?b^J{ycy2h+lqzuUu!6y)`bkcE zy54NHT8`iPdae@XU@WO#TQGtEaO+pSffyiXXLZ^1TKso)-T+55MG^mHL0>YQYQz7$ zphv{8fgu4R$f!KEVjL$VN9M~v+x;eJeAjk1S5d|Y*x2DR>JhECGdts63X+6V>Ero zXZU@ojv}x|@1@1@+zTM%Hq$rrWJzs&gGCVcW` zt-FF)hhVyB32}KSNmr|GyHQu>DmVT#71P_hMQnb5C;@?wW~k}(5{xUQb_HnTxN`Bw zvd9oF+0NuNX;fb^10XXrZh5&TZ34%Y$O$6*R zrp4D|O8A({xO{MGde4%)8Wjr)u)2C*g>0qS#M&T%eG&!eF(rea}~_>wRwmg zKo2+sZb56DnbEnZ1<*Ad=5H4aC>;o(7Q-33Qg!DsuRAvxG$UMr4{<4m>SBi>!jR}K zafThv(rB6<%W2SL;CO(@N5oF92^D$Shy5>{uIqxC*tvyz@og6i5qoYlfq(MOuFTzT h&HcYE`vmXSUIA_?TZsC$V5R^7002ovPDHLkV1o9r?D_xz diff --git a/recipes/icons/il_foglio.png b/recipes/icons/il_foglio.png deleted file mode 100644 index ba530ffb07768419cbaa7f535a27e1fa85af1c02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 290 zcmV+-0p0$IP)qbAhf-evH-;4g!H|b$R{#J207*qoM6N<$f>q6RqW}N^ diff --git a/recipes/icons/iliteratura_cz.png b/recipes/icons/iliteratura_cz.png deleted file mode 100644 index 9b7784fe6745df95f35d3a1903328d7b8e076b9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515 zcmV+e0{s1nP)F@tDW`KZz@9*!BkdWZu;PLeLprD|wywCsH z;{VLqk*2@!@bFDO7E1yEm^;@-CRmfrLKKNm2XS(9C|FFCKeV;Lc$ zA-UZdTNzy?mm9Fn@-h>j;5o&9T@?7G5W{+oD|X>J%OfTbz+K`30fqb11{lp2I7`+k zoTfiNfbZ-HdTqhDrzx17N6CRy6Fq7eb9w_SO`rnMt!xXTF|2x=0*VxXjqSiVz&HTu z&e+XH!!O*m{f|72uwWTB3W&vi)m&q@Fsw)5j4l(Ps+TU-x2Ue5Kk+5^Vr&TcdFcGeN*4 zzP)m{mzERZIunzN{vz_k4LnVJ`FP6;tSUnfT;zuEsy`Q~5*Lx2%c|BYsK2;cmB~^z5kga$N0ddHv*x~2r0|D zX3teFc;#k0CKi$_QF-IH`^Wn~^Khw10c4Q#Aqq`bfDBKM4LbStJ8d{{exSPL%8lEG z?j3pCMg==CjA87?Q&@+KKMbG~Q6Oo$_JNU=uNm9x(*6Udm}iZ;Wf;I*3}O{-#s6Us zZvF58j+NRXw&Cuc&C5-88|)vpY7r(7n6AZGhn+b4g96UMc5N37WRJM8>m|aa)ZcOa zaR`t)S|?&FzVg2UR^nOoY4f$h^AySy7jfuqYX@q&K8Bi^_B-4-Q@{Y81}S20=zERu zI0~~EAC=4Oa`h6F5twNY;QW~Y9!CV4oSr{mu&0E%gn8->jtskLQ9=%hna5v{nI6Cu zI0HbN>u2vE-zJI(LZlpe*Ew?!SuoJ1V&+lA4*(zrFp0!E0ic0yuAR4ypoch1CM76R zog|#})xlZr8H&gP0ziTQ0la?~x&!xM5@LXJPx9$Gu_fK@30=vgd=NSg3yqXfzmm zgMp%{tZJdWUTH0w6=ctboqq*VsZl%=TNN@bD(gws}eDgCA^x1MWw6nStOKn#$}rVCZely?yflk25tfLvh;kO>H~1i=&{ ziHY(^$slY1)lrgB7JQ1OtF0@Y=k_O1Lmv{*+X2Yd$B!XTfV51SC#{o)q&b>ZqLeTq z2nlmEA|zx3>f*P zk_>T7CQA_0Y|^fi>F2o5F}TWW)%n&u%ESXz32L@*)$6wvyqstatA=<#ZqIAbL$(7fBXw1 zWs(eOgYvu7D#gY z(ykIDNNE&ZJZqn9p+(C~`h6#09DM(ZrTvV)!dp*}n~juQmTWh{1m#`S#%PR^Hc0C< z16|p-tt^yg0{9iiIsji>!R2S#a6*4}hgUbzn4l04wh0PkM#&#y`R6&~F2ZgOze-Y{ zf<$93>)m;@@z-!0bO3H!cF@g(6JFfA@6z*e{^U6K}iNp{gy^5FQ_ow)x| ze;Qxu?x(nDW5&Mr@tkuHvzIaU28}LD3jemKFh)yf+=3^e6M!gf3e%>(_K4BGQ#V(R zz3!?#jgze%e#i~~xl=8TD4?Ie?d`Gjp)Tup&gP7tviL0CeVu5(OL}*80=NS|hiL&x zka=%OgIHhd9j)S$jW^adp7O}ZXP=irgcLA`N-K2Jqg=WzG=KlhL6ltp}3aZ;>oQ0e4F8~P&n9EKSI+{n))4ogoQrh Z{tH@ed8C%5X9)lR002ovPDHLkV1gXz4p9IA diff --git a/recipes/icons/infomotori.png b/recipes/icons/infomotori.png deleted file mode 100644 index 2146ac4e6b66d0ade7cfdadbd933984debba5318..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1770 zcmViy(#| zfDB?->QR+`ZAd!yytal7ZpYz%_bltZD(F4md#czQ&EMq{8t5X3AqXIY7#0`@XWCVb zz;Tv!wVkBowxBOHe;~Owi2-G4y?igbZR>V1ykIpz7ec)|7^ZJ*49T?|-Fv7Kk*5D?tZO z6#>Mszz91aK-C;WgJl^fH}{LY|E=bqjrf$ez0W7?LxfbCey%JA#$3!#_ zefoxx_soq%Z>(80JyI<4+>mxfoJ7jY1r?8Y?|a(yhPg1p4hT>uC;=Am+0>-2 z&3@~;X2PiAKfji=6iP$_X|un}S1$F$y(0^AU61aUFPhNZasF8%*&;XMsH$#$?T~`-yy}qpQWvv zs0Z}4T{uIVjR7x)rzIOUtkw?iXV|fclu1G)LCM6HBl}gO2Js?I{saKXf;a+}lH7)G zphEa7oP&_jQ^zQA5o<%MQQ&Mf@m)1u$MRu1f4xnUKaniQu03;HO?&%AG^al#eEv-A<#XC*gGfUx8z2b=wa~^& z&S?)bOgI>XoXEmF9x!%T4FF_w8v;avni7Eo_U^TI@>tEVe)g*uDTS1^qnrn0F&Bq> zLw-MWg2P;_+sP3){CJ<6g`PSBw*vq+u?A4TL;#pL20eX(2Usnh*mq@1<`}lDBa8AG zo0XDFiQFtos{#ODmOy~gs)^i8zrKt{Ej-}#am}PL9|1KbYS3i30zGwt%;(1xdSE`Z z*LD9k(S`t@X1pp4mvDYtb7ti3CX?~;reQq{H#sfqG2}sp6x#5@s z;LHg!H-|QxD5at*`Ze6iVQx}VY}~O)zj~=R?p+Y~hB=l}D^2@$R;*m?iGBmi0lQWM zkV6JFV_Ij?{se$}!bt0hBQPO!r5+eQjmoD{`qWD2-J8(BlDSi>;@$in3MMm)r?to^&HsYNjNgdG`y-3HfozEi~Y;9kM4!)@tX06dGu6Y#kPhqnQ)SrSVh*^bFv!u79k-VlyG zJub~?4ikP{KIdj4!y=udNmqcF_EX+=1iGCS6p6F(5L$=Ta@tnaCmu2;bnKii}diSn~wG4w{pIJ0je;@9Gz2l5C8xG M07*qoM6N<$fZNK;W5KEEyugn^7P zWXLc?5yiMeqXseMZy)+*C%m5Etf%{HfL zX?~TptS~Xj=Iq%f!;jhgQ9lANhs%AR^PcmZ^S;mfULtp2`cDU0Bv>T)`ve@C;R@#+ z92!0jQ*JY7EU_c=6VOu1Kb?5Z9T{W^-V)+1V+T4wDJy`nF7b0XWD;L&;+%lt3B{D> zgY0eLcDh!Q&r)hzS10JTs8E#NXWZdwl&p?_l-4GETBcL10 zE?LaxhEwMlZ=sw^%co^xc9Icd9HIAx9>+1%s*?zNFQFbN&%hk{{3X|GWh(JdM#P$b znSs31zCu>uudh+VEL|Uu7)+0k69P<2SU!C^0~WN_H>9xyFv~XYwpgrjsoXBwLx?K3 z&>oQQrlB0q6dJ{rp}ClmMS>0Ky6j$j3%T%#xk@^xTPL9e!$C$!g8nyOnsY70u##bx-om?%lX zb!R4EVK?9}Lj|2&w+$gNkB`?JR$}U^IJ;VwXZ5Lj)Ybd~Q~ArHB*e#B-Yy7uL7CPh zw_>rezCq05XYqp}Ev)?Zeh}c7-T`cPEIbC3Fh{?B8y_1R>gkiR{NxeRis8~JgsaNVw+hE>e%qu;BLWHKgZ=^2GGT#mT@#>HBomG*r(jlls7hi| z2|ttaQ-;Ubk%rUfkxxkLdDTrjQnGd{@-#OAPMTfi4pFyO*QL>QYg_E^Gn*39sj0=! zu2jE%+*G6zoLD>w+yDRo07*qoM6N<$ Eg13R)G5`Po diff --git a/recipes/icons/infra_pl.png b/recipes/icons/infra_pl.png deleted file mode 100644 index f2ff580e4485bfdf3a76220b9476594ad90b4c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmV=-y;%AsE|P_xBvz7-~m1YkM+S1kp>ue2o6x74~jSd0tyyVC3vWz zpmYHD$KOYF&v#V7Pg3R}1XY3pQh*FXLIYYc%{2n$|3>)x)6t6i^JiY2H0eck6<9x< zG_+tU^ir+?CI*Sju*{fc5+g;lPu_m`xb}d-1T7qwlN--pRAg*f7m1A^(&W*o&1{hs z*p_9IO!<7px>!eI98*lnSqm2>8sA09&)$aj(T?wbtXL%EQ zhsMLm$i$r4$+EK6F_YW#3%c?OT5=||?<`0E4=z)tNi5=VnM`I3kB!I~r4^CFNNKC3 zua6c@FSu}U;<2)!QuIH1-Ff_6#3H0M(c$&{Nq2pF^Yq@0vE!Sw$G67|Pi-h^Xu8+* zuY#Z;>Op(Tj`cJl?mT{9|lYaq;%$i}#ikCrZoD+rzHKCwy&w@~Wl2W_Rh8 zWhJ#U=H8t*rD4yOio(3r#t?%uM95&<4eO6(7O!2ormU1? z4>N=d+e#55BwB9GpJqy1*jCli-8Cnx^Rq@$j}20}{>+Kx+cuM|m^33KfM%RRaR`QA zy{&b(7v#n-Rqh>VYj1hc*zx{jdLRh^KoA64YvMq=%mV~i02;t^nr_~DS$F4i8H`xy@q+%`&B;W*8N~x4mN@=bC1CJ8^r+LWDrT_o{07*qoM6N<$f;nApQvd(} diff --git a/recipes/icons/inopressa.png b/recipes/icons/inopressa.png deleted file mode 100644 index e5c7259e56f6a8a022173444cd2f28b68f6598dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2256 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 SJM8lS0000<@5nG(c`+Gi@bX@+5_A@ zdNDgH-NGrwER=y7c}f^5$D~|d?Uu*A(+=izZF6NeN0mrHm|93Fj1*w5y5{os;?`Xw z{P)jXTAAN|s0*8P2_BS!70Xn?WC*!2`KIyO;^rNuKXSb8$49w1QNIEUPmts?Oae># z1ONPG>Dhzc$Nd~FTicaihm%JyyNzv0A%p-&G6PHsYg?O5ZSuX$r$RQb$ri(m00Tfe z6G&zjg(!*vWO|J`IHdEB{0~FuZ&gBPfDjUZAT}%CyBKZ;0>ISs*f=-5wi}m*>Qw-X h+41_QTP-{1{SQG($I!c|=`H{O002ovPDHLkV1j+L#?Al$ diff --git a/recipes/icons/ivanamilakovic.png b/recipes/icons/ivanamilakovic.png deleted file mode 100644 index 293ea03423407a59b8f0d1005bb7cb3e0fca46ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2232 zcmV;p2uJscP)qvDRf-=A7HsH6fJ#`{ql=7*5Fm1rPG*I+jS5sn)cT^J=qQ z&e!wh=ImmzTC8JCOlZ#eU@#aD%OV#-GR7#SsVwusu-sJD{9@rOtE;AN>V7BMyKsc? zjF3qDqF&6_i}h-~Ir-$%n{T~+IN2LcrXSy#g-CTiu-*|)0U4YRDR3#Q_f1{*9E{@- zlzA81)>>;M(~NWYyRyx;F{ZAo#q#d#{NBaA^Jd%KdjI2VfB5Y;uRim&FMowbU)!*0 zok@{EHi6rTFq#MfnX^Ree6y-fPEN{v_}~|>1V)$^iBgY;fA-TKJMY`3wb3zYgrFoO zlGq<#xu!k&!en^=;dFTa<)uxviIEFJ5>DWPgYB9OzLS$rZ@lq$V;ZUSbKiRQ=;+XU z8-kB9ip~7?cs#lM;PG%gVv;i{DHU)2<89ZWNPfDkhDX!-?5uWda&+I;`UqS?agUUu z<(W{YckW()?G0z`bZ;7bI=_3iw>RPaV%~c}m9wdGY_P6dE=!dS+Rm<*tCV=6Vsds`I64$udhV<5V1I`<_kn*<_s%GqmGkAqs~j6X?)G^+`I`N_NLRzN0;F2 zz1b|wWJ)0h9#}xb#M#9faVUy$kx%cQUW90s%6xFEYJ;a%3(i9_)}TkTdox`(A>*}a zNFd(3O5O)Ol*iq*v46ka5+C23!)n?N(Gq=#!!)q zBm}p{qE|lnlqgODMsH&Xt?8tOXbF^n<^w48;!#tsG?4=F$9rIJOkFMO7hibc>eG*n z^(Z3hF(M-3#pkYC=S*j}U5kN(>RpKQi)AkOARpuXLIX;HAn`z(#w8C|VT3LUDI}FF zxUg;O5UgVMiN_v(_UW$+A~EmUwp}ci;=$vIK?FOquBhf7E)S>E`|q1vzxHm|+H$D- zu5c2pTP-)e=K|o-^(hUNt2L%`CgE(L@yf#wbya=i+I6m{*1Ni{t#M*FC^@ChSiuod z-?jC6GZ(rbBzA3Ejtjxbcfa@i!NKKU{^ECk{qyz7bcmQm7bCOJJok;sWP0QJ4P$D_ z;57gBORsXtQQ~+y9+ZQGiW=7?#bl{vrisww$+0dD;P9i5erbPijMk%mMDl?LjvjgB zvMz}(R8bbz+NYlS>i2)}o#(%O_0pyN6a*zI25LNSJ)f^OpWK$$ldJnjB2m>-Fo`Ubk(!n9U{Q zSTG(bqrHd8nD*}JY4o1{H9@=;l4@Q$Dr$#&hg*<#YcF3JexQbs`_q=+erkIvQ|I=n{gjYD>=X}hkjx5jkP zK}1~DHL`<=i)gqmaFKIeY+8HYcoIXhwyw4<<7zzG)A=9-2Z<>VB}Re?Fp0mt^(G37 z$wMOI)O9vMSn^0h+$9yO3pTTDA#&maY!HlZVjsYOY{dYOgM-6zIPxTMo~4jd|0Z!E zB%egvcE~NKG9ddNJ2(=EVSx1z0S;yv3E1)e%HDLZ7$lw+S$5twT(Ph$EIr=rQZJNgR|xQ z3M~nX!8j)=&m`e2%e6*yP&Fk!dXyg$){bDi-J%;p0V_fQ=c=;?S{U?^{%Ks$MM79C z*PG2h@&8gQovAK)B{P%)8PG1cKyiQ+R6-4E4Or+l)n2=T;=2 zjq(skd!PU%OZFjy$89@g}1OEeum|D1vA!@@6h`> z+I0+i7{N^ot{4O>C1r;8QV5_!gifjPc(__u=%v&$fho(-1Kb7RSww|6aYgd~3jzyW zbX^BxC8WkB04^y5I(4pvJ|R_IZudJrRoM530fl@Pu39Zu>C(YkB8|Jluv$pJitUe>sBSpEkH{(2HKPp6mw0000\s*([^<]*)\s*\s*([^<]*)\s*\s*([^<]*)\s*Souvisej.*', re.DOTALL | re.IGNORECASE), - lambda match: ''), - ] - - def print_version(self, url): - m = re.search('(?<=ID=)[0-9]*', url) - - return u'http://www.iliteratura.cz/clanek.asp?polozkaID=' + str(m.group(0)) + '&c=tisk' - - extra_css = ''' - h1 {font-size:140%;font-family:georgia,serif; font-weight:bold} - h3 {font-size:115%;font-family:georgia,serif; font-weight:bold} - ''' diff --git a/recipes/indy_star.recipe b/recipes/indy_star.recipe deleted file mode 100644 index ebbe8d2465..0000000000 --- a/recipes/indy_star.recipe +++ /dev/null @@ -1,26 +0,0 @@ -from calibre.web.feeds.recipes import BasicNewsRecipe - - -class IndianapolisStar(BasicNewsRecipe): - title = u'Indianapolis Star' - oldest_article = 10 - auto_cleanup = True - language = 'en' - __author__ = 'Owen Kelly' - max_articles_per_feed = 100 - cover_url = u'http://www2.indystar.com/frontpage/images/today.jpg' - feeds = [(u'Community Headlines', u'http://www.indystar.com/apps/pbcs.dll/section?Category=LOCAL&template=rss'), - (u'News Headlines', - u'http://www.indystar.com/apps/pbcs.dll/section?Category=NEWS&template=rss'), - (u'Business Headlines', - u'http://www.indystar.com/apps/pbcs.dll/section?Category=BUSINESS&template=rss'), - (u'Politics and Government', - u'http://www.indystar.com/apps/pbcs.dll/section?Category=NEWS05&template=rss'), - (u'Lifestyle Headlines', - u'http://www.indystar.com/apps/pbcs.dll/section?Category=LIVING&template=rss&mime=XML'), - (u'Opinion Headlines', - u'http://www.indystar.com/apps/pbcs.dll/section?Category=OPINION&template=rss&mime=XML') - ] - - def print_version(self, url): - return url + '&template=printart' diff --git a/recipes/infomotori.recipe b/recipes/infomotori.recipe deleted file mode 100644 index 5de516a244..0000000000 --- a/recipes/infomotori.recipe +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env python -__license__ = 'GPL v3' -__author__ = 'Gabriele Marini, based on Darko Miletic' -__copyright__ = '2009-2010, Darko Miletic ' -description = 'On Line Motor News - 01-05-2010' - -''' -http://www.infomotori.it/ -''' -from calibre.ebooks.BeautifulSoup import BeautifulSoup -from calibre.web.feeds.news import BasicNewsRecipe - - -class infomotori(BasicNewsRecipe): - author = 'Gabriele Marini' - title = u'Infomotori' - cover = 'http://www.infomotori.com/content/files/anniversario_01.gif' - oldest_article = 31 - max_articles_per_feed = 100 - recursion = 100 - use_embedded_content = False - - language = 'it' - use_embedded_content = False - remove_javascript = True - no_stylesheets = True - language = 'it' - timefmt = '[%a, %d %b, %Y]' - - def print_version(self, url): - raw = self.browser.open(url).read() - soup = BeautifulSoup(raw.decode('utf8', 'replace')) - print_link = soup.find('a', {'class': 'printarticle'}) - - return print_link['href'] - - feeds = [(u'Ultime Novit\xe0', u'http://feeds.infomotori.com/ultimenovita'), - (u'Auto: Ultime Novit\xe0 ', - u'http://feeds.infomotori.com/autonovita'), - (u'Moto: Ultime Novit\xe0 Moto', - u'http://feeds.infomotori.com/motonovita'), - (u'Notizie Flash', - u'http://feeds.infomotori.com/infoflashmotori'), - (u'Veicoli Ecologici e Mobilit\xe0 Sostenibile', - u'http://feeds.infomotori.com/ecomotori'), - (u'4x4 Fuoristrada, Crossover e Suv', - u'http://feeds.infomotori.com/fuoristrada'), - (u'Shopping Motori', - u'http://feeds.infomotori.com/shoppingmotori') - ] diff --git a/recipes/infoworld.recipe b/recipes/infoworld.recipe deleted file mode 100644 index 3873576490..0000000000 --- a/recipes/infoworld.recipe +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env python - -__license__ = 'GPL v3' -__copyright__ = '2009, Rick Kellogg' -''' -Infoworld.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Engadget(BasicNewsRecipe): - title = u'Infoworld.com' - __author__ = 'Rick Kellogg' - description = 'news' - language = 'en' - oldest_article = 7 - max_articles_per_feed = 100 - no_stylesheets = True - use_embedded_content = False - auto_cleanup = True - - feeds = [(u'Top Tech Stories', u'http://www.infoworld.com/index.rss'), - (u'Today\'s Tech Headlines', - u'http://www.infoworld.com/news/index.rss')] diff --git a/recipes/infra_pl.recipe b/recipes/infra_pl.recipe deleted file mode 100644 index e705539191..0000000000 --- a/recipes/infra_pl.recipe +++ /dev/null @@ -1,27 +0,0 @@ -from calibre.web.feeds.news import BasicNewsRecipe - - -class INFRA(BasicNewsRecipe): - title = u'INFRA' - oldest_article = 7 - max_articles_per_feed = 100 - __author__ = 'fenuks' - description = u'Serwis Informacyjny INFRA - UFO, Zjawiska Paranormalne, Duchy, Tajemnice świata.' - cover_url = 'http://i.imgur.com/j7hJT.jpg' - category = 'UFO' - index = 'http://infra.org.pl' - language = 'pl' - max_articles_per_feed = 100 - remove_empty_feeds = True - remove_attrs = ['style'] - no_stylesheets = True - keep_only_tags = [dict(id='ja-current-content')] - feeds = [(u'Najnowsze wiadomo\u015bci', u'http://www.infra.org.pl/rss')] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - for a in soup.findAll('a', href=True): - if 'http://' not in a['href'] and 'https://' not in a['href']: - a['href'] = self.index + a['href'] - return soup diff --git a/recipes/inopressa.recipe b/recipes/inopressa.recipe deleted file mode 100644 index 6cee3e18c2..0000000000 --- a/recipes/inopressa.recipe +++ /dev/null @@ -1,25 +0,0 @@ -# vim:fileencoding=UTF-8 -from __future__ import unicode_literals - -from calibre.web.feeds.news import BasicNewsRecipe - - -class Dingoo(BasicNewsRecipe): - language = 'ru' - __author__ = 'bug_me_not' - title = u'\u0418\u043d\u043e\u041f\u0440\u0435\u0441\u0441\u0430' - description = 'Иностранная пресса о России и не только' - cover_url = u'http://static.inopressa.ru/img/inopressa-logo-light.gif' - language = 'ru' - oldest_article = 14 - max_articles_per_feed = 200 - - no_stylesheets = False - remove_javascript = True - auto_cleanup = True - - feeds = [(u'\u043e \u0420\u043e\u0441\u0441\u0438\u0438 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e', - u'http://pda.inopressa.ru/rss')] - - remove_tags_before = dict(name='div', attrs={'class': 'article'}) - remove_tags_after = dict(name='div', attrs={'class': 'source'}) diff --git a/recipes/insider.recipe b/recipes/insider.recipe deleted file mode 100644 index 7a53daca3c..0000000000 --- a/recipes/insider.recipe +++ /dev/null @@ -1,59 +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 insider(BasicNewsRecipe): - __author__ = 'bubak' - title = 'Insider' - language = 'cs' - - remove_tags = [dict(name='div', attrs={'class': 'article-related-content'}), dict(name='div', attrs={'class': 'calendar'}), dict(name='span', attrs={'id': 'labelHolder'}) # noqa - ] - - no_stylesheets = True - keep_only_tags = [ - dict(name='div', attrs={'class': ['doubleBlock textContentFormat']})] - - preprocess_regexps = [ - (re.compile(r'T.mata:.*', re.DOTALL | re.IGNORECASE), lambda m: '')] - needs_subscription = True - - def get_browser(self): - br = BasicNewsRecipe.get_browser(self) - br.open('http://www.denikinsider.cz/') - br.select_form(nr=0) - br['login-name'] = self.username - br['login-password'] = self.password - res = br.submit() - raw = res.read() - if u'Odhlásit se'.encode('utf-8') not in raw: - raise ValueError('Failed to login to insider.cz' - 'Check your username and password.') - return br - - def parse_index(self): - articles = [] - - soup = self.index_to_soup('http://www.denikinsider.cz') - titles = soup.findAll('span', attrs={'class': 'homepageArticleTitle'}) - if titles is None: - raise ValueError('Could not find category content') - - articles = [] - seen_titles = set() - for title in titles: - if title.string in seen_titles: - continue - article = title.parent - seen_titles.add(title.string) - url = article['href'] - if url.startswith('/'): - url = 'http://www.denikinsider.cz/' + url - self.log('\tFound article:', title, 'at', url) - articles.append({'title': title.string, 'url': url, 'description': '', - 'date': ''}) - return [(self.title, articles)] diff --git a/recipes/io9.recipe b/recipes/io9.recipe deleted file mode 100644 index 19801d0fbc..0000000000 --- a/recipes/io9.recipe +++ /dev/null @@ -1,36 +0,0 @@ -__license__ = 'GPL v3' -__copyright__ = '2010, NA' -''' -io9.com -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class i09(BasicNewsRecipe): - title = 'io9' - __author__ = 'NA' - description = "io9, We Come From the Future." - publisher = 'io9.com' - category = 'news, science, education' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = False - auto_cleanup = True - language = 'en' - masthead_url = 'http://cache.gawkerassets.com/assets/io9.com/img/logo.png' - extra_css = ''' - body{font-family: "Lucida Grande",Helvetica,Arial,sans-serif} - img{margin-bottom: 1em} - h1{font-family :Arial,Helvetica,sans-serif; font-size:large} - ''' - conversion_options = { - 'comment': description, 'tags': category, 'publisher': publisher, 'language': language - } - - feeds = [(u'Articles', u'http://feeds.gawker.com/io9/vip?format=xml')] - - def preprocess_html(self, soup): - return self.adeify_images(soup) diff --git a/recipes/ionline_pt.recipe b/recipes/ionline_pt.recipe deleted file mode 100644 index 4287f52e3e..0000000000 --- a/recipes/ionline_pt.recipe +++ /dev/null @@ -1,53 +0,0 @@ - -__license__ = 'GPL v3' -__copyright__ = '2010, Darko Miletic ' -''' -www.ionline.pt -''' - -from calibre.web.feeds.news import BasicNewsRecipe - - -class IOnline_pt(BasicNewsRecipe): - title = 'ionline - Portugal' - __author__ = 'Darko Miletic' - description = 'News from Portugal' - publisher = 'ionline.pt' - oldest_article = 2 - max_articles_per_feed = 100 - no_stylesheets = True - encoding = 'utf-8' - use_embedded_content = False - language = 'pt' - extra_css = ' .publish{font-style: italic; line-height: 1.2em; border-bottom: 1px dotted; padding: 5px 0} .entity{line-height: 1.2em} .overview{line-height:1.2em} ' # noqa - - conversion_options = { - 'comment': description, 'publisher': publisher, 'language': language - } - - keep_only_tags = [ - dict(name=['h5', 'h1']), dict(name='div', attrs={ - 'class': ['publish', 'overview', 'entity']}) - ] - - remove_tags = [ - dict(name=['object', 'embed', 'iframe']) - ] - - feeds = [ - - (u'Portugal', u'http://www.ionline.pt/rss/portugal.xml'), - (u'Mundo', u'http://www.ionline.pt/rss/mundo.xml'), - (u'Dinheiro', u'http://www.ionline.pt/rss/dinheiro.xml'), - (u'Desporto', u'http://www.ionline.pt/rss/desporto.xml'), - (u'Boa Vida', u'http://www.ionline.pt/rss/boavida.xml'), - (u'iReporter', u'http://www.ionline.pt/rss/ireporter.xml'), - (u'iBloges', u'http://www.ionline.pt/rss/iblogues.xml'), - (u'Desporto', u'http://www.ionline.pt/rss/desporto.xml') - ] - - def print_version(self, url): - rest = url.rpartition('/')[2] - lmain = rest.partition('-')[0] - lurl = u'http://www.ionline.pt/interior/index.php?p=news-print&idNota=' + lmain - return lurl diff --git a/recipes/ivanamilakovic.recipe b/recipes/ivanamilakovic.recipe deleted file mode 100644 index 03c2cf7ac0..0000000000 --- a/recipes/ivanamilakovic.recipe +++ /dev/null @@ -1,42 +0,0 @@ -# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai - -__license__ = 'GPL v3' -__copyright__ = '2012, Darko Miletic ' -''' -ivanamilakovic.blogspot.com -''' - -import re - -from calibre.web.feeds.news import BasicNewsRecipe - - -class IvanaMilakovic(BasicNewsRecipe): - title = u'Ivana Milaković' - __author__ = 'Darko Miletic' - description = u'Hronika mačijeg škrabala - priče, inspiracija, knjige, pisanje, prevodi...' - oldest_article = 80 - max_articles_per_feed = 100 - language = 'sr' - encoding = 'utf-8' - no_stylesheets = True - use_embedded_content = True - publication_type = 'blog' - extra_css = """ - @font-face {font-family: "sans1";src:url(res:///opt/sony/ebook/FONT/tt0003m_.ttf)} - body{font-family: Arial,Tahoma,Helvetica,FreeSans,sans1,sans-serif} - img{margin-bottom: 0.8em; border: 1px solid #333333; padding: 4px } - """ - - conversion_options = { - 'comment': description, 'tags': 'knjige, blog, srbija, sf', 'publisher': 'Ivana Milakovic', 'language': language - } - - preprocess_regexps = [(re.compile(u'\u0110'), lambda match: u'\u00D0')] - - feeds = [(u'Posts', u'http://ivanamilakovic.blogspot.com/feeds/posts/default')] - - def preprocess_html(self, soup): - for item in soup.findAll(style=True): - del item['style'] - return self.adeify_images(soup) From 6c9e2d14a217cca19c21f1b3ee606bbba6960c1d Mon Sep 17 00:00:00 2001 From: unkn0w7n <51942695+unkn0w7n@users.noreply.github.com> Date: Sat, 28 Sep 2024 11:16:28 +0530 Subject: [PATCH 2/2] ... --- recipes/india_today.recipe | 2 +- recipes/scientific_american.recipe | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/recipes/india_today.recipe b/recipes/india_today.recipe index 23ec834516..e7b7c1b73c 100644 --- a/recipes/india_today.recipe +++ b/recipes/india_today.recipe @@ -103,7 +103,7 @@ class IndiaToday(BasicNewsRecipe): if 'description_short' in data: desc = '

' + data['description_short'] + '

\n' if data.get('author'): - author = ''.join([names['title'] for names in data['author']]) + author = ', '.join([names['title'] for names in data['author']]) if 'city' in data: city = data['city'] if 'datetime_updated' in data: diff --git a/recipes/scientific_american.recipe b/recipes/scientific_american.recipe index 72f2985313..4a0374ec70 100644 --- a/recipes/scientific_american.recipe +++ b/recipes/scientific_american.recipe @@ -26,10 +26,9 @@ class ScientificAmerican(BasicNewsRecipe): extra_css = """ [class^="article_dek-"] { font-style:italic; color:#202020; } [class^="article_authors-"] {font-size:small; color:#202020; } - [class^="article__image-"] { font-size:small; text-align:center; } - [class^="lead_image-"] { font-size:small; text-align:center; } + [class^="article__image-"], [class^="lead_image-"], .calibre-nuked-tag-figcaption { font-size:small; } [class^="bio-"] { font-size:small; color:#404040; } - em { color:#202020; } + em, blockquote { color:#202020; } """ needs_subscription = "optional" @@ -44,9 +43,11 @@ class ScientificAmerican(BasicNewsRecipe): ] def preprocess_html(self, soup): + for h2 in soup.findAll(['h2', 'h3']): + h2.name = 'h4' for fig in soup.findAll('figcaption'): - for p in fig.findAll(['p', 'div']): - p.name = 'span' + for p in fig.findAll('p'): + p.name = 'div' res = '?w=600' w = self.recipe_specific_options.get('res') if w and isinstance(w, str):