diff --git a/.bzrignore b/.bzrignore
index e2d1636ddd..fb1e7868d6 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -11,7 +11,7 @@ resources/localization
resources/images.qrc
resources/scripts.pickle
resources/ebook-convert-complete.pickle
-resources/builtin_recipes.xml
+resources/builtin_recipes.*
setup/installer/windows/calibre/build.log
src/calibre/translations/.errors
src/cssutils/.svn/
diff --git a/Changelog.yaml b/Changelog.yaml
index a25b52bfbf..8fecf3d95e 100644
--- a/Changelog.yaml
+++ b/Changelog.yaml
@@ -19,6 +19,73 @@
# new recipes:
# - title:
+- version: 0.7.50
+ date: 2011-03-18
+
+ new features:
+ - title: "Add 'Read a random book' to the view menu"
+
+ - title: "Add option to show composite columns in the tag browser."
+
+ - title: "Add a tweak in Preferences->Tweaks to control where news that is automatically uploaded to a reader is sent."
+ tickets: [9427]
+
+ - title: "Do not also show text in composite columns when showing an icon"
+
+ - title: "Add a menu item to clear the last viewed books history in the ebook viewer"
+
+ - title: "Kobo driver: Add support for the 'Closed' collection"
+
+ - title: "Add rename/delete saved search options to Tag browser context menu"
+
+ - title: "Make searches in the tag browser a possible hierarchical field"
+
+ - title: "Allow using empty username and password when setting up an SMTP relay"
+ tickets: [9195]
+
+ bug fixes:
+ - title: "Fix regression in 0.7.49 that broke deleting of news downloads older than x days."
+ tickets: [9417]
+
+ - title: "Restore the ability to remove missing formats from metadata.db to the Check Library operation"
+ tickets: [9377]
+
+ - title: "EPUB metadata: Read ISBN from Penguin epubs that dont correctly specify it"
+
+ - title: "Conversion pipeline: Handle the case where the ncx file is incorrectly given an HTML mimetype"
+
+ - title: "Make numpad navigation keys work in viewer"
+ tickets: [9428]
+
+ - title: "Fix ratings not being downloaded from Amazon"
+
+ - title: "Content server: Add workaround for Internet Explorer not supporting the ' entity."
+ tickets: [9413]
+
+ - title: "Conversion pipeline: When detecting chapters/toc links from HTML normalize spaces and increase maximum TOC title length to 1000 characters from 100 characters."
+ tickets: [9363]
+
+ - title: "Fix regression that broke Search and Replace on custom fields"
+ tickets: [9397]
+
+ - title: "Fix regression that caused currently selected row to be unfocussed int he device view when updataing metadata"
+ tickets: [9395]
+
+ - title: "Coversion S&R: Do not strip leading and trailing whitespace from the search and replace expressions in the GUI"
+
+
+ improved recipes:
+ - Sports Illustrated
+ - Draw and Cook
+
+ new recipes:
+ - title: "Evangelizo.org and pro-linux.de"
+ author: Bobus
+
+ - title: "Office Space and Modoros"
+ author: Zsolt Botykai
+
+
- version: 0.7.49
date: 2011-03-11
@@ -47,7 +114,7 @@
- title: "When setting covers in calibre, resize to fit within a maximum size of (1200, 1600), to prevent slowdowns due to extra large covers. This size can be controlled via Preferences->Tweaks."
tickets: [9277]
-
+
bug fixes:
- title: "Fix long standing bug that caused errors when saving books to disk if the book metadata has certain chinese/russian characters on windows. The fix required some changes to how unicode paths are handled in calibre, so it might have broken something else. If so, please open a ticket."
tickets: [7250]
diff --git a/resources/recipes/180.recipe b/recipes/180.recipe
similarity index 100%
rename from resources/recipes/180.recipe
rename to recipes/180.recipe
diff --git a/resources/recipes/20_minutos.recipe b/recipes/20_minutos.recipe
similarity index 100%
rename from resources/recipes/20_minutos.recipe
rename to recipes/20_minutos.recipe
diff --git a/resources/recipes/20minutos.recipe b/recipes/20minutos.recipe
similarity index 100%
rename from resources/recipes/20minutos.recipe
rename to recipes/20minutos.recipe
diff --git a/resources/recipes/24sata.recipe b/recipes/24sata.recipe
similarity index 100%
rename from resources/recipes/24sata.recipe
rename to recipes/24sata.recipe
diff --git a/resources/recipes/24sata_rs.recipe b/recipes/24sata_rs.recipe
similarity index 100%
rename from resources/recipes/24sata_rs.recipe
rename to recipes/24sata_rs.recipe
diff --git a/resources/recipes/7dias.recipe b/recipes/7dias.recipe
similarity index 100%
rename from resources/recipes/7dias.recipe
rename to recipes/7dias.recipe
diff --git a/resources/recipes/7seri.recipe b/recipes/7seri.recipe
similarity index 100%
rename from resources/recipes/7seri.recipe
rename to recipes/7seri.recipe
diff --git a/resources/recipes/Ansa.recipe b/recipes/Ansa.recipe
similarity index 100%
rename from resources/recipes/Ansa.recipe
rename to recipes/Ansa.recipe
diff --git a/resources/recipes/DrawAndCook.recipe b/recipes/DrawAndCook.recipe
similarity index 100%
rename from resources/recipes/DrawAndCook.recipe
rename to recipes/DrawAndCook.recipe
diff --git a/resources/recipes/ZIVE.sk.recipe b/recipes/ZIVE.sk.recipe
similarity index 100%
rename from resources/recipes/ZIVE.sk.recipe
rename to recipes/ZIVE.sk.recipe
diff --git a/resources/recipes/abc.recipe b/recipes/abc.recipe
similarity index 100%
rename from resources/recipes/abc.recipe
rename to recipes/abc.recipe
diff --git a/resources/recipes/abc_au.recipe b/recipes/abc_au.recipe
similarity index 100%
rename from resources/recipes/abc_au.recipe
rename to recipes/abc_au.recipe
diff --git a/resources/recipes/abc_es.recipe b/recipes/abc_es.recipe
similarity index 100%
rename from resources/recipes/abc_es.recipe
rename to recipes/abc_es.recipe
diff --git a/resources/recipes/abc_py.recipe b/recipes/abc_py.recipe
similarity index 100%
rename from resources/recipes/abc_py.recipe
rename to recipes/abc_py.recipe
diff --git a/resources/recipes/accountancyage.recipe b/recipes/accountancyage.recipe
similarity index 100%
rename from resources/recipes/accountancyage.recipe
rename to recipes/accountancyage.recipe
diff --git a/resources/recipes/ad.recipe b/recipes/ad.recipe
similarity index 100%
rename from resources/recipes/ad.recipe
rename to recipes/ad.recipe
diff --git a/resources/recipes/adevarul.recipe b/recipes/adevarul.recipe
similarity index 100%
rename from resources/recipes/adevarul.recipe
rename to recipes/adevarul.recipe
diff --git a/resources/recipes/adnkronos.recipe b/recipes/adnkronos.recipe
similarity index 100%
rename from resources/recipes/adnkronos.recipe
rename to recipes/adnkronos.recipe
diff --git a/resources/recipes/adventuregamers.recipe b/recipes/adventuregamers.recipe
similarity index 100%
rename from resources/recipes/adventuregamers.recipe
rename to recipes/adventuregamers.recipe
diff --git a/resources/recipes/aftenposten.recipe b/recipes/aftenposten.recipe
similarity index 100%
rename from resources/recipes/aftenposten.recipe
rename to recipes/aftenposten.recipe
diff --git a/resources/recipes/agrogerila.recipe b/recipes/agrogerila.recipe
similarity index 100%
rename from resources/recipes/agrogerila.recipe
rename to recipes/agrogerila.recipe
diff --git a/resources/recipes/aif_ru.recipe b/recipes/aif_ru.recipe
similarity index 100%
rename from resources/recipes/aif_ru.recipe
rename to recipes/aif_ru.recipe
diff --git a/resources/recipes/ajc.recipe b/recipes/ajc.recipe
similarity index 100%
rename from resources/recipes/ajc.recipe
rename to recipes/ajc.recipe
diff --git a/resources/recipes/ajiajin.recipe b/recipes/ajiajin.recipe
similarity index 100%
rename from resources/recipes/ajiajin.recipe
rename to recipes/ajiajin.recipe
diff --git a/resources/recipes/akter.recipe b/recipes/akter.recipe
similarity index 100%
rename from resources/recipes/akter.recipe
rename to recipes/akter.recipe
diff --git a/resources/recipes/al_jazeera.recipe b/recipes/al_jazeera.recipe
similarity index 100%
rename from resources/recipes/al_jazeera.recipe
rename to recipes/al_jazeera.recipe
diff --git a/resources/recipes/alo_novine.recipe b/recipes/alo_novine.recipe
similarity index 100%
rename from resources/recipes/alo_novine.recipe
rename to recipes/alo_novine.recipe
diff --git a/resources/recipes/alternet.recipe b/recipes/alternet.recipe
similarity index 100%
rename from resources/recipes/alternet.recipe
rename to recipes/alternet.recipe
diff --git a/resources/recipes/ambito.recipe b/recipes/ambito.recipe
similarity index 100%
rename from resources/recipes/ambito.recipe
rename to recipes/ambito.recipe
diff --git a/resources/recipes/american_thinker.recipe b/recipes/american_thinker.recipe
similarity index 100%
rename from resources/recipes/american_thinker.recipe
rename to recipes/american_thinker.recipe
diff --git a/resources/recipes/amspec.recipe b/recipes/amspec.recipe
similarity index 100%
rename from resources/recipes/amspec.recipe
rename to recipes/amspec.recipe
diff --git a/resources/recipes/an_druma_mor.recipe b/recipes/an_druma_mor.recipe
similarity index 100%
rename from resources/recipes/an_druma_mor.recipe
rename to recipes/an_druma_mor.recipe
diff --git a/resources/recipes/anandtech.recipe b/recipes/anandtech.recipe
similarity index 100%
rename from resources/recipes/anandtech.recipe
rename to recipes/anandtech.recipe
diff --git a/resources/recipes/anchorage_daily.recipe b/recipes/anchorage_daily.recipe
similarity index 100%
rename from resources/recipes/anchorage_daily.recipe
rename to recipes/anchorage_daily.recipe
diff --git a/resources/recipes/animal_politico.recipe b/recipes/animal_politico.recipe
similarity index 100%
rename from resources/recipes/animal_politico.recipe
rename to recipes/animal_politico.recipe
diff --git a/resources/recipes/ap.recipe b/recipes/ap.recipe
similarity index 100%
rename from resources/recipes/ap.recipe
rename to recipes/ap.recipe
diff --git a/resources/recipes/apcom.recipe b/recipes/apcom.recipe
similarity index 100%
rename from resources/recipes/apcom.recipe
rename to recipes/apcom.recipe
diff --git a/resources/recipes/apod.recipe b/recipes/apod.recipe
similarity index 100%
rename from resources/recipes/apod.recipe
rename to recipes/apod.recipe
diff --git a/resources/recipes/apple_daily.recipe b/recipes/apple_daily.recipe
similarity index 100%
rename from resources/recipes/apple_daily.recipe
rename to recipes/apple_daily.recipe
diff --git a/resources/recipes/aprospect.recipe b/recipes/aprospect.recipe
similarity index 100%
rename from resources/recipes/aprospect.recipe
rename to recipes/aprospect.recipe
diff --git a/resources/recipes/arabian_business.recipe b/recipes/arabian_business.recipe
similarity index 100%
rename from resources/recipes/arabian_business.recipe
rename to recipes/arabian_business.recipe
diff --git a/resources/recipes/arbetaren.recipe b/recipes/arbetaren.recipe
similarity index 100%
rename from resources/recipes/arbetaren.recipe
rename to recipes/arbetaren.recipe
diff --git a/resources/recipes/arcamax.recipe b/recipes/arcamax.recipe
similarity index 100%
rename from resources/recipes/arcamax.recipe
rename to recipes/arcamax.recipe
diff --git a/resources/recipes/ars_technica.recipe b/recipes/ars_technica.recipe
similarity index 100%
rename from resources/recipes/ars_technica.recipe
rename to recipes/ars_technica.recipe
diff --git a/resources/recipes/asia_one.recipe b/recipes/asia_one.recipe
similarity index 100%
rename from resources/recipes/asia_one.recipe
rename to recipes/asia_one.recipe
diff --git a/resources/recipes/atlantic.recipe b/recipes/atlantic.recipe
similarity index 100%
rename from resources/recipes/atlantic.recipe
rename to recipes/atlantic.recipe
diff --git a/resources/recipes/auto.recipe b/recipes/auto.recipe
similarity index 100%
rename from resources/recipes/auto.recipe
rename to recipes/auto.recipe
diff --git a/resources/recipes/auto_prove.recipe b/recipes/auto_prove.recipe
similarity index 100%
rename from resources/recipes/auto_prove.recipe
rename to recipes/auto_prove.recipe
diff --git a/resources/recipes/avantaje.recipe b/recipes/avantaje.recipe
similarity index 100%
rename from resources/recipes/avantaje.recipe
rename to recipes/avantaje.recipe
diff --git a/resources/recipes/aventurilapescuit.recipe b/recipes/aventurilapescuit.recipe
similarity index 100%
rename from resources/recipes/aventurilapescuit.recipe
rename to recipes/aventurilapescuit.recipe
diff --git a/resources/recipes/avto-magazin.recipe b/recipes/avto-magazin.recipe
similarity index 100%
rename from resources/recipes/avto-magazin.recipe
rename to recipes/avto-magazin.recipe
diff --git a/resources/recipes/axxon_magazine.recipe b/recipes/axxon_magazine.recipe
similarity index 100%
rename from resources/recipes/axxon_magazine.recipe
rename to recipes/axxon_magazine.recipe
diff --git a/resources/recipes/axxon_news.recipe b/recipes/axxon_news.recipe
similarity index 100%
rename from resources/recipes/axxon_news.recipe
rename to recipes/axxon_news.recipe
diff --git a/resources/recipes/azstarnet.recipe b/recipes/azstarnet.recipe
similarity index 100%
rename from resources/recipes/azstarnet.recipe
rename to recipes/azstarnet.recipe
diff --git a/resources/recipes/b92.recipe b/recipes/b92.recipe
similarity index 100%
rename from resources/recipes/b92.recipe
rename to recipes/b92.recipe
diff --git a/resources/recipes/balkaninsight.recipe b/recipes/balkaninsight.recipe
similarity index 100%
rename from resources/recipes/balkaninsight.recipe
rename to recipes/balkaninsight.recipe
diff --git a/resources/recipes/baltimore_sun.recipe b/recipes/baltimore_sun.recipe
similarity index 100%
rename from resources/recipes/baltimore_sun.recipe
rename to recipes/baltimore_sun.recipe
diff --git a/resources/recipes/bangkok_biz.recipe b/recipes/bangkok_biz.recipe
similarity index 100%
rename from resources/recipes/bangkok_biz.recipe
rename to recipes/bangkok_biz.recipe
diff --git a/resources/recipes/bangkokpost.recipe b/recipes/bangkokpost.recipe
similarity index 100%
rename from resources/recipes/bangkokpost.recipe
rename to recipes/bangkokpost.recipe
diff --git a/resources/recipes/barrons.recipe b/recipes/barrons.recipe
similarity index 100%
rename from resources/recipes/barrons.recipe
rename to recipes/barrons.recipe
diff --git a/resources/recipes/bay_citizen.recipe b/recipes/bay_citizen.recipe
similarity index 100%
rename from resources/recipes/bay_citizen.recipe
rename to recipes/bay_citizen.recipe
diff --git a/resources/recipes/bbc.recipe b/recipes/bbc.recipe
similarity index 100%
rename from resources/recipes/bbc.recipe
rename to recipes/bbc.recipe
diff --git a/resources/recipes/bbc_chinese.recipe b/recipes/bbc_chinese.recipe
similarity index 100%
rename from resources/recipes/bbc_chinese.recipe
rename to recipes/bbc_chinese.recipe
diff --git a/resources/recipes/bbc_es.recipe b/recipes/bbc_es.recipe
similarity index 100%
rename from resources/recipes/bbc_es.recipe
rename to recipes/bbc_es.recipe
diff --git a/resources/recipes/bbc_fast.recipe b/recipes/bbc_fast.recipe
similarity index 100%
rename from resources/recipes/bbc_fast.recipe
rename to recipes/bbc_fast.recipe
diff --git a/resources/recipes/bbc_sport.recipe b/recipes/bbc_sport.recipe
similarity index 100%
rename from resources/recipes/bbc_sport.recipe
rename to recipes/bbc_sport.recipe
diff --git a/resources/recipes/bbcvietnamese.recipe b/recipes/bbcvietnamese.recipe
similarity index 100%
rename from resources/recipes/bbcvietnamese.recipe
rename to recipes/bbcvietnamese.recipe
diff --git a/resources/recipes/berlingske_dk.recipe b/recipes/berlingske_dk.recipe
similarity index 100%
rename from resources/recipes/berlingske_dk.recipe
rename to recipes/berlingske_dk.recipe
diff --git a/resources/recipes/beta.recipe b/recipes/beta.recipe
similarity index 100%
rename from resources/recipes/beta.recipe
rename to recipes/beta.recipe
diff --git a/resources/recipes/beta_en.recipe b/recipes/beta_en.recipe
similarity index 100%
rename from resources/recipes/beta_en.recipe
rename to recipes/beta_en.recipe
diff --git a/resources/recipes/big_oven.recipe b/recipes/big_oven.recipe
similarity index 100%
rename from resources/recipes/big_oven.recipe
rename to recipes/big_oven.recipe
diff --git a/resources/recipes/biggovernment.recipe b/recipes/biggovernment.recipe
similarity index 100%
rename from resources/recipes/biggovernment.recipe
rename to recipes/biggovernment.recipe
diff --git a/resources/recipes/bighollywood.recipe b/recipes/bighollywood.recipe
similarity index 100%
rename from resources/recipes/bighollywood.recipe
rename to recipes/bighollywood.recipe
diff --git a/resources/recipes/billorielly.recipe b/recipes/billorielly.recipe
similarity index 100%
rename from resources/recipes/billorielly.recipe
rename to recipes/billorielly.recipe
diff --git a/resources/recipes/bitacora.recipe b/recipes/bitacora.recipe
similarity index 100%
rename from resources/recipes/bitacora.recipe
rename to recipes/bitacora.recipe
diff --git a/resources/recipes/biz_portal.recipe b/recipes/biz_portal.recipe
similarity index 100%
rename from resources/recipes/biz_portal.recipe
rename to recipes/biz_portal.recipe
diff --git a/resources/recipes/blic.recipe b/recipes/blic.recipe
similarity index 100%
rename from resources/recipes/blic.recipe
rename to recipes/blic.recipe
diff --git a/resources/recipes/boortz.recipe b/recipes/boortz.recipe
similarity index 100%
rename from resources/recipes/boortz.recipe
rename to recipes/boortz.recipe
diff --git a/resources/recipes/borba.recipe b/recipes/borba.recipe
similarity index 100%
rename from resources/recipes/borba.recipe
rename to recipes/borba.recipe
diff --git a/resources/recipes/boston.com.recipe b/recipes/boston.com.recipe
similarity index 100%
rename from resources/recipes/boston.com.recipe
rename to recipes/boston.com.recipe
diff --git a/resources/recipes/brand_eins.recipe b/recipes/brand_eins.recipe
similarity index 100%
rename from resources/recipes/brand_eins.recipe
rename to recipes/brand_eins.recipe
diff --git a/resources/recipes/bucataras.recipe b/recipes/bucataras.recipe
similarity index 100%
rename from resources/recipes/bucataras.recipe
rename to recipes/bucataras.recipe
diff --git a/resources/recipes/buckmasters.recipe b/recipes/buckmasters.recipe
similarity index 100%
rename from resources/recipes/buckmasters.recipe
rename to recipes/buckmasters.recipe
diff --git a/resources/recipes/buenosaireseconomico.recipe b/recipes/buenosaireseconomico.recipe
similarity index 100%
rename from resources/recipes/buenosaireseconomico.recipe
rename to recipes/buenosaireseconomico.recipe
diff --git a/resources/recipes/buffalo_news.recipe b/recipes/buffalo_news.recipe
similarity index 100%
rename from resources/recipes/buffalo_news.recipe
rename to recipes/buffalo_news.recipe
diff --git a/resources/recipes/business_insider.recipe b/recipes/business_insider.recipe
similarity index 100%
rename from resources/recipes/business_insider.recipe
rename to recipes/business_insider.recipe
diff --git a/resources/recipes/business_spectator.recipe b/recipes/business_spectator.recipe
similarity index 100%
rename from resources/recipes/business_spectator.recipe
rename to recipes/business_spectator.recipe
diff --git a/resources/recipes/business_standard.recipe b/recipes/business_standard.recipe
similarity index 100%
rename from resources/recipes/business_standard.recipe
rename to recipes/business_standard.recipe
diff --git a/resources/recipes/business_week.recipe b/recipes/business_week.recipe
similarity index 100%
rename from resources/recipes/business_week.recipe
rename to recipes/business_week.recipe
diff --git a/resources/recipes/businessworldin.recipe b/recipes/businessworldin.recipe
similarity index 100%
rename from resources/recipes/businessworldin.recipe
rename to recipes/businessworldin.recipe
diff --git a/resources/recipes/bwmagazine.recipe b/recipes/bwmagazine.recipe
similarity index 100%
rename from resources/recipes/bwmagazine.recipe
rename to recipes/bwmagazine.recipe
diff --git a/resources/recipes/cacm.recipe b/recipes/cacm.recipe
similarity index 100%
rename from resources/recipes/cacm.recipe
rename to recipes/cacm.recipe
diff --git a/resources/recipes/calcalist.recipe b/recipes/calcalist.recipe
similarity index 100%
rename from resources/recipes/calcalist.recipe
rename to recipes/calcalist.recipe
diff --git a/resources/recipes/calgary_herald.recipe b/recipes/calgary_herald.recipe
similarity index 100%
rename from resources/recipes/calgary_herald.recipe
rename to recipes/calgary_herald.recipe
diff --git a/resources/recipes/canardpc.recipe b/recipes/canardpc.recipe
similarity index 100%
rename from resources/recipes/canardpc.recipe
rename to recipes/canardpc.recipe
diff --git a/resources/recipes/capes_n_babes.recipe b/recipes/capes_n_babes.recipe
similarity index 100%
rename from resources/recipes/capes_n_babes.recipe
rename to recipes/capes_n_babes.recipe
diff --git a/resources/recipes/capital.recipe b/recipes/capital.recipe
similarity index 100%
rename from resources/recipes/capital.recipe
rename to recipes/capital.recipe
diff --git a/resources/recipes/carta.recipe b/recipes/carta.recipe
similarity index 100%
rename from resources/recipes/carta.recipe
rename to recipes/carta.recipe
diff --git a/resources/recipes/catavencu.recipe b/recipes/catavencu.recipe
similarity index 100%
rename from resources/recipes/catavencu.recipe
rename to recipes/catavencu.recipe
diff --git a/resources/recipes/cbc_canada.recipe b/recipes/cbc_canada.recipe
similarity index 100%
rename from resources/recipes/cbc_canada.recipe
rename to recipes/cbc_canada.recipe
diff --git a/resources/recipes/cetnixploitation.recipe b/recipes/cetnixploitation.recipe
similarity index 100%
rename from resources/recipes/cetnixploitation.recipe
rename to recipes/cetnixploitation.recipe
diff --git a/resources/recipes/chicago_breaking_news.recipe b/recipes/chicago_breaking_news.recipe
similarity index 100%
rename from resources/recipes/chicago_breaking_news.recipe
rename to recipes/chicago_breaking_news.recipe
diff --git a/resources/recipes/chicago_tribune.recipe b/recipes/chicago_tribune.recipe
similarity index 100%
rename from resources/recipes/chicago_tribune.recipe
rename to recipes/chicago_tribune.recipe
diff --git a/resources/recipes/china_economic_net.recipe b/recipes/china_economic_net.recipe
similarity index 100%
rename from resources/recipes/china_economic_net.recipe
rename to recipes/china_economic_net.recipe
diff --git a/resources/recipes/china_press.recipe b/recipes/china_press.recipe
similarity index 100%
rename from resources/recipes/china_press.recipe
rename to recipes/china_press.recipe
diff --git a/resources/recipes/chinadaily.recipe b/recipes/chinadaily.recipe
similarity index 100%
rename from resources/recipes/chinadaily.recipe
rename to recipes/chinadaily.recipe
diff --git a/resources/recipes/chipro.recipe b/recipes/chipro.recipe
similarity index 100%
rename from resources/recipes/chipro.recipe
rename to recipes/chipro.recipe
diff --git a/resources/recipes/chouchoublog.recipe b/recipes/chouchoublog.recipe
similarity index 100%
rename from resources/recipes/chouchoublog.recipe
rename to recipes/chouchoublog.recipe
diff --git a/resources/recipes/chowk.recipe b/recipes/chowk.recipe
similarity index 100%
rename from resources/recipes/chowk.recipe
rename to recipes/chowk.recipe
diff --git a/resources/recipes/chr_mon.recipe b/recipes/chr_mon.recipe
similarity index 100%
rename from resources/recipes/chr_mon.recipe
rename to recipes/chr_mon.recipe
diff --git a/resources/recipes/cicero.recipe b/recipes/cicero.recipe
similarity index 100%
rename from resources/recipes/cicero.recipe
rename to recipes/cicero.recipe
diff --git a/resources/recipes/cincinnati_enquirer.recipe b/recipes/cincinnati_enquirer.recipe
similarity index 100%
rename from resources/recipes/cincinnati_enquirer.recipe
rename to recipes/cincinnati_enquirer.recipe
diff --git a/resources/recipes/cinco_dias.recipe b/recipes/cinco_dias.recipe
similarity index 100%
rename from resources/recipes/cinco_dias.recipe
rename to recipes/cinco_dias.recipe
diff --git a/resources/recipes/cinebel_be.recipe b/recipes/cinebel_be.recipe
similarity index 100%
rename from resources/recipes/cinebel_be.recipe
rename to recipes/cinebel_be.recipe
diff --git a/resources/recipes/cio.recipe b/recipes/cio.recipe
similarity index 100%
rename from resources/recipes/cio.recipe
rename to recipes/cio.recipe
diff --git a/resources/recipes/cjr.recipe b/recipes/cjr.recipe
similarity index 100%
rename from resources/recipes/cjr.recipe
rename to recipes/cjr.recipe
diff --git a/resources/recipes/clarin.recipe b/recipes/clarin.recipe
similarity index 100%
rename from resources/recipes/clarin.recipe
rename to recipes/clarin.recipe
diff --git a/resources/recipes/clarion_ledger.recipe b/recipes/clarion_ledger.recipe
similarity index 100%
rename from resources/recipes/clarion_ledger.recipe
rename to recipes/clarion_ledger.recipe
diff --git a/resources/recipes/clic_rbs.recipe b/recipes/clic_rbs.recipe
similarity index 100%
rename from resources/recipes/clic_rbs.recipe
rename to recipes/clic_rbs.recipe
diff --git a/resources/recipes/climate_progress.recipe b/recipes/climate_progress.recipe
similarity index 100%
rename from resources/recipes/climate_progress.recipe
rename to recipes/climate_progress.recipe
diff --git a/resources/recipes/cm_journal.recipe b/recipes/cm_journal.recipe
similarity index 100%
rename from resources/recipes/cm_journal.recipe
rename to recipes/cm_journal.recipe
diff --git a/resources/recipes/cnd.recipe b/recipes/cnd.recipe
similarity index 100%
rename from resources/recipes/cnd.recipe
rename to recipes/cnd.recipe
diff --git a/resources/recipes/cnetjapan.recipe b/recipes/cnetjapan.recipe
similarity index 100%
rename from resources/recipes/cnetjapan.recipe
rename to recipes/cnetjapan.recipe
diff --git a/resources/recipes/cnetjapan_digital.recipe b/recipes/cnetjapan_digital.recipe
similarity index 100%
rename from resources/recipes/cnetjapan_digital.recipe
rename to recipes/cnetjapan_digital.recipe
diff --git a/resources/recipes/cnetjapan_release.recipe b/recipes/cnetjapan_release.recipe
similarity index 100%
rename from resources/recipes/cnetjapan_release.recipe
rename to recipes/cnetjapan_release.recipe
diff --git a/resources/recipes/cnetnews.recipe b/recipes/cnetnews.recipe
similarity index 100%
rename from resources/recipes/cnetnews.recipe
rename to recipes/cnetnews.recipe
diff --git a/resources/recipes/cnn.recipe b/recipes/cnn.recipe
similarity index 100%
rename from resources/recipes/cnn.recipe
rename to recipes/cnn.recipe
diff --git a/resources/recipes/coding_horror.recipe b/recipes/coding_horror.recipe
similarity index 100%
rename from resources/recipes/coding_horror.recipe
rename to recipes/coding_horror.recipe
diff --git a/resources/recipes/columbusdispatch.recipe b/recipes/columbusdispatch.recipe
similarity index 100%
rename from resources/recipes/columbusdispatch.recipe
rename to recipes/columbusdispatch.recipe
diff --git a/resources/recipes/comics_com.recipe b/recipes/comics_com.recipe
similarity index 100%
rename from resources/recipes/comics_com.recipe
rename to recipes/comics_com.recipe
diff --git a/resources/recipes/common_dreams.recipe b/recipes/common_dreams.recipe
similarity index 100%
rename from resources/recipes/common_dreams.recipe
rename to recipes/common_dreams.recipe
diff --git a/resources/recipes/computer_active.recipe b/recipes/computer_active.recipe
similarity index 100%
rename from resources/recipes/computer_active.recipe
rename to recipes/computer_active.recipe
diff --git a/resources/recipes/consumerist.recipe b/recipes/consumerist.recipe
similarity index 100%
rename from resources/recipes/consumerist.recipe
rename to recipes/consumerist.recipe
diff --git a/resources/recipes/corren2.recipe b/recipes/corren2.recipe
similarity index 100%
rename from resources/recipes/corren2.recipe
rename to recipes/corren2.recipe
diff --git a/resources/recipes/corriere_della_sera_en.recipe b/recipes/corriere_della_sera_en.recipe
similarity index 100%
rename from resources/recipes/corriere_della_sera_en.recipe
rename to recipes/corriere_della_sera_en.recipe
diff --git a/resources/recipes/corriere_della_sera_it.recipe b/recipes/corriere_della_sera_it.recipe
similarity index 100%
rename from resources/recipes/corriere_della_sera_it.recipe
rename to recipes/corriere_della_sera_it.recipe
diff --git a/resources/recipes/corriere_dello_sport.recipe b/recipes/corriere_dello_sport.recipe
similarity index 100%
rename from resources/recipes/corriere_dello_sport.recipe
rename to recipes/corriere_dello_sport.recipe
diff --git a/resources/recipes/cosmopolitan.recipe b/recipes/cosmopolitan.recipe
similarity index 100%
rename from resources/recipes/cosmopolitan.recipe
rename to recipes/cosmopolitan.recipe
diff --git a/resources/recipes/cotidianul.recipe b/recipes/cotidianul.recipe
similarity index 100%
rename from resources/recipes/cotidianul.recipe
rename to recipes/cotidianul.recipe
diff --git a/resources/recipes/courrier.recipe b/recipes/courrier.recipe
similarity index 100%
rename from resources/recipes/courrier.recipe
rename to recipes/courrier.recipe
diff --git a/resources/recipes/courrierinternational.recipe b/recipes/courrierinternational.recipe
similarity index 100%
rename from resources/recipes/courrierinternational.recipe
rename to recipes/courrierinternational.recipe
diff --git a/resources/recipes/craigslist.recipe b/recipes/craigslist.recipe
similarity index 100%
rename from resources/recipes/craigslist.recipe
rename to recipes/craigslist.recipe
diff --git a/resources/recipes/credit_slips.recipe b/recipes/credit_slips.recipe
similarity index 100%
rename from resources/recipes/credit_slips.recipe
rename to recipes/credit_slips.recipe
diff --git a/resources/recipes/criticadigital.recipe b/recipes/criticadigital.recipe
similarity index 100%
rename from resources/recipes/criticadigital.recipe
rename to recipes/criticadigital.recipe
diff --git a/resources/recipes/csid.recipe b/recipes/csid.recipe
similarity index 100%
rename from resources/recipes/csid.recipe
rename to recipes/csid.recipe
diff --git a/resources/recipes/cubadebate.recipe b/recipes/cubadebate.recipe
similarity index 100%
rename from resources/recipes/cubadebate.recipe
rename to recipes/cubadebate.recipe
diff --git a/resources/recipes/curierulnational.recipe b/recipes/curierulnational.recipe
similarity index 100%
rename from resources/recipes/curierulnational.recipe
rename to recipes/curierulnational.recipe
diff --git a/resources/recipes/cyberpresse.recipe b/recipes/cyberpresse.recipe
similarity index 100%
rename from resources/recipes/cyberpresse.recipe
rename to recipes/cyberpresse.recipe
diff --git a/resources/recipes/cynewslive.recipe b/recipes/cynewslive.recipe
similarity index 100%
rename from resources/recipes/cynewslive.recipe
rename to recipes/cynewslive.recipe
diff --git a/resources/recipes/cyprus_weekly.recipe b/recipes/cyprus_weekly.recipe
similarity index 100%
rename from resources/recipes/cyprus_weekly.recipe
rename to recipes/cyprus_weekly.recipe
diff --git a/resources/recipes/daily_mail.recipe b/recipes/daily_mail.recipe
similarity index 100%
rename from resources/recipes/daily_mail.recipe
rename to recipes/daily_mail.recipe
diff --git a/resources/recipes/daily_telegraph.recipe b/recipes/daily_telegraph.recipe
similarity index 100%
rename from resources/recipes/daily_telegraph.recipe
rename to recipes/daily_telegraph.recipe
diff --git a/resources/recipes/dailyreckoning.recipe b/recipes/dailyreckoning.recipe
similarity index 100%
rename from resources/recipes/dailyreckoning.recipe
rename to recipes/dailyreckoning.recipe
diff --git a/resources/recipes/dailytportal.recipe b/recipes/dailytportal.recipe
similarity index 100%
rename from resources/recipes/dailytportal.recipe
rename to recipes/dailytportal.recipe
diff --git a/resources/recipes/dallas.recipe b/recipes/dallas.recipe
similarity index 100%
rename from resources/recipes/dallas.recipe
rename to recipes/dallas.recipe
diff --git a/resources/recipes/danas.recipe b/recipes/danas.recipe
similarity index 100%
rename from resources/recipes/danas.recipe
rename to recipes/danas.recipe
diff --git a/resources/recipes/dani.recipe b/recipes/dani.recipe
similarity index 100%
rename from resources/recipes/dani.recipe
rename to recipes/dani.recipe
diff --git a/resources/recipes/darknet.recipe b/recipes/darknet.recipe
similarity index 100%
rename from resources/recipes/darknet.recipe
rename to recipes/darknet.recipe
diff --git a/resources/recipes/daum_net.recipe b/recipes/daum_net.recipe
similarity index 100%
rename from resources/recipes/daum_net.recipe
rename to recipes/daum_net.recipe
diff --git a/resources/recipes/dawn.recipe b/recipes/dawn.recipe
similarity index 100%
rename from resources/recipes/dawn.recipe
rename to recipes/dawn.recipe
diff --git a/resources/recipes/dbb.recipe b/recipes/dbb.recipe
similarity index 100%
rename from resources/recipes/dbb.recipe
rename to recipes/dbb.recipe
diff --git a/resources/recipes/de_standaard.recipe b/recipes/de_standaard.recipe
similarity index 100%
rename from resources/recipes/de_standaard.recipe
rename to recipes/de_standaard.recipe
diff --git a/resources/recipes/deadspin.recipe b/recipes/deadspin.recipe
similarity index 100%
rename from resources/recipes/deadspin.recipe
rename to recipes/deadspin.recipe
diff --git a/resources/recipes/degentenaar.recipe b/recipes/degentenaar.recipe
similarity index 100%
rename from resources/recipes/degentenaar.recipe
rename to recipes/degentenaar.recipe
diff --git a/resources/recipes/deia.recipe b/recipes/deia.recipe
similarity index 100%
rename from resources/recipes/deia.recipe
rename to recipes/deia.recipe
diff --git a/resources/recipes/demorgen_be.recipe b/recipes/demorgen_be.recipe
similarity index 100%
rename from resources/recipes/demorgen_be.recipe
rename to recipes/demorgen_be.recipe
diff --git a/resources/recipes/denver_post.recipe b/recipes/denver_post.recipe
similarity index 100%
rename from resources/recipes/denver_post.recipe
rename to recipes/denver_post.recipe
diff --git a/resources/recipes/der_standard.recipe b/recipes/der_standard.recipe
similarity index 100%
rename from resources/recipes/der_standard.recipe
rename to recipes/der_standard.recipe
diff --git a/resources/recipes/deredactie.recipe b/recipes/deredactie.recipe
similarity index 100%
rename from resources/recipes/deredactie.recipe
rename to recipes/deredactie.recipe
diff --git a/resources/recipes/descopera.recipe b/recipes/descopera.recipe
similarity index 100%
rename from resources/recipes/descopera.recipe
rename to recipes/descopera.recipe
diff --git a/resources/recipes/detroit_news.recipe b/recipes/detroit_news.recipe
similarity index 100%
rename from resources/recipes/detroit_news.recipe
rename to recipes/detroit_news.recipe
diff --git a/resources/recipes/deutsche_welle_bs.recipe b/recipes/deutsche_welle_bs.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_bs.recipe
rename to recipes/deutsche_welle_bs.recipe
diff --git a/resources/recipes/deutsche_welle_en.recipe b/recipes/deutsche_welle_en.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_en.recipe
rename to recipes/deutsche_welle_en.recipe
diff --git a/resources/recipes/deutsche_welle_es.recipe b/recipes/deutsche_welle_es.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_es.recipe
rename to recipes/deutsche_welle_es.recipe
diff --git a/resources/recipes/deutsche_welle_hr.recipe b/recipes/deutsche_welle_hr.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_hr.recipe
rename to recipes/deutsche_welle_hr.recipe
diff --git a/resources/recipes/deutsche_welle_pt.recipe b/recipes/deutsche_welle_pt.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_pt.recipe
rename to recipes/deutsche_welle_pt.recipe
diff --git a/resources/recipes/deutsche_welle_sr.recipe b/recipes/deutsche_welle_sr.recipe
similarity index 100%
rename from resources/recipes/deutsche_welle_sr.recipe
rename to recipes/deutsche_welle_sr.recipe
diff --git a/resources/recipes/dhnet_be.recipe b/recipes/dhnet_be.recipe
similarity index 100%
rename from resources/recipes/dhnet_be.recipe
rename to recipes/dhnet_be.recipe
diff --git a/resources/recipes/di.recipe b/recipes/di.recipe
similarity index 100%
rename from resources/recipes/di.recipe
rename to recipes/di.recipe
diff --git a/resources/recipes/diagonales.recipe b/recipes/diagonales.recipe
similarity index 100%
rename from resources/recipes/diagonales.recipe
rename to recipes/diagonales.recipe
diff --git a/resources/recipes/diario_cordoba.recipe b/recipes/diario_cordoba.recipe
similarity index 100%
rename from resources/recipes/diario_cordoba.recipe
rename to recipes/diario_cordoba.recipe
diff --git a/resources/recipes/diario_sport.recipe b/recipes/diario_sport.recipe
similarity index 100%
rename from resources/recipes/diario_sport.recipe
rename to recipes/diario_sport.recipe
diff --git a/resources/recipes/diariovasco.recipe b/recipes/diariovasco.recipe
similarity index 100%
rename from resources/recipes/diariovasco.recipe
rename to recipes/diariovasco.recipe
diff --git a/resources/recipes/diepresse.recipe b/recipes/diepresse.recipe
similarity index 100%
rename from resources/recipes/diepresse.recipe
rename to recipes/diepresse.recipe
diff --git a/resources/recipes/digital_arts.recipe b/recipes/digital_arts.recipe
similarity index 100%
rename from resources/recipes/digital_arts.recipe
rename to recipes/digital_arts.recipe
diff --git a/resources/recipes/digitaljournal.recipe b/recipes/digitaljournal.recipe
similarity index 100%
rename from resources/recipes/digitaljournal.recipe
rename to recipes/digitaljournal.recipe
diff --git a/resources/recipes/digitalspy_uk.recipe b/recipes/digitalspy_uk.recipe
similarity index 100%
rename from resources/recipes/digitalspy_uk.recipe
rename to recipes/digitalspy_uk.recipe
diff --git a/resources/recipes/dilbert.recipe b/recipes/dilbert.recipe
similarity index 100%
rename from resources/recipes/dilbert.recipe
rename to recipes/dilbert.recipe
diff --git a/resources/recipes/discover_magazine.recipe b/recipes/discover_magazine.recipe
similarity index 100%
rename from resources/recipes/discover_magazine.recipe
rename to recipes/discover_magazine.recipe
diff --git a/resources/recipes/dn_se.recipe b/recipes/dn_se.recipe
similarity index 100%
rename from resources/recipes/dn_se.recipe
rename to recipes/dn_se.recipe
diff --git a/resources/recipes/dna.recipe b/recipes/dna.recipe
similarity index 100%
rename from resources/recipes/dna.recipe
rename to recipes/dna.recipe
diff --git a/resources/recipes/dnevni_avaz.recipe b/recipes/dnevni_avaz.recipe
similarity index 100%
rename from resources/recipes/dnevni_avaz.recipe
rename to recipes/dnevni_avaz.recipe
diff --git a/resources/recipes/dnevnik.recipe b/recipes/dnevnik.recipe
similarity index 100%
rename from resources/recipes/dnevnik.recipe
rename to recipes/dnevnik.recipe
diff --git a/resources/recipes/dnevnik_cro.recipe b/recipes/dnevnik_cro.recipe
similarity index 100%
rename from resources/recipes/dnevnik_cro.recipe
rename to recipes/dnevnik_cro.recipe
diff --git a/resources/recipes/dominion.recipe b/recipes/dominion.recipe
similarity index 100%
rename from resources/recipes/dominion.recipe
rename to recipes/dominion.recipe
diff --git a/resources/recipes/dosisdiarias.recipe b/recipes/dosisdiarias.recipe
similarity index 100%
rename from resources/recipes/dosisdiarias.recipe
rename to recipes/dosisdiarias.recipe
diff --git a/resources/recipes/dotpod.recipe b/recipes/dotpod.recipe
similarity index 100%
rename from resources/recipes/dotpod.recipe
rename to recipes/dotpod.recipe
diff --git a/resources/recipes/dr_dk.recipe b/recipes/dr_dk.recipe
similarity index 100%
rename from resources/recipes/dr_dk.recipe
rename to recipes/dr_dk.recipe
diff --git a/resources/recipes/drivelry.recipe b/recipes/drivelry.recipe
similarity index 100%
rename from resources/recipes/drivelry.recipe
rename to recipes/drivelry.recipe
diff --git a/resources/recipes/e_novine.recipe b/recipes/e_novine.recipe
similarity index 100%
rename from resources/recipes/e_novine.recipe
rename to recipes/e_novine.recipe
diff --git a/resources/recipes/eclicto.recipe b/recipes/eclicto.recipe
similarity index 100%
rename from resources/recipes/eclicto.recipe
rename to recipes/eclicto.recipe
diff --git a/resources/recipes/ecogeek.recipe b/recipes/ecogeek.recipe
similarity index 100%
rename from resources/recipes/ecogeek.recipe
rename to recipes/ecogeek.recipe
diff --git a/resources/recipes/economist.recipe b/recipes/economist.recipe
similarity index 100%
rename from resources/recipes/economist.recipe
rename to recipes/economist.recipe
diff --git a/resources/recipes/economist_free.recipe b/recipes/economist_free.recipe
similarity index 100%
rename from resources/recipes/economist_free.recipe
rename to recipes/economist_free.recipe
diff --git a/resources/recipes/ecotrend.recipe b/recipes/ecotrend.recipe
similarity index 100%
rename from resources/recipes/ecotrend.recipe
rename to recipes/ecotrend.recipe
diff --git a/resources/recipes/ecuisine.recipe b/recipes/ecuisine.recipe
similarity index 100%
rename from resources/recipes/ecuisine.recipe
rename to recipes/ecuisine.recipe
diff --git a/resources/recipes/editor_and_publisher.recipe b/recipes/editor_and_publisher.recipe
similarity index 100%
rename from resources/recipes/editor_and_publisher.recipe
rename to recipes/editor_and_publisher.recipe
diff --git a/resources/recipes/edmonton_journal.recipe b/recipes/edmonton_journal.recipe
similarity index 100%
rename from resources/recipes/edmonton_journal.recipe
rename to recipes/edmonton_journal.recipe
diff --git a/resources/recipes/egirl.recipe b/recipes/egirl.recipe
similarity index 100%
rename from resources/recipes/egirl.recipe
rename to recipes/egirl.recipe
diff --git a/resources/recipes/ekot.recipe b/recipes/ekot.recipe
similarity index 100%
rename from resources/recipes/ekot.recipe
rename to recipes/ekot.recipe
diff --git a/resources/recipes/eksiazki.recipe b/recipes/eksiazki.recipe
similarity index 100%
rename from resources/recipes/eksiazki.recipe
rename to recipes/eksiazki.recipe
diff --git a/resources/recipes/el_correo.recipe b/recipes/el_correo.recipe
similarity index 100%
rename from resources/recipes/el_correo.recipe
rename to recipes/el_correo.recipe
diff --git a/resources/recipes/el_cultural.recipe b/recipes/el_cultural.recipe
similarity index 100%
rename from resources/recipes/el_cultural.recipe
rename to recipes/el_cultural.recipe
diff --git a/resources/recipes/el_faro.recipe b/recipes/el_faro.recipe
similarity index 100%
rename from resources/recipes/el_faro.recipe
rename to recipes/el_faro.recipe
diff --git a/resources/recipes/el_mercurio_chile.recipe b/recipes/el_mercurio_chile.recipe
similarity index 100%
rename from resources/recipes/el_mercurio_chile.recipe
rename to recipes/el_mercurio_chile.recipe
diff --git a/resources/recipes/el_observador.recipe b/recipes/el_observador.recipe
similarity index 100%
rename from resources/recipes/el_observador.recipe
rename to recipes/el_observador.recipe
diff --git a/resources/recipes/el_pais.recipe b/recipes/el_pais.recipe
similarity index 100%
rename from resources/recipes/el_pais.recipe
rename to recipes/el_pais.recipe
diff --git a/resources/recipes/el_pais_babelia.recipe b/recipes/el_pais_babelia.recipe
similarity index 100%
rename from resources/recipes/el_pais_babelia.recipe
rename to recipes/el_pais_babelia.recipe
diff --git a/resources/recipes/el_pais_uy.recipe b/recipes/el_pais_uy.recipe
similarity index 100%
rename from resources/recipes/el_pais_uy.recipe
rename to recipes/el_pais_uy.recipe
diff --git a/resources/recipes/el_periodico.recipe b/recipes/el_periodico.recipe
similarity index 100%
rename from resources/recipes/el_periodico.recipe
rename to recipes/el_periodico.recipe
diff --git a/resources/recipes/el_publico.recipe b/recipes/el_publico.recipe
similarity index 100%
rename from resources/recipes/el_publico.recipe
rename to recipes/el_publico.recipe
diff --git a/resources/recipes/el_universal.recipe b/recipes/el_universal.recipe
similarity index 100%
rename from resources/recipes/el_universal.recipe
rename to recipes/el_universal.recipe
diff --git a/resources/recipes/elargentino.recipe b/recipes/elargentino.recipe
similarity index 100%
rename from resources/recipes/elargentino.recipe
rename to recipes/elargentino.recipe
diff --git a/resources/recipes/elcomercio.recipe b/recipes/elcomercio.recipe
similarity index 100%
rename from resources/recipes/elcomercio.recipe
rename to recipes/elcomercio.recipe
diff --git a/resources/recipes/elcronista.recipe b/recipes/elcronista.recipe
similarity index 100%
rename from resources/recipes/elcronista.recipe
rename to recipes/elcronista.recipe
diff --git a/resources/recipes/ele.recipe b/recipes/ele.recipe
similarity index 100%
rename from resources/recipes/ele.recipe
rename to recipes/ele.recipe
diff --git a/resources/recipes/elmundo.recipe b/recipes/elmundo.recipe
similarity index 100%
rename from resources/recipes/elmundo.recipe
rename to recipes/elmundo.recipe
diff --git a/resources/recipes/elpais_impreso.recipe b/recipes/elpais_impreso.recipe
similarity index 100%
rename from resources/recipes/elpais_impreso.recipe
rename to recipes/elpais_impreso.recipe
diff --git a/resources/recipes/elpais_semanal.recipe b/recipes/elpais_semanal.recipe
similarity index 100%
rename from resources/recipes/elpais_semanal.recipe
rename to recipes/elpais_semanal.recipe
diff --git a/resources/recipes/elperiodico_catalan.recipe b/recipes/elperiodico_catalan.recipe
similarity index 100%
rename from resources/recipes/elperiodico_catalan.recipe
rename to recipes/elperiodico_catalan.recipe
diff --git a/resources/recipes/elperiodico_spanish.recipe b/recipes/elperiodico_spanish.recipe
similarity index 100%
rename from resources/recipes/elperiodico_spanish.recipe
rename to recipes/elperiodico_spanish.recipe
diff --git a/resources/recipes/elsevier.recipe b/recipes/elsevier.recipe
similarity index 100%
rename from resources/recipes/elsevier.recipe
rename to recipes/elsevier.recipe
diff --git a/resources/recipes/eltiempo_hn.recipe b/recipes/eltiempo_hn.recipe
similarity index 100%
rename from resources/recipes/eltiempo_hn.recipe
rename to recipes/eltiempo_hn.recipe
diff --git a/resources/recipes/eluniversal_ve.recipe b/recipes/eluniversal_ve.recipe
similarity index 100%
rename from resources/recipes/eluniversal_ve.recipe
rename to recipes/eluniversal_ve.recipe
diff --git a/resources/recipes/eluniversalimpresa.recipe b/recipes/eluniversalimpresa.recipe
similarity index 100%
rename from resources/recipes/eluniversalimpresa.recipe
rename to recipes/eluniversalimpresa.recipe
diff --git a/resources/recipes/eluniverso_ec.recipe b/recipes/eluniverso_ec.recipe
similarity index 100%
rename from resources/recipes/eluniverso_ec.recipe
rename to recipes/eluniverso_ec.recipe
diff --git a/resources/recipes/emg_en.recipe b/recipes/emg_en.recipe
similarity index 100%
rename from resources/recipes/emg_en.recipe
rename to recipes/emg_en.recipe
diff --git a/resources/recipes/emg_rs.recipe b/recipes/emg_rs.recipe
similarity index 100%
rename from resources/recipes/emg_rs.recipe
rename to recipes/emg_rs.recipe
diff --git a/resources/recipes/endgadget.recipe b/recipes/endgadget.recipe
similarity index 100%
rename from resources/recipes/endgadget.recipe
rename to recipes/endgadget.recipe
diff --git a/resources/recipes/endgadget_ja.recipe b/recipes/endgadget_ja.recipe
similarity index 100%
rename from resources/recipes/endgadget_ja.recipe
rename to recipes/endgadget_ja.recipe
diff --git a/resources/recipes/entrepeneur.recipe b/recipes/entrepeneur.recipe
similarity index 100%
rename from resources/recipes/entrepeneur.recipe
rename to recipes/entrepeneur.recipe
diff --git a/resources/recipes/epicurious.recipe b/recipes/epicurious.recipe
similarity index 100%
rename from resources/recipes/epicurious.recipe
rename to recipes/epicurious.recipe
diff --git a/resources/recipes/epl_talk.recipe b/recipes/epl_talk.recipe
similarity index 100%
rename from resources/recipes/epl_talk.recipe
rename to recipes/epl_talk.recipe
diff --git a/resources/recipes/esenja.recipe b/recipes/esenja.recipe
similarity index 100%
rename from resources/recipes/esenja.recipe
rename to recipes/esenja.recipe
diff --git a/resources/recipes/espn.recipe b/recipes/espn.recipe
similarity index 100%
rename from resources/recipes/espn.recipe
rename to recipes/espn.recipe
diff --git a/resources/recipes/esquire.recipe b/recipes/esquire.recipe
similarity index 100%
rename from resources/recipes/esquire.recipe
rename to recipes/esquire.recipe
diff --git a/resources/recipes/estadao.recipe b/recipes/estadao.recipe
similarity index 100%
rename from resources/recipes/estadao.recipe
rename to recipes/estadao.recipe
diff --git a/resources/recipes/eu_commission.recipe b/recipes/eu_commission.recipe
similarity index 100%
rename from resources/recipes/eu_commission.recipe
rename to recipes/eu_commission.recipe
diff --git a/resources/recipes/europa_press.recipe b/recipes/europa_press.recipe
similarity index 100%
rename from resources/recipes/europa_press.recipe
rename to recipes/europa_press.recipe
diff --git a/resources/recipes/europasur.recipe b/recipes/europasur.recipe
similarity index 100%
rename from resources/recipes/europasur.recipe
rename to recipes/europasur.recipe
diff --git a/resources/recipes/european_voice.recipe b/recipes/european_voice.recipe
similarity index 100%
rename from resources/recipes/european_voice.recipe
rename to recipes/european_voice.recipe
diff --git a/recipes/evangelizo.recipe b/recipes/evangelizo.recipe
new file mode 100644
index 0000000000..81ac74bc25
--- /dev/null
+++ b/recipes/evangelizo.recipe
@@ -0,0 +1,21 @@
+import re
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class Evangelizo(BasicNewsRecipe):
+ title = 'Evangelizo.org'
+ oldest_article = 2
+ max_articles_per_feed = 30
+ language = 'de'
+ __author__ = 'Bobus'
+ feeds = [
+ ('EvangleliumTagfuerTag', 'http://www.evangeliumtagfuertag.org/rss/evangelizo_rss-de.xml'),
+ ]
+ use_embedded_content = True
+ preprocess_regexps = [
+ (re.compile(r'<font size="-2">([(][0-9]*[)])</font>'), r'\g<1>'),
+ (re.compile(r'([\.!]\n)'), r'\g<1>
'),
+ ]
+
+ def populate_article_metadata(self, article, soup, first):
+ article.title = re.sub(r'([(][0-9]*[)])', r'\g<1>', article.title)
+ return
diff --git a/resources/recipes/everett_herald.recipe b/recipes/everett_herald.recipe
similarity index 100%
rename from resources/recipes/everett_herald.recipe
rename to recipes/everett_herald.recipe
diff --git a/resources/recipes/evz.ro.recipe b/recipes/evz.ro.recipe
similarity index 100%
rename from resources/recipes/evz.ro.recipe
rename to recipes/evz.ro.recipe
diff --git a/resources/recipes/exiled.recipe b/recipes/exiled.recipe
similarity index 100%
rename from resources/recipes/exiled.recipe
rename to recipes/exiled.recipe
diff --git a/resources/recipes/expansion_spanish.recipe b/recipes/expansion_spanish.recipe
similarity index 100%
rename from resources/recipes/expansion_spanish.recipe
rename to recipes/expansion_spanish.recipe
diff --git a/resources/recipes/explosm.recipe b/recipes/explosm.recipe
similarity index 100%
rename from resources/recipes/explosm.recipe
rename to recipes/explosm.recipe
diff --git a/resources/recipes/factcheck.recipe b/recipes/factcheck.recipe
similarity index 100%
rename from resources/recipes/factcheck.recipe
rename to recipes/factcheck.recipe
diff --git a/resources/recipes/fan_graphs.recipe b/recipes/fan_graphs.recipe
similarity index 100%
rename from resources/recipes/fan_graphs.recipe
rename to recipes/fan_graphs.recipe
diff --git a/resources/recipes/fastcompany.recipe b/recipes/fastcompany.recipe
similarity index 100%
rename from resources/recipes/fastcompany.recipe
rename to recipes/fastcompany.recipe
diff --git a/resources/recipes/faznet.recipe b/recipes/faznet.recipe
similarity index 100%
rename from resources/recipes/faznet.recipe
rename to recipes/faznet.recipe
diff --git a/resources/recipes/fe_india.recipe b/recipes/fe_india.recipe
similarity index 100%
rename from resources/recipes/fe_india.recipe
rename to recipes/fe_india.recipe
diff --git a/resources/recipes/felicia.recipe b/recipes/felicia.recipe
similarity index 100%
rename from resources/recipes/felicia.recipe
rename to recipes/felicia.recipe
diff --git a/resources/recipes/fhmro.recipe b/recipes/fhmro.recipe
similarity index 100%
rename from resources/recipes/fhmro.recipe
rename to recipes/fhmro.recipe
diff --git a/resources/recipes/financial_times.recipe b/recipes/financial_times.recipe
similarity index 100%
rename from resources/recipes/financial_times.recipe
rename to recipes/financial_times.recipe
diff --git a/resources/recipes/financial_times_uk.recipe b/recipes/financial_times_uk.recipe
similarity index 100%
rename from resources/recipes/financial_times_uk.recipe
rename to recipes/financial_times_uk.recipe
diff --git a/resources/recipes/financiarul.recipe b/recipes/financiarul.recipe
similarity index 100%
rename from resources/recipes/financiarul.recipe
rename to recipes/financiarul.recipe
diff --git a/resources/recipes/fleshbot.recipe b/recipes/fleshbot.recipe
similarity index 100%
rename from resources/recipes/fleshbot.recipe
rename to recipes/fleshbot.recipe
diff --git a/resources/recipes/flickr.recipe b/recipes/flickr.recipe
similarity index 100%
rename from resources/recipes/flickr.recipe
rename to recipes/flickr.recipe
diff --git a/resources/recipes/flickr_es.recipe b/recipes/flickr_es.recipe
similarity index 100%
rename from resources/recipes/flickr_es.recipe
rename to recipes/flickr_es.recipe
diff --git a/resources/recipes/fokkeensukke.recipe b/recipes/fokkeensukke.recipe
similarity index 100%
rename from resources/recipes/fokkeensukke.recipe
rename to recipes/fokkeensukke.recipe
diff --git a/resources/recipes/folhadesaopaulo.recipe b/recipes/folhadesaopaulo.recipe
similarity index 100%
rename from resources/recipes/folhadesaopaulo.recipe
rename to recipes/folhadesaopaulo.recipe
diff --git a/resources/recipes/forbes.recipe b/recipes/forbes.recipe
similarity index 100%
rename from resources/recipes/forbes.recipe
rename to recipes/forbes.recipe
diff --git a/resources/recipes/forbes_india.recipe b/recipes/forbes_india.recipe
similarity index 100%
rename from resources/recipes/forbes_india.recipe
rename to recipes/forbes_india.recipe
diff --git a/resources/recipes/foreign_policy.recipe b/recipes/foreign_policy.recipe
similarity index 100%
rename from resources/recipes/foreign_policy.recipe
rename to recipes/foreign_policy.recipe
diff --git a/resources/recipes/foreignaffairs.recipe b/recipes/foreignaffairs.recipe
similarity index 100%
rename from resources/recipes/foreignaffairs.recipe
rename to recipes/foreignaffairs.recipe
diff --git a/resources/recipes/foxnews.recipe b/recipes/foxnews.recipe
similarity index 100%
rename from resources/recipes/foxnews.recipe
rename to recipes/foxnews.recipe
diff --git a/resources/recipes/fr_online.recipe b/recipes/fr_online.recipe
similarity index 100%
rename from resources/recipes/fr_online.recipe
rename to recipes/fr_online.recipe
diff --git a/resources/recipes/frazpc.recipe b/recipes/frazpc.recipe
similarity index 100%
rename from resources/recipes/frazpc.recipe
rename to recipes/frazpc.recipe
diff --git a/resources/recipes/freakonomics.recipe b/recipes/freakonomics.recipe
similarity index 100%
rename from resources/recipes/freakonomics.recipe
rename to recipes/freakonomics.recipe
diff --git a/resources/recipes/freenature.recipe b/recipes/freenature.recipe
similarity index 100%
rename from resources/recipes/freenature.recipe
rename to recipes/freenature.recipe
diff --git a/resources/recipes/freeway.recipe b/recipes/freeway.recipe
similarity index 100%
rename from resources/recipes/freeway.recipe
rename to recipes/freeway.recipe
diff --git a/resources/recipes/fria.recipe b/recipes/fria.recipe
similarity index 100%
rename from resources/recipes/fria.recipe
rename to recipes/fria.recipe
diff --git a/resources/recipes/fronda.recipe b/recipes/fronda.recipe
similarity index 100%
rename from resources/recipes/fronda.recipe
rename to recipes/fronda.recipe
diff --git a/resources/recipes/fstream.recipe b/recipes/fstream.recipe
similarity index 100%
rename from resources/recipes/fstream.recipe
rename to recipes/fstream.recipe
diff --git a/resources/recipes/ftd.recipe b/recipes/ftd.recipe
similarity index 100%
rename from resources/recipes/ftd.recipe
rename to recipes/ftd.recipe
diff --git a/resources/recipes/fudzilla.recipe b/recipes/fudzilla.recipe
similarity index 100%
rename from resources/recipes/fudzilla.recipe
rename to recipes/fudzilla.recipe
diff --git a/resources/recipes/futurismic.recipe b/recipes/futurismic.recipe
similarity index 100%
rename from resources/recipes/futurismic.recipe
rename to recipes/futurismic.recipe
diff --git a/resources/recipes/gamasutra_fa.recipe b/recipes/gamasutra_fa.recipe
similarity index 100%
rename from resources/recipes/gamasutra_fa.recipe
rename to recipes/gamasutra_fa.recipe
diff --git a/resources/recipes/gamasutra_news.recipe b/recipes/gamasutra_news.recipe
similarity index 100%
rename from resources/recipes/gamasutra_news.recipe
rename to recipes/gamasutra_news.recipe
diff --git a/resources/recipes/gamespot.recipe b/recipes/gamespot.recipe
similarity index 100%
rename from resources/recipes/gamespot.recipe
rename to recipes/gamespot.recipe
diff --git a/resources/recipes/gandul.recipe b/recipes/gandul.recipe
similarity index 100%
rename from resources/recipes/gandul.recipe
rename to recipes/gandul.recipe
diff --git a/resources/recipes/gawker.recipe b/recipes/gawker.recipe
similarity index 100%
rename from resources/recipes/gawker.recipe
rename to recipes/gawker.recipe
diff --git a/resources/recipes/gazeta_pomorska.recipe b/recipes/gazeta_pomorska.recipe
similarity index 100%
rename from resources/recipes/gazeta_pomorska.recipe
rename to recipes/gazeta_pomorska.recipe
diff --git a/resources/recipes/german_gov.recipe b/recipes/german_gov.recipe
similarity index 100%
rename from resources/recipes/german_gov.recipe
rename to recipes/german_gov.recipe
diff --git a/resources/recipes/gizmodo.recipe b/recipes/gizmodo.recipe
similarity index 100%
rename from resources/recipes/gizmodo.recipe
rename to recipes/gizmodo.recipe
diff --git a/resources/recipes/glas_srpske.recipe b/recipes/glas_srpske.recipe
similarity index 100%
rename from resources/recipes/glas_srpske.recipe
rename to recipes/glas_srpske.recipe
diff --git a/resources/recipes/glasgow_herald.recipe b/recipes/glasgow_herald.recipe
similarity index 100%
rename from resources/recipes/glasgow_herald.recipe
rename to recipes/glasgow_herald.recipe
diff --git a/resources/recipes/glasjavnosti.recipe b/recipes/glasjavnosti.recipe
similarity index 100%
rename from resources/recipes/glasjavnosti.recipe
rename to recipes/glasjavnosti.recipe
diff --git a/resources/recipes/glennbeck.recipe b/recipes/glennbeck.recipe
similarity index 100%
rename from resources/recipes/glennbeck.recipe
rename to recipes/glennbeck.recipe
diff --git a/resources/recipes/globaltimes.recipe b/recipes/globaltimes.recipe
similarity index 100%
rename from resources/recipes/globaltimes.recipe
rename to recipes/globaltimes.recipe
diff --git a/resources/recipes/globe_and_mail.recipe b/recipes/globe_and_mail.recipe
similarity index 100%
rename from resources/recipes/globe_and_mail.recipe
rename to recipes/globe_and_mail.recipe
diff --git a/resources/recipes/globes_co_il.recipe b/recipes/globes_co_il.recipe
similarity index 100%
rename from resources/recipes/globes_co_il.recipe
rename to recipes/globes_co_il.recipe
diff --git a/resources/recipes/go4it.recipe b/recipes/go4it.recipe
similarity index 100%
rename from resources/recipes/go4it.recipe
rename to recipes/go4it.recipe
diff --git a/resources/recipes/go_comics.recipe b/recipes/go_comics.recipe
similarity index 100%
rename from resources/recipes/go_comics.recipe
rename to recipes/go_comics.recipe
diff --git a/resources/recipes/golem_de.recipe b/recipes/golem_de.recipe
similarity index 100%
rename from resources/recipes/golem_de.recipe
rename to recipes/golem_de.recipe
diff --git a/resources/recipes/granma.recipe b/recipes/granma.recipe
similarity index 100%
rename from resources/recipes/granma.recipe
rename to recipes/granma.recipe
diff --git a/resources/recipes/greader.recipe b/recipes/greader.recipe
similarity index 100%
rename from resources/recipes/greader.recipe
rename to recipes/greader.recipe
diff --git a/resources/recipes/greader_uber.recipe b/recipes/greader_uber.recipe
similarity index 100%
rename from resources/recipes/greader_uber.recipe
rename to recipes/greader_uber.recipe
diff --git a/resources/recipes/greensboro_news_and_record.recipe b/recipes/greensboro_news_and_record.recipe
similarity index 100%
rename from resources/recipes/greensboro_news_and_record.recipe
rename to recipes/greensboro_news_and_record.recipe
diff --git a/resources/recipes/gsp.recipe b/recipes/gsp.recipe
similarity index 100%
rename from resources/recipes/gsp.recipe
rename to recipes/gsp.recipe
diff --git a/resources/recipes/guardian.recipe b/recipes/guardian.recipe
similarity index 100%
rename from resources/recipes/guardian.recipe
rename to recipes/guardian.recipe
diff --git a/resources/recipes/gulfnews.recipe b/recipes/gulfnews.recipe
similarity index 100%
rename from resources/recipes/gulfnews.recipe
rename to recipes/gulfnews.recipe
diff --git a/resources/recipes/gulli.recipe b/recipes/gulli.recipe
similarity index 100%
rename from resources/recipes/gulli.recipe
rename to recipes/gulli.recipe
diff --git a/resources/recipes/gva_be.recipe b/recipes/gva_be.recipe
similarity index 100%
rename from resources/recipes/gva_be.recipe
rename to recipes/gva_be.recipe
diff --git a/resources/recipes/h1.recipe b/recipes/h1.recipe
similarity index 100%
rename from resources/recipes/h1.recipe
rename to recipes/h1.recipe
diff --git a/resources/recipes/h2.recipe b/recipes/h2.recipe
similarity index 100%
rename from resources/recipes/h2.recipe
rename to recipes/h2.recipe
diff --git a/resources/recipes/h3.recipe b/recipes/h3.recipe
similarity index 100%
rename from resources/recipes/h3.recipe
rename to recipes/h3.recipe
diff --git a/resources/recipes/haaretz_en.recipe b/recipes/haaretz_en.recipe
similarity index 100%
rename from resources/recipes/haaretz_en.recipe
rename to recipes/haaretz_en.recipe
diff --git a/resources/recipes/handelsblatt.recipe b/recipes/handelsblatt.recipe
similarity index 100%
rename from resources/recipes/handelsblatt.recipe
rename to recipes/handelsblatt.recipe
diff --git a/resources/recipes/hannoversche_zeitung.recipe b/recipes/hannoversche_zeitung.recipe
similarity index 100%
rename from resources/recipes/hannoversche_zeitung.recipe
rename to recipes/hannoversche_zeitung.recipe
diff --git a/resources/recipes/harpers.recipe b/recipes/harpers.recipe
similarity index 100%
rename from resources/recipes/harpers.recipe
rename to recipes/harpers.recipe
diff --git a/resources/recipes/harpers_full.recipe b/recipes/harpers_full.recipe
similarity index 100%
rename from resources/recipes/harpers_full.recipe
rename to recipes/harpers_full.recipe
diff --git a/resources/recipes/hartford_courant.recipe b/recipes/hartford_courant.recipe
similarity index 100%
rename from resources/recipes/hartford_courant.recipe
rename to recipes/hartford_courant.recipe
diff --git a/recipes/hawaii.recipe b/recipes/hawaii.recipe
new file mode 100644
index 0000000000..ae98e46009
--- /dev/null
+++ b/recipes/hawaii.recipe
@@ -0,0 +1,21 @@
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class AdvancedUserRecipe1282101454(BasicNewsRecipe):
+ title = 'West Hawaii Today'
+ __author__ = 'Tony Stegall'
+ language = 'en'
+ description = 'Westhawaiitoday.com'
+ publisher = 'West Hawaii '
+ category = 'news,Hawaii,USA'
+ oldest_article = 7
+ max_articles_per_feed = 100
+ no_stylesheets = True
+ remove_javascript = True
+ use_embedded_content = True
+
+ masthead_url = 'http://images.townnews.com/westhawaiitoday.com/art/whttoplogo.gif'
+
+
+ feeds = [ 'http://www.westhawaiitoday.com/rss.xml']
+
+
diff --git a/resources/recipes/hbr.recipe b/recipes/hbr.recipe
similarity index 100%
rename from resources/recipes/hbr.recipe
rename to recipes/hbr.recipe
diff --git a/resources/recipes/hbr_blogs.recipe b/recipes/hbr_blogs.recipe
similarity index 100%
rename from resources/recipes/hbr_blogs.recipe
rename to recipes/hbr_blogs.recipe
diff --git a/resources/recipes/heise.recipe b/recipes/heise.recipe
similarity index 100%
rename from resources/recipes/heise.recipe
rename to recipes/heise.recipe
diff --git a/resources/recipes/heise_open.recipe b/recipes/heise_open.recipe
similarity index 100%
rename from resources/recipes/heise_open.recipe
rename to recipes/heise_open.recipe
diff --git a/resources/recipes/helsingin_sanomat.recipe b/recipes/helsingin_sanomat.recipe
similarity index 100%
rename from resources/recipes/helsingin_sanomat.recipe
rename to recipes/helsingin_sanomat.recipe
diff --git a/resources/recipes/heraldo.recipe b/recipes/heraldo.recipe
similarity index 100%
rename from resources/recipes/heraldo.recipe
rename to recipes/heraldo.recipe
diff --git a/resources/recipes/hindu.recipe b/recipes/hindu.recipe
similarity index 100%
rename from resources/recipes/hindu.recipe
rename to recipes/hindu.recipe
diff --git a/resources/recipes/hindu_business_line.recipe b/recipes/hindu_business_line.recipe
similarity index 100%
rename from resources/recipes/hindu_business_line.recipe
rename to recipes/hindu_business_line.recipe
diff --git a/resources/recipes/histmag.recipe b/recipes/histmag.recipe
similarity index 100%
rename from resources/recipes/histmag.recipe
rename to recipes/histmag.recipe
diff --git a/resources/recipes/historiaro.recipe b/recipes/historiaro.recipe
similarity index 100%
rename from resources/recipes/historiaro.recipe
rename to recipes/historiaro.recipe
diff --git a/resources/recipes/hitro.recipe b/recipes/hitro.recipe
similarity index 100%
rename from resources/recipes/hitro.recipe
rename to recipes/hitro.recipe
diff --git a/resources/recipes/hln.recipe b/recipes/hln.recipe
similarity index 100%
rename from resources/recipes/hln.recipe
rename to recipes/hln.recipe
diff --git a/resources/recipes/hln_be.recipe b/recipes/hln_be.recipe
similarity index 100%
rename from resources/recipes/hln_be.recipe
rename to recipes/hln_be.recipe
diff --git a/resources/recipes/hna.recipe b/recipes/hna.recipe
similarity index 100%
rename from resources/recipes/hna.recipe
rename to recipes/hna.recipe
diff --git a/resources/recipes/hola.recipe b/recipes/hola.recipe
similarity index 100%
rename from resources/recipes/hola.recipe
rename to recipes/hola.recipe
diff --git a/resources/recipes/honvedelem.recipe b/recipes/honvedelem.recipe
similarity index 100%
rename from resources/recipes/honvedelem.recipe
rename to recipes/honvedelem.recipe
diff --git a/resources/recipes/hotair.recipe b/recipes/hotair.recipe
similarity index 100%
rename from resources/recipes/hotair.recipe
rename to recipes/hotair.recipe
diff --git a/resources/recipes/hotcity.recipe b/recipes/hotcity.recipe
similarity index 100%
rename from resources/recipes/hotcity.recipe
rename to recipes/hotcity.recipe
diff --git a/resources/recipes/hotnews.recipe b/recipes/hotnews.recipe
similarity index 100%
rename from resources/recipes/hotnews.recipe
rename to recipes/hotnews.recipe
diff --git a/resources/recipes/houston_chronicle.recipe b/recipes/houston_chronicle.recipe
similarity index 100%
rename from resources/recipes/houston_chronicle.recipe
rename to recipes/houston_chronicle.recipe
diff --git a/resources/recipes/howtogeek.recipe b/recipes/howtogeek.recipe
similarity index 100%
rename from resources/recipes/howtogeek.recipe
rename to recipes/howtogeek.recipe
diff --git a/resources/recipes/hoy.recipe b/recipes/hoy.recipe
similarity index 100%
rename from resources/recipes/hoy.recipe
rename to recipes/hoy.recipe
diff --git a/resources/recipes/hrt.recipe b/recipes/hrt.recipe
similarity index 100%
rename from resources/recipes/hrt.recipe
rename to recipes/hrt.recipe
diff --git a/resources/recipes/huffingtonpost.recipe b/recipes/huffingtonpost.recipe
similarity index 100%
rename from resources/recipes/huffingtonpost.recipe
rename to recipes/huffingtonpost.recipe
diff --git a/resources/recipes/huntechnet.recipe b/recipes/huntechnet.recipe
similarity index 100%
rename from resources/recipes/huntechnet.recipe
rename to recipes/huntechnet.recipe
diff --git a/resources/recipes/ibm_smarter_planet.recipe b/recipes/ibm_smarter_planet.recipe
similarity index 100%
rename from resources/recipes/ibm_smarter_planet.recipe
rename to recipes/ibm_smarter_planet.recipe
diff --git a/resources/images/news/20minutos.png b/recipes/icons/20minutos.png
similarity index 100%
rename from resources/images/news/20minutos.png
rename to recipes/icons/20minutos.png
diff --git a/resources/images/news/24sata.png b/recipes/icons/24sata.png
similarity index 100%
rename from resources/images/news/24sata.png
rename to recipes/icons/24sata.png
diff --git a/resources/images/news/24sata_rs.png b/recipes/icons/24sata_rs.png
similarity index 100%
rename from resources/images/news/24sata_rs.png
rename to recipes/icons/24sata_rs.png
diff --git a/resources/images/news/7seri.png b/recipes/icons/7seri.png
similarity index 100%
rename from resources/images/news/7seri.png
rename to recipes/icons/7seri.png
diff --git a/resources/images/news/DrawAndCook.png b/recipes/icons/DrawAndCook.png
similarity index 100%
rename from resources/images/news/DrawAndCook.png
rename to recipes/icons/DrawAndCook.png
diff --git a/resources/images/news/abc_py.png b/recipes/icons/abc_py.png
similarity index 100%
rename from resources/images/news/abc_py.png
rename to recipes/icons/abc_py.png
diff --git a/resources/images/news/ad.png b/recipes/icons/ad.png
similarity index 100%
rename from resources/images/news/ad.png
rename to recipes/icons/ad.png
diff --git a/resources/images/news/adevarul.png b/recipes/icons/adevarul.png
similarity index 100%
rename from resources/images/news/adevarul.png
rename to recipes/icons/adevarul.png
diff --git a/resources/images/news/adventuregamers.png b/recipes/icons/adventuregamers.png
similarity index 100%
rename from resources/images/news/adventuregamers.png
rename to recipes/icons/adventuregamers.png
diff --git a/resources/images/news/aif_ru.png b/recipes/icons/aif_ru.png
similarity index 100%
rename from resources/images/news/aif_ru.png
rename to recipes/icons/aif_ru.png
diff --git a/resources/images/news/ajc.png b/recipes/icons/ajc.png
similarity index 100%
rename from resources/images/news/ajc.png
rename to recipes/icons/ajc.png
diff --git a/resources/images/news/akter.png b/recipes/icons/akter.png
similarity index 100%
rename from resources/images/news/akter.png
rename to recipes/icons/akter.png
diff --git a/resources/images/news/alo_novine.png b/recipes/icons/alo_novine.png
similarity index 100%
rename from resources/images/news/alo_novine.png
rename to recipes/icons/alo_novine.png
diff --git a/resources/images/news/ambito.png b/recipes/icons/ambito.png
similarity index 100%
rename from resources/images/news/ambito.png
rename to recipes/icons/ambito.png
diff --git a/resources/images/news/american_thinker.png b/recipes/icons/american_thinker.png
similarity index 100%
rename from resources/images/news/american_thinker.png
rename to recipes/icons/american_thinker.png
diff --git a/resources/images/news/amspec.png b/recipes/icons/amspec.png
similarity index 100%
rename from resources/images/news/amspec.png
rename to recipes/icons/amspec.png
diff --git a/resources/images/news/anandtech.png b/recipes/icons/anandtech.png
similarity index 100%
rename from resources/images/news/anandtech.png
rename to recipes/icons/anandtech.png
diff --git a/resources/images/news/arabian_business.png b/recipes/icons/arabian_business.png
similarity index 100%
rename from resources/images/news/arabian_business.png
rename to recipes/icons/arabian_business.png
diff --git a/resources/images/news/ars_technica.png b/recipes/icons/ars_technica.png
similarity index 100%
rename from resources/images/news/ars_technica.png
rename to recipes/icons/ars_technica.png
diff --git a/resources/images/news/atlantic.png b/recipes/icons/atlantic.png
similarity index 100%
rename from resources/images/news/atlantic.png
rename to recipes/icons/atlantic.png
diff --git a/resources/images/news/avantaje.png b/recipes/icons/avantaje.png
similarity index 100%
rename from resources/images/news/avantaje.png
rename to recipes/icons/avantaje.png
diff --git a/resources/images/news/aventurilapescuit.png b/recipes/icons/aventurilapescuit.png
similarity index 100%
rename from resources/images/news/aventurilapescuit.png
rename to recipes/icons/aventurilapescuit.png
diff --git a/resources/images/news/avto-magazin.png b/recipes/icons/avto-magazin.png
similarity index 100%
rename from resources/images/news/avto-magazin.png
rename to recipes/icons/avto-magazin.png
diff --git a/resources/images/news/axxon_news.png b/recipes/icons/axxon_news.png
similarity index 100%
rename from resources/images/news/axxon_news.png
rename to recipes/icons/axxon_news.png
diff --git a/resources/images/news/azstarnet.png b/recipes/icons/azstarnet.png
similarity index 100%
rename from resources/images/news/azstarnet.png
rename to recipes/icons/azstarnet.png
diff --git a/resources/images/news/b92.png b/recipes/icons/b92.png
similarity index 100%
rename from resources/images/news/b92.png
rename to recipes/icons/b92.png
diff --git a/resources/images/news/balkaninsight.png b/recipes/icons/balkaninsight.png
similarity index 100%
rename from resources/images/news/balkaninsight.png
rename to recipes/icons/balkaninsight.png
diff --git a/resources/images/news/barrons.png b/recipes/icons/barrons.png
similarity index 100%
rename from resources/images/news/barrons.png
rename to recipes/icons/barrons.png
diff --git a/resources/images/news/bbc.png b/recipes/icons/bbc.png
similarity index 100%
rename from resources/images/news/bbc.png
rename to recipes/icons/bbc.png
diff --git a/resources/images/news/berlingske_dk.png b/recipes/icons/berlingske_dk.png
similarity index 100%
rename from resources/images/news/berlingske_dk.png
rename to recipes/icons/berlingske_dk.png
diff --git a/resources/images/news/beta.png b/recipes/icons/beta.png
similarity index 100%
rename from resources/images/news/beta.png
rename to recipes/icons/beta.png
diff --git a/resources/images/news/beta_en.png b/recipes/icons/beta_en.png
similarity index 100%
rename from resources/images/news/beta_en.png
rename to recipes/icons/beta_en.png
diff --git a/resources/images/news/biggovernment.png b/recipes/icons/biggovernment.png
similarity index 100%
rename from resources/images/news/biggovernment.png
rename to recipes/icons/biggovernment.png
diff --git a/resources/images/news/bighollywood.png b/recipes/icons/bighollywood.png
similarity index 100%
rename from resources/images/news/bighollywood.png
rename to recipes/icons/bighollywood.png
diff --git a/resources/images/news/blic.png b/recipes/icons/blic.png
similarity index 100%
rename from resources/images/news/blic.png
rename to recipes/icons/blic.png
diff --git a/resources/images/news/boortz.png b/recipes/icons/boortz.png
similarity index 100%
rename from resources/images/news/boortz.png
rename to recipes/icons/boortz.png
diff --git a/resources/images/news/borba.png b/recipes/icons/borba.png
similarity index 100%
rename from resources/images/news/borba.png
rename to recipes/icons/borba.png
diff --git a/resources/images/news/bucataras.png b/recipes/icons/bucataras.png
similarity index 100%
rename from resources/images/news/bucataras.png
rename to recipes/icons/bucataras.png
diff --git a/resources/images/news/business_insider.png b/recipes/icons/business_insider.png
similarity index 100%
rename from resources/images/news/business_insider.png
rename to recipes/icons/business_insider.png
diff --git a/resources/images/news/business_standard.png b/recipes/icons/business_standard.png
similarity index 100%
rename from resources/images/news/business_standard.png
rename to recipes/icons/business_standard.png
diff --git a/resources/images/news/businessworldin.png b/recipes/icons/businessworldin.png
similarity index 100%
rename from resources/images/news/businessworldin.png
rename to recipes/icons/businessworldin.png
diff --git a/resources/images/news/bwmagazine.png b/recipes/icons/bwmagazine.png
similarity index 100%
rename from resources/images/news/bwmagazine.png
rename to recipes/icons/bwmagazine.png
diff --git a/resources/images/news/capital.png b/recipes/icons/capital.png
similarity index 100%
rename from resources/images/news/capital.png
rename to recipes/icons/capital.png
diff --git a/resources/images/news/carta.png b/recipes/icons/carta.png
similarity index 100%
rename from resources/images/news/carta.png
rename to recipes/icons/carta.png
diff --git a/resources/images/news/catavencu.png b/recipes/icons/catavencu.png
similarity index 100%
rename from resources/images/news/catavencu.png
rename to recipes/icons/catavencu.png
diff --git a/resources/images/news/chicago_breaking_news.png b/recipes/icons/chicago_breaking_news.png
similarity index 100%
rename from resources/images/news/chicago_breaking_news.png
rename to recipes/icons/chicago_breaking_news.png
diff --git a/resources/images/news/chinadaily.png b/recipes/icons/chinadaily.png
similarity index 100%
rename from resources/images/news/chinadaily.png
rename to recipes/icons/chinadaily.png
diff --git a/resources/images/news/chipro.png b/recipes/icons/chipro.png
similarity index 100%
rename from resources/images/news/chipro.png
rename to recipes/icons/chipro.png
diff --git a/resources/images/news/chr_mon.png b/recipes/icons/chr_mon.png
similarity index 100%
rename from resources/images/news/chr_mon.png
rename to recipes/icons/chr_mon.png
diff --git a/resources/images/news/clarin.png b/recipes/icons/clarin.png
similarity index 100%
rename from resources/images/news/clarin.png
rename to recipes/icons/clarin.png
diff --git a/resources/images/news/cnetjapan.png b/recipes/icons/cnetjapan.png
similarity index 100%
rename from resources/images/news/cnetjapan.png
rename to recipes/icons/cnetjapan.png
diff --git a/resources/images/news/cnetjapan_digital.png b/recipes/icons/cnetjapan_digital.png
similarity index 100%
rename from resources/images/news/cnetjapan_digital.png
rename to recipes/icons/cnetjapan_digital.png
diff --git a/resources/images/news/cnetjapan_release.png b/recipes/icons/cnetjapan_release.png
similarity index 100%
rename from resources/images/news/cnetjapan_release.png
rename to recipes/icons/cnetjapan_release.png
diff --git a/resources/images/news/cnetnews.png b/recipes/icons/cnetnews.png
similarity index 100%
rename from resources/images/news/cnetnews.png
rename to recipes/icons/cnetnews.png
diff --git a/resources/images/news/cnn.png b/recipes/icons/cnn.png
similarity index 100%
rename from resources/images/news/cnn.png
rename to recipes/icons/cnn.png
diff --git a/resources/images/news/coding_horror.png b/recipes/icons/coding_horror.png
similarity index 100%
rename from resources/images/news/coding_horror.png
rename to recipes/icons/coding_horror.png
diff --git a/resources/images/news/columbusdispatch.png b/recipes/icons/columbusdispatch.png
similarity index 100%
rename from resources/images/news/columbusdispatch.png
rename to recipes/icons/columbusdispatch.png
diff --git a/resources/images/news/consumerist.png b/recipes/icons/consumerist.png
similarity index 100%
rename from resources/images/news/consumerist.png
rename to recipes/icons/consumerist.png
diff --git a/resources/images/news/corriere_della_sera_en.png b/recipes/icons/corriere_della_sera_en.png
similarity index 100%
rename from resources/images/news/corriere_della_sera_en.png
rename to recipes/icons/corriere_della_sera_en.png
diff --git a/resources/images/news/corriere_della_sera_it.png b/recipes/icons/corriere_della_sera_it.png
similarity index 100%
rename from resources/images/news/corriere_della_sera_it.png
rename to recipes/icons/corriere_della_sera_it.png
diff --git a/resources/images/news/cotidianul.png b/recipes/icons/cotidianul.png
similarity index 100%
rename from resources/images/news/cotidianul.png
rename to recipes/icons/cotidianul.png
diff --git a/resources/images/news/credit_slips.png b/recipes/icons/credit_slips.png
similarity index 100%
rename from resources/images/news/credit_slips.png
rename to recipes/icons/credit_slips.png
diff --git a/resources/images/news/criticadigital.png b/recipes/icons/criticadigital.png
similarity index 100%
rename from resources/images/news/criticadigital.png
rename to recipes/icons/criticadigital.png
diff --git a/resources/images/news/csid.png b/recipes/icons/csid.png
similarity index 100%
rename from resources/images/news/csid.png
rename to recipes/icons/csid.png
diff --git a/resources/images/news/cubadebate.png b/recipes/icons/cubadebate.png
similarity index 100%
rename from resources/images/news/cubadebate.png
rename to recipes/icons/cubadebate.png
diff --git a/resources/images/news/curierulnational.png b/recipes/icons/curierulnational.png
similarity index 100%
rename from resources/images/news/curierulnational.png
rename to recipes/icons/curierulnational.png
diff --git a/resources/images/news/dailyreckoning.png b/recipes/icons/dailyreckoning.png
similarity index 100%
rename from resources/images/news/dailyreckoning.png
rename to recipes/icons/dailyreckoning.png
diff --git a/resources/images/news/dailytportal.png b/recipes/icons/dailytportal.png
similarity index 100%
rename from resources/images/news/dailytportal.png
rename to recipes/icons/dailytportal.png
diff --git a/resources/images/news/danas.png b/recipes/icons/danas.png
similarity index 100%
rename from resources/images/news/danas.png
rename to recipes/icons/danas.png
diff --git a/resources/images/news/darknet.png b/recipes/icons/darknet.png
similarity index 100%
rename from resources/images/news/darknet.png
rename to recipes/icons/darknet.png
diff --git a/resources/images/news/de_standaard.png b/recipes/icons/de_standaard.png
similarity index 100%
rename from resources/images/news/de_standaard.png
rename to recipes/icons/de_standaard.png
diff --git a/resources/images/news/deadspin.png b/recipes/icons/deadspin.png
similarity index 100%
rename from resources/images/news/deadspin.png
rename to recipes/icons/deadspin.png
diff --git a/resources/images/news/der_standard.png b/recipes/icons/der_standard.png
similarity index 100%
rename from resources/images/news/der_standard.png
rename to recipes/icons/der_standard.png
diff --git a/resources/images/news/descopera.png b/recipes/icons/descopera.png
similarity index 100%
rename from resources/images/news/descopera.png
rename to recipes/icons/descopera.png
diff --git a/resources/images/news/deutsche_welle_bs.png b/recipes/icons/deutsche_welle_bs.png
similarity index 100%
rename from resources/images/news/deutsche_welle_bs.png
rename to recipes/icons/deutsche_welle_bs.png
diff --git a/resources/images/news/deutsche_welle_en.png b/recipes/icons/deutsche_welle_en.png
similarity index 100%
rename from resources/images/news/deutsche_welle_en.png
rename to recipes/icons/deutsche_welle_en.png
diff --git a/resources/images/news/deutsche_welle_es.png b/recipes/icons/deutsche_welle_es.png
similarity index 100%
rename from resources/images/news/deutsche_welle_es.png
rename to recipes/icons/deutsche_welle_es.png
diff --git a/resources/images/news/deutsche_welle_hr.png b/recipes/icons/deutsche_welle_hr.png
similarity index 100%
rename from resources/images/news/deutsche_welle_hr.png
rename to recipes/icons/deutsche_welle_hr.png
diff --git a/resources/images/news/deutsche_welle_pt.png b/recipes/icons/deutsche_welle_pt.png
similarity index 100%
rename from resources/images/news/deutsche_welle_pt.png
rename to recipes/icons/deutsche_welle_pt.png
diff --git a/resources/images/news/deutsche_welle_sr.png b/recipes/icons/deutsche_welle_sr.png
similarity index 100%
rename from resources/images/news/deutsche_welle_sr.png
rename to recipes/icons/deutsche_welle_sr.png
diff --git a/resources/images/news/di.png b/recipes/icons/di.png
similarity index 100%
rename from resources/images/news/di.png
rename to recipes/icons/di.png
diff --git a/resources/images/news/diariovasco.png b/recipes/icons/diariovasco.png
similarity index 100%
rename from resources/images/news/diariovasco.png
rename to recipes/icons/diariovasco.png
diff --git a/resources/images/news/diepresse.png b/recipes/icons/diepresse.png
similarity index 100%
rename from resources/images/news/diepresse.png
rename to recipes/icons/diepresse.png
diff --git a/resources/images/news/digitaljournal.png b/recipes/icons/digitaljournal.png
similarity index 100%
rename from resources/images/news/digitaljournal.png
rename to recipes/icons/digitaljournal.png
diff --git a/resources/images/news/digitalspy_uk.png b/recipes/icons/digitalspy_uk.png
similarity index 100%
rename from resources/images/news/digitalspy_uk.png
rename to recipes/icons/digitalspy_uk.png
diff --git a/resources/images/news/dilbert.png b/recipes/icons/dilbert.png
similarity index 100%
rename from resources/images/news/dilbert.png
rename to recipes/icons/dilbert.png
diff --git a/resources/images/news/discover_magazine.png b/recipes/icons/discover_magazine.png
similarity index 100%
rename from resources/images/news/discover_magazine.png
rename to recipes/icons/discover_magazine.png
diff --git a/resources/images/news/dn_se.png b/recipes/icons/dn_se.png
similarity index 100%
rename from resources/images/news/dn_se.png
rename to recipes/icons/dn_se.png
diff --git a/resources/images/news/dnevni_avaz.png b/recipes/icons/dnevni_avaz.png
similarity index 100%
rename from resources/images/news/dnevni_avaz.png
rename to recipes/icons/dnevni_avaz.png
diff --git a/resources/images/news/dnevnik.png b/recipes/icons/dnevnik.png
similarity index 100%
rename from resources/images/news/dnevnik.png
rename to recipes/icons/dnevnik.png
diff --git a/resources/images/news/dr_dk.png b/recipes/icons/dr_dk.png
similarity index 100%
rename from resources/images/news/dr_dk.png
rename to recipes/icons/dr_dk.png
diff --git a/resources/images/news/e_novine.png b/recipes/icons/e_novine.png
similarity index 100%
rename from resources/images/news/e_novine.png
rename to recipes/icons/e_novine.png
diff --git a/resources/images/news/eclicto.png b/recipes/icons/eclicto.png
similarity index 100%
rename from resources/images/news/eclicto.png
rename to recipes/icons/eclicto.png
diff --git a/resources/images/news/economist.png b/recipes/icons/economist.png
similarity index 100%
rename from resources/images/news/economist.png
rename to recipes/icons/economist.png
diff --git a/resources/images/news/ecuisine.png b/recipes/icons/ecuisine.png
similarity index 100%
rename from resources/images/news/ecuisine.png
rename to recipes/icons/ecuisine.png
diff --git a/resources/images/news/egirl.png b/recipes/icons/egirl.png
similarity index 100%
rename from resources/images/news/egirl.png
rename to recipes/icons/egirl.png
diff --git a/resources/images/news/eksiazki.png b/recipes/icons/eksiazki.png
similarity index 100%
rename from resources/images/news/eksiazki.png
rename to recipes/icons/eksiazki.png
diff --git a/resources/images/news/el_mercurio_chile.png b/recipes/icons/el_mercurio_chile.png
similarity index 100%
rename from resources/images/news/el_mercurio_chile.png
rename to recipes/icons/el_mercurio_chile.png
diff --git a/resources/images/news/el_universal.png b/recipes/icons/el_universal.png
similarity index 100%
rename from resources/images/news/el_universal.png
rename to recipes/icons/el_universal.png
diff --git a/resources/images/news/elargentino.png b/recipes/icons/elargentino.png
similarity index 100%
rename from resources/images/news/elargentino.png
rename to recipes/icons/elargentino.png
diff --git a/resources/images/news/elcomercio.png b/recipes/icons/elcomercio.png
similarity index 100%
rename from resources/images/news/elcomercio.png
rename to recipes/icons/elcomercio.png
diff --git a/resources/images/news/elcronista.png b/recipes/icons/elcronista.png
similarity index 100%
rename from resources/images/news/elcronista.png
rename to recipes/icons/elcronista.png
diff --git a/resources/images/news/ele.png b/recipes/icons/ele.png
similarity index 100%
rename from resources/images/news/ele.png
rename to recipes/icons/ele.png
diff --git a/resources/images/news/elektrolese.png b/recipes/icons/elektrolese.png
similarity index 100%
rename from resources/images/news/elektrolese.png
rename to recipes/icons/elektrolese.png
diff --git a/resources/images/news/elmundo.png b/recipes/icons/elmundo.png
similarity index 100%
rename from resources/images/news/elmundo.png
rename to recipes/icons/elmundo.png
diff --git a/resources/images/news/elpais_impreso.png b/recipes/icons/elpais_impreso.png
similarity index 100%
rename from resources/images/news/elpais_impreso.png
rename to recipes/icons/elpais_impreso.png
diff --git a/resources/images/news/elpais_semanal.png b/recipes/icons/elpais_semanal.png
similarity index 100%
rename from resources/images/news/elpais_semanal.png
rename to recipes/icons/elpais_semanal.png
diff --git a/resources/images/news/elperiodico_catalan.png b/recipes/icons/elperiodico_catalan.png
similarity index 100%
rename from resources/images/news/elperiodico_catalan.png
rename to recipes/icons/elperiodico_catalan.png
diff --git a/resources/images/news/elperiodico_spanish.png b/recipes/icons/elperiodico_spanish.png
similarity index 100%
rename from resources/images/news/elperiodico_spanish.png
rename to recipes/icons/elperiodico_spanish.png
diff --git a/resources/images/news/elsevier.png b/recipes/icons/elsevier.png
similarity index 100%
rename from resources/images/news/elsevier.png
rename to recipes/icons/elsevier.png
diff --git a/resources/images/news/eltiempo_hn.png b/recipes/icons/eltiempo_hn.png
similarity index 100%
rename from resources/images/news/eltiempo_hn.png
rename to recipes/icons/eltiempo_hn.png
diff --git a/resources/images/news/eluniversal.png b/recipes/icons/eluniversal.png
similarity index 100%
rename from resources/images/news/eluniversal.png
rename to recipes/icons/eluniversal.png
diff --git a/resources/images/news/eluniversal_ve.png b/recipes/icons/eluniversal_ve.png
similarity index 100%
rename from resources/images/news/eluniversal_ve.png
rename to recipes/icons/eluniversal_ve.png
diff --git a/resources/images/news/eluniverso_ec.png b/recipes/icons/eluniverso_ec.png
similarity index 100%
rename from resources/images/news/eluniverso_ec.png
rename to recipes/icons/eluniverso_ec.png
diff --git a/resources/images/news/emg_en.png b/recipes/icons/emg_en.png
similarity index 100%
rename from resources/images/news/emg_en.png
rename to recipes/icons/emg_en.png
diff --git a/resources/images/news/emg_rs.recipe b/recipes/icons/emg_rs.png
similarity index 100%
rename from resources/images/news/emg_rs.recipe
rename to recipes/icons/emg_rs.png
diff --git a/resources/images/news/endgadget.png b/recipes/icons/endgadget.png
similarity index 100%
rename from resources/images/news/endgadget.png
rename to recipes/icons/endgadget.png
diff --git a/resources/images/news/endgadget_ja.png b/recipes/icons/endgadget_ja.png
similarity index 100%
rename from resources/images/news/endgadget_ja.png
rename to recipes/icons/endgadget_ja.png
diff --git a/resources/images/news/entrepeneur.png b/recipes/icons/entrepeneur.png
similarity index 100%
rename from resources/images/news/entrepeneur.png
rename to recipes/icons/entrepeneur.png
diff --git a/resources/images/news/espn.png b/recipes/icons/espn.png
similarity index 100%
rename from resources/images/news/espn.png
rename to recipes/icons/espn.png
diff --git a/resources/images/news/esquire.png b/recipes/icons/esquire.png
similarity index 100%
rename from resources/images/news/esquire.png
rename to recipes/icons/esquire.png
diff --git a/resources/images/news/estadao.png b/recipes/icons/estadao.png
similarity index 100%
rename from resources/images/news/estadao.png
rename to recipes/icons/estadao.png
diff --git a/resources/images/news/evz.ro.png b/recipes/icons/evz.ro.png
similarity index 100%
rename from resources/images/news/evz.ro.png
rename to recipes/icons/evz.ro.png
diff --git a/resources/images/news/exiled.png b/recipes/icons/exiled.png
similarity index 100%
rename from resources/images/news/exiled.png
rename to recipes/icons/exiled.png
diff --git a/resources/images/news/expansion_spanish.png b/recipes/icons/expansion_spanish.png
similarity index 100%
rename from resources/images/news/expansion_spanish.png
rename to recipes/icons/expansion_spanish.png
diff --git a/resources/images/news/fastcompany.png b/recipes/icons/fastcompany.png
similarity index 100%
rename from resources/images/news/fastcompany.png
rename to recipes/icons/fastcompany.png
diff --git a/resources/images/news/faznet.png b/recipes/icons/faznet.png
similarity index 100%
rename from resources/images/news/faznet.png
rename to recipes/icons/faznet.png
diff --git a/resources/images/news/fe_india.png b/recipes/icons/fe_india.png
similarity index 100%
rename from resources/images/news/fe_india.png
rename to recipes/icons/fe_india.png
diff --git a/resources/images/news/felicia.png b/recipes/icons/felicia.png
similarity index 100%
rename from resources/images/news/felicia.png
rename to recipes/icons/felicia.png
diff --git a/resources/images/news/fhmro.png b/recipes/icons/fhmro.png
similarity index 100%
rename from resources/images/news/fhmro.png
rename to recipes/icons/fhmro.png
diff --git a/resources/images/news/financiarul.png b/recipes/icons/financiarul.png
similarity index 100%
rename from resources/images/news/financiarul.png
rename to recipes/icons/financiarul.png
diff --git a/resources/images/news/fleshbot.png b/recipes/icons/fleshbot.png
similarity index 100%
rename from resources/images/news/fleshbot.png
rename to recipes/icons/fleshbot.png
diff --git a/resources/images/news/foreignaffairs.png b/recipes/icons/foreignaffairs.png
similarity index 100%
rename from resources/images/news/foreignaffairs.png
rename to recipes/icons/foreignaffairs.png
diff --git a/resources/images/news/foxnews.png b/recipes/icons/foxnews.png
similarity index 100%
rename from resources/images/news/foxnews.png
rename to recipes/icons/foxnews.png
diff --git a/resources/images/news/frazpc.png b/recipes/icons/frazpc.png
similarity index 100%
rename from resources/images/news/frazpc.png
rename to recipes/icons/frazpc.png
diff --git a/resources/images/news/freakonomics.png b/recipes/icons/freakonomics.png
similarity index 100%
rename from resources/images/news/freakonomics.png
rename to recipes/icons/freakonomics.png
diff --git a/resources/images/news/fronda.png b/recipes/icons/fronda.png
similarity index 100%
rename from resources/images/news/fronda.png
rename to recipes/icons/fronda.png
diff --git a/resources/images/news/fstream.png b/recipes/icons/fstream.png
similarity index 100%
rename from resources/images/news/fstream.png
rename to recipes/icons/fstream.png
diff --git a/resources/images/news/ftd.png b/recipes/icons/ftd.png
similarity index 100%
rename from resources/images/news/ftd.png
rename to recipes/icons/ftd.png
diff --git a/resources/images/news/fudzilla.png b/recipes/icons/fudzilla.png
similarity index 100%
rename from resources/images/news/fudzilla.png
rename to recipes/icons/fudzilla.png
diff --git a/resources/images/news/futurismic.png b/recipes/icons/futurismic.png
similarity index 100%
rename from resources/images/news/futurismic.png
rename to recipes/icons/futurismic.png
diff --git a/resources/images/news/gamasutra_fa.png b/recipes/icons/gamasutra_fa.png
similarity index 100%
rename from resources/images/news/gamasutra_fa.png
rename to recipes/icons/gamasutra_fa.png
diff --git a/resources/images/news/gamasutra_news.png b/recipes/icons/gamasutra_news.png
similarity index 100%
rename from resources/images/news/gamasutra_news.png
rename to recipes/icons/gamasutra_news.png
diff --git a/resources/images/news/gandul.png b/recipes/icons/gandul.png
similarity index 100%
rename from resources/images/news/gandul.png
rename to recipes/icons/gandul.png
diff --git a/resources/images/news/gawker.png b/recipes/icons/gawker.png
similarity index 100%
rename from resources/images/news/gawker.png
rename to recipes/icons/gawker.png
diff --git a/resources/images/news/gazeta_pomorska.png b/recipes/icons/gazeta_pomorska.png
similarity index 100%
rename from resources/images/news/gazeta_pomorska.png
rename to recipes/icons/gazeta_pomorska.png
diff --git a/resources/images/news/gizmodo.png b/recipes/icons/gizmodo.png
similarity index 100%
rename from resources/images/news/gizmodo.png
rename to recipes/icons/gizmodo.png
diff --git a/resources/images/news/glas_srpske.png b/recipes/icons/glas_srpske.png
similarity index 100%
rename from resources/images/news/glas_srpske.png
rename to recipes/icons/glas_srpske.png
diff --git a/resources/images/news/glasjavnosti.png b/recipes/icons/glasjavnosti.png
similarity index 100%
rename from resources/images/news/glasjavnosti.png
rename to recipes/icons/glasjavnosti.png
diff --git a/resources/images/news/go4it.png b/recipes/icons/go4it.png
similarity index 100%
rename from resources/images/news/go4it.png
rename to recipes/icons/go4it.png
diff --git a/resources/images/news/granma.png b/recipes/icons/granma.png
similarity index 100%
rename from resources/images/news/granma.png
rename to recipes/icons/granma.png
diff --git a/resources/images/news/greensboro_news_and_record.png b/recipes/icons/greensboro_news_and_record.png
similarity index 100%
rename from resources/images/news/greensboro_news_and_record.png
rename to recipes/icons/greensboro_news_and_record.png
diff --git a/resources/images/news/gsp.png b/recipes/icons/gsp.png
similarity index 100%
rename from resources/images/news/gsp.png
rename to recipes/icons/gsp.png
diff --git a/resources/images/news/guardian.png b/recipes/icons/guardian.png
similarity index 100%
rename from resources/images/news/guardian.png
rename to recipes/icons/guardian.png
diff --git a/resources/images/news/gva_be.png b/recipes/icons/gva_be.png
similarity index 100%
rename from resources/images/news/gva_be.png
rename to recipes/icons/gva_be.png
diff --git a/resources/images/news/haaretz.png b/recipes/icons/haaretz.png
similarity index 100%
rename from resources/images/news/haaretz.png
rename to recipes/icons/haaretz.png
diff --git a/resources/images/news/haaretz_en.png b/recipes/icons/haaretz_en.png
similarity index 100%
rename from resources/images/news/haaretz_en.png
rename to recipes/icons/haaretz_en.png
diff --git a/resources/images/news/heise.png b/recipes/icons/heise.png
similarity index 100%
rename from resources/images/news/heise.png
rename to recipes/icons/heise.png
diff --git a/resources/images/news/historiaro.png b/recipes/icons/historiaro.png
similarity index 100%
rename from resources/images/news/historiaro.png
rename to recipes/icons/historiaro.png
diff --git a/resources/images/news/hitro.png b/recipes/icons/hitro.png
similarity index 100%
rename from resources/images/news/hitro.png
rename to recipes/icons/hitro.png
diff --git a/resources/images/news/hln.png b/recipes/icons/hln.png
similarity index 100%
rename from resources/images/news/hln.png
rename to recipes/icons/hln.png
diff --git a/resources/images/news/hln_be.png b/recipes/icons/hln_be.png
similarity index 100%
rename from resources/images/news/hln_be.png
rename to recipes/icons/hln_be.png
diff --git a/resources/images/news/hna.png b/recipes/icons/hna.png
similarity index 100%
rename from resources/images/news/hna.png
rename to recipes/icons/hna.png
diff --git a/resources/images/news/hotair.png b/recipes/icons/hotair.png
similarity index 100%
rename from resources/images/news/hotair.png
rename to recipes/icons/hotair.png
diff --git a/resources/images/news/hotcity.png b/recipes/icons/hotcity.png
similarity index 100%
rename from resources/images/news/hotcity.png
rename to recipes/icons/hotcity.png
diff --git a/resources/images/news/hotnews.png b/recipes/icons/hotnews.png
similarity index 100%
rename from resources/images/news/hotnews.png
rename to recipes/icons/hotnews.png
diff --git a/resources/images/news/houston_chronicle-2.png b/recipes/icons/houston_chronicle-2.png
similarity index 100%
rename from resources/images/news/houston_chronicle-2.png
rename to recipes/icons/houston_chronicle-2.png
diff --git a/resources/images/news/howtogeek.png b/recipes/icons/howtogeek.png
similarity index 100%
rename from resources/images/news/howtogeek.png
rename to recipes/icons/howtogeek.png
diff --git a/resources/images/news/hrt.png b/recipes/icons/hrt.png
similarity index 100%
rename from resources/images/news/hrt.png
rename to recipes/icons/hrt.png
diff --git a/resources/images/news/ieco.png b/recipes/icons/ieco.png
similarity index 100%
rename from resources/images/news/ieco.png
rename to recipes/icons/ieco.png
diff --git a/resources/images/news/imperatortravel.png b/recipes/icons/imperatortravel.png
similarity index 100%
rename from resources/images/news/imperatortravel.png
rename to recipes/icons/imperatortravel.png
diff --git a/resources/images/news/infobae.png b/recipes/icons/infobae.png
similarity index 100%
rename from resources/images/news/infobae.png
rename to recipes/icons/infobae.png
diff --git a/resources/images/news/information_dk.png b/recipes/icons/information_dk.png
similarity index 100%
rename from resources/images/news/information_dk.png
rename to recipes/icons/information_dk.png
diff --git a/resources/images/news/inquirer_net.png b/recipes/icons/inquirer_net.png
similarity index 100%
rename from resources/images/news/inquirer_net.png
rename to recipes/icons/inquirer_net.png
diff --git a/resources/images/news/instapaper.png b/recipes/icons/instapaper.png
similarity index 100%
rename from resources/images/news/instapaper.png
rename to recipes/icons/instapaper.png
diff --git a/resources/images/news/interia_fakty.png b/recipes/icons/interia_fakty.png
similarity index 100%
rename from resources/images/news/interia_fakty.png
rename to recipes/icons/interia_fakty.png
diff --git a/resources/images/news/interia_sport.png b/recipes/icons/interia_sport.png
similarity index 100%
rename from resources/images/news/interia_sport.png
rename to recipes/icons/interia_sport.png
diff --git a/resources/images/news/intrefete.png b/recipes/icons/intrefete.png
similarity index 100%
rename from resources/images/news/intrefete.png
rename to recipes/icons/intrefete.png
diff --git a/resources/images/news/io9.png b/recipes/icons/io9.png
similarity index 100%
rename from resources/images/news/io9.png
rename to recipes/icons/io9.png
diff --git a/resources/images/news/ionline_pt.png b/recipes/icons/ionline_pt.png
similarity index 100%
rename from resources/images/news/ionline_pt.png
rename to recipes/icons/ionline_pt.png
diff --git a/resources/images/news/izvestia.png b/recipes/icons/izvestia.png
similarity index 100%
rename from resources/images/news/izvestia.png
rename to recipes/icons/izvestia.png
diff --git a/resources/images/news/jalopnik.png b/recipes/icons/jalopnik.png
similarity index 100%
rename from resources/images/news/jalopnik.png
rename to recipes/icons/jalopnik.png
diff --git a/resources/images/news/jb_online.png b/recipes/icons/jb_online.png
similarity index 100%
rename from resources/images/news/jb_online.png
rename to recipes/icons/jb_online.png
diff --git a/resources/images/news/jezebel.png b/recipes/icons/jezebel.png
similarity index 100%
rename from resources/images/news/jezebel.png
rename to recipes/icons/jezebel.png
diff --git a/resources/images/news/jijinews.png b/recipes/icons/jijinews.png
similarity index 100%
rename from resources/images/news/jijinews.png
rename to recipes/icons/jijinews.png
diff --git a/resources/images/news/joelonsoftware.png b/recipes/icons/joelonsoftware.png
similarity index 100%
rename from resources/images/news/joelonsoftware.png
rename to recipes/icons/joelonsoftware.png
diff --git a/resources/images/news/joop.png b/recipes/icons/joop.png
similarity index 100%
rename from resources/images/news/joop.png
rename to recipes/icons/joop.png
diff --git a/resources/images/news/journalgazette.png b/recipes/icons/journalgazette.png
similarity index 100%
rename from resources/images/news/journalgazette.png
rename to recipes/icons/journalgazette.png
diff --git a/resources/images/news/jp_dk.png b/recipes/icons/jp_dk.png
similarity index 100%
rename from resources/images/news/jp_dk.png
rename to recipes/icons/jp_dk.png
diff --git a/resources/images/news/jpost.png b/recipes/icons/jpost.png
similarity index 100%
rename from resources/images/news/jpost.png
rename to recipes/icons/jpost.png
diff --git a/resources/images/news/jpost_fr.png b/recipes/icons/jpost_fr.png
similarity index 100%
rename from resources/images/news/jpost_fr.png
rename to recipes/icons/jpost_fr.png
diff --git a/resources/images/news/jurnalulnational.png b/recipes/icons/jurnalulnational.png
similarity index 100%
rename from resources/images/news/jurnalulnational.png
rename to recipes/icons/jurnalulnational.png
diff --git a/resources/images/news/jutarnji.png b/recipes/icons/jutarnji.png
similarity index 100%
rename from resources/images/news/jutarnji.png
rename to recipes/icons/jutarnji.png
diff --git a/resources/images/news/kamerabild.png b/recipes/icons/kamerabild.png
similarity index 100%
rename from resources/images/news/kamerabild.png
rename to recipes/icons/kamerabild.png
diff --git a/resources/images/news/kamikaze.png b/recipes/icons/kamikaze.png
similarity index 100%
rename from resources/images/news/kamikaze.png
rename to recipes/icons/kamikaze.png
diff --git a/resources/images/news/kitsapun.png b/recipes/icons/kitsapun.png
similarity index 100%
rename from resources/images/news/kitsapun.png
rename to recipes/icons/kitsapun.png
diff --git a/resources/images/news/kommersant.png b/recipes/icons/kommersant.png
similarity index 100%
rename from resources/images/news/kommersant.png
rename to recipes/icons/kommersant.png
diff --git a/resources/images/news/kompiutierra.png b/recipes/icons/kompiutierra.png
similarity index 100%
rename from resources/images/news/kompiutierra.png
rename to recipes/icons/kompiutierra.png
diff --git a/resources/images/news/kopalniawiedzy.png b/recipes/icons/kopalniawiedzy.png
similarity index 100%
rename from resources/images/news/kopalniawiedzy.png
rename to recipes/icons/kopalniawiedzy.png
diff --git a/resources/images/news/korespondent.png b/recipes/icons/korespondent.png
similarity index 100%
rename from resources/images/news/korespondent.png
rename to recipes/icons/korespondent.png
diff --git a/resources/images/news/kotaku.png b/recipes/icons/kotaku.png
similarity index 100%
rename from resources/images/news/kotaku.png
rename to recipes/icons/kotaku.png
diff --git a/resources/images/news/krstarica.png b/recipes/icons/krstarica.png
similarity index 100%
rename from resources/images/news/krstarica.png
rename to recipes/icons/krstarica.png
diff --git a/resources/images/news/krstarica_en.png b/recipes/icons/krstarica_en.png
similarity index 100%
rename from resources/images/news/krstarica_en.png
rename to recipes/icons/krstarica_en.png
diff --git a/resources/images/news/kstar.png b/recipes/icons/kstar.png
similarity index 100%
rename from resources/images/news/kstar.png
rename to recipes/icons/kstar.png
diff --git a/resources/images/news/kudika.png b/recipes/icons/kudika.png
similarity index 100%
rename from resources/images/news/kudika.png
rename to recipes/icons/kudika.png
diff --git a/resources/images/news/kurier.png b/recipes/icons/kurier.png
similarity index 100%
rename from resources/images/news/kurier.png
rename to recipes/icons/kurier.png
diff --git a/resources/images/news/la_cuarta.png b/recipes/icons/la_cuarta.png
similarity index 100%
rename from resources/images/news/la_cuarta.png
rename to recipes/icons/la_cuarta.png
diff --git a/resources/images/news/la_jornada.png b/recipes/icons/la_jornada.png
similarity index 100%
rename from resources/images/news/la_jornada.png
rename to recipes/icons/la_jornada.png
diff --git a/resources/images/news/la_razon_bo.png b/recipes/icons/la_razon_bo.png
similarity index 100%
rename from resources/images/news/la_razon_bo.png
rename to recipes/icons/la_razon_bo.png
diff --git a/resources/images/news/la_tercera.png b/recipes/icons/la_tercera.png
similarity index 100%
rename from resources/images/news/la_tercera.png
rename to recipes/icons/la_tercera.png
diff --git a/resources/images/news/lanacion.png b/recipes/icons/lanacion.png
similarity index 100%
rename from resources/images/news/lanacion.png
rename to recipes/icons/lanacion.png
diff --git a/resources/images/news/lanacion_chile.png b/recipes/icons/lanacion_chile.png
similarity index 100%
rename from resources/images/news/lanacion_chile.png
rename to recipes/icons/lanacion_chile.png
diff --git a/resources/images/news/laprensa_hn.png b/recipes/icons/laprensa_hn.png
similarity index 100%
rename from resources/images/news/laprensa_hn.png
rename to recipes/icons/laprensa_hn.png
diff --git a/resources/images/news/laprensa_ni.png b/recipes/icons/laprensa_ni.png
similarity index 100%
rename from resources/images/news/laprensa_ni.png
rename to recipes/icons/laprensa_ni.png
diff --git a/resources/images/news/latimes.png b/recipes/icons/latimes.png
similarity index 100%
rename from resources/images/news/latimes.png
rename to recipes/icons/latimes.png
diff --git a/resources/images/news/latribuna.png b/recipes/icons/latribuna.png
similarity index 100%
rename from resources/images/news/latribuna.png
rename to recipes/icons/latribuna.png
diff --git a/resources/images/news/le_monde.png b/recipes/icons/le_monde.png
similarity index 100%
rename from resources/images/news/le_monde.png
rename to recipes/icons/le_monde.png
diff --git a/resources/images/news/ledevoir.png b/recipes/icons/ledevoir.png
similarity index 100%
rename from resources/images/news/ledevoir.png
rename to recipes/icons/ledevoir.png
diff --git a/resources/images/news/legeartis.png b/recipes/icons/legeartis.png
similarity index 100%
rename from resources/images/news/legeartis.png
rename to recipes/icons/legeartis.png
diff --git a/resources/images/news/legitymizm.png b/recipes/icons/legitymizm.png
similarity index 100%
rename from resources/images/news/legitymizm.png
rename to recipes/icons/legitymizm.png
diff --git a/resources/images/news/lemonde_dip.png b/recipes/icons/lemonde_dip.png
similarity index 100%
rename from resources/images/news/lemonde_dip.png
rename to recipes/icons/lemonde_dip.png
diff --git a/resources/images/news/liberation.png b/recipes/icons/liberation.png
similarity index 100%
rename from resources/images/news/liberation.png
rename to recipes/icons/liberation.png
diff --git a/resources/images/news/lifehacker.png b/recipes/icons/lifehacker.png
similarity index 100%
rename from resources/images/news/lifehacker.png
rename to recipes/icons/lifehacker.png
diff --git a/resources/images/news/linux_magazine.png b/recipes/icons/linux_magazine.png
similarity index 100%
rename from resources/images/news/linux_magazine.png
rename to recipes/icons/linux_magazine.png
diff --git a/resources/images/news/linuxdevices.png b/recipes/icons/linuxdevices.png
similarity index 100%
rename from resources/images/news/linuxdevices.png
rename to recipes/icons/linuxdevices.png
diff --git a/resources/images/news/livemint.png b/recipes/icons/livemint.png
similarity index 100%
rename from resources/images/news/livemint.png
rename to recipes/icons/livemint.png
diff --git a/resources/images/news/los_tiempos_bo.png b/recipes/icons/los_tiempos_bo.png
similarity index 100%
rename from resources/images/news/los_tiempos_bo.png
rename to recipes/icons/los_tiempos_bo.png
diff --git a/resources/images/news/lrb.png b/recipes/icons/lrb.png
similarity index 100%
rename from resources/images/news/lrb.png
rename to recipes/icons/lrb.png
diff --git a/resources/images/news/lrb_payed.png b/recipes/icons/lrb_payed.png
similarity index 100%
rename from resources/images/news/lrb_payed.png
rename to recipes/icons/lrb_payed.png
diff --git a/resources/images/news/lwn.png b/recipes/icons/lwn.png
similarity index 100%
rename from resources/images/news/lwn.png
rename to recipes/icons/lwn.png
diff --git a/resources/images/news/lwn_weekly.png b/recipes/icons/lwn_weekly.png
similarity index 100%
rename from resources/images/news/lwn_weekly.png
rename to recipes/icons/lwn_weekly.png
diff --git a/resources/images/news/mainichi.png b/recipes/icons/mainichi.png
similarity index 100%
rename from resources/images/news/mainichi.png
rename to recipes/icons/mainichi.png
diff --git a/resources/images/news/mainichi_it_news.png b/recipes/icons/mainichi_it_news.png
similarity index 100%
rename from resources/images/news/mainichi_it_news.png
rename to recipes/icons/mainichi_it_news.png
diff --git a/resources/images/news/mediafax.png b/recipes/icons/mediafax.png
similarity index 100%
rename from resources/images/news/mediafax.png
rename to recipes/icons/mediafax.png
diff --git a/resources/images/news/miami_herald.png b/recipes/icons/miami_herald.png
similarity index 100%
rename from resources/images/news/miami_herald.png
rename to recipes/icons/miami_herald.png
diff --git a/resources/images/news/michalkiewicz.png b/recipes/icons/michalkiewicz.png
similarity index 100%
rename from resources/images/news/michalkiewicz.png
rename to recipes/icons/michalkiewicz.png
diff --git a/resources/images/news/michellemalkin_icon.png b/recipes/icons/michellemalkin_icon.png
similarity index 100%
rename from resources/images/news/michellemalkin_icon.png
rename to recipes/icons/michellemalkin_icon.png
diff --git a/resources/images/news/monden.png b/recipes/icons/monden.png
similarity index 100%
rename from resources/images/news/monden.png
rename to recipes/icons/monden.png
diff --git a/resources/images/news/moneyro.png b/recipes/icons/moneyro.png
similarity index 100%
rename from resources/images/news/moneyro.png
rename to recipes/icons/moneyro.png
diff --git a/resources/images/news/moscow_times.png b/recipes/icons/moscow_times.png
similarity index 100%
rename from resources/images/news/moscow_times.png
rename to recipes/icons/moscow_times.png
diff --git a/resources/images/news/motherjones.png b/recipes/icons/motherjones.png
similarity index 100%
rename from resources/images/news/motherjones.png
rename to recipes/icons/motherjones.png
diff --git a/resources/images/news/msdnmag_en.png b/recipes/icons/msdnmag_en.png
similarity index 100%
rename from resources/images/news/msdnmag_en.png
rename to recipes/icons/msdnmag_en.png
diff --git a/resources/images/news/msnbc.png b/recipes/icons/msnbc.png
similarity index 100%
rename from resources/images/news/msnbc.png
rename to recipes/icons/msnbc.png
diff --git a/resources/images/news/msnsankei.png b/recipes/icons/msnsankei.png
similarity index 100%
rename from resources/images/news/msnsankei.png
rename to recipes/icons/msnsankei.png
diff --git a/resources/images/news/nacional_cro.png b/recipes/icons/nacional_cro.png
similarity index 100%
rename from resources/images/news/nacional_cro.png
rename to recipes/icons/nacional_cro.png
diff --git a/resources/images/news/nasa.png b/recipes/icons/nasa.png
similarity index 100%
rename from resources/images/news/nasa.png
rename to recipes/icons/nasa.png
diff --git a/resources/images/news/nationalgeoro.png b/recipes/icons/nationalgeoro.png
similarity index 100%
rename from resources/images/news/nationalgeoro.png
rename to recipes/icons/nationalgeoro.png
diff --git a/resources/images/news/nationalreviewonline.png b/recipes/icons/nationalreviewonline.png
similarity index 100%
rename from resources/images/news/nationalreviewonline.png
rename to recipes/icons/nationalreviewonline.png
diff --git a/resources/images/news/neowin.png b/recipes/icons/neowin.png
similarity index 100%
rename from resources/images/news/neowin.png
rename to recipes/icons/neowin.png
diff --git a/resources/images/news/new_yorker.png b/recipes/icons/new_yorker.png
similarity index 100%
rename from resources/images/news/new_yorker.png
rename to recipes/icons/new_yorker.png
diff --git a/resources/images/news/newsstraitstimes.png b/recipes/icons/newsstraitstimes.png
similarity index 100%
rename from resources/images/news/newsstraitstimes.png
rename to recipes/icons/newsstraitstimes.png
diff --git a/resources/images/news/newsweek.png b/recipes/icons/newsweek.png
similarity index 100%
rename from resources/images/news/newsweek.png
rename to recipes/icons/newsweek.png
diff --git a/resources/images/news/nikkei_free.png b/recipes/icons/nikkei_free.png
similarity index 100%
rename from resources/images/news/nikkei_free.png
rename to recipes/icons/nikkei_free.png
diff --git a/resources/images/news/nikkei_sub.png b/recipes/icons/nikkei_sub.png
similarity index 100%
rename from resources/images/news/nikkei_sub.png
rename to recipes/icons/nikkei_sub.png
diff --git a/resources/images/news/nikkei_sub_economy.png b/recipes/icons/nikkei_sub_economy.png
similarity index 100%
rename from resources/images/news/nikkei_sub_economy.png
rename to recipes/icons/nikkei_sub_economy.png
diff --git a/resources/images/news/nikkei_sub_industry.png b/recipes/icons/nikkei_sub_industry.png
similarity index 100%
rename from resources/images/news/nikkei_sub_industry.png
rename to recipes/icons/nikkei_sub_industry.png
diff --git a/resources/images/news/nikkei_sub_life.png b/recipes/icons/nikkei_sub_life.png
similarity index 100%
rename from resources/images/news/nikkei_sub_life.png
rename to recipes/icons/nikkei_sub_life.png
diff --git a/resources/images/news/nikkei_sub_main.png b/recipes/icons/nikkei_sub_main.png
similarity index 100%
rename from resources/images/news/nikkei_sub_main.png
rename to recipes/icons/nikkei_sub_main.png
diff --git a/resources/images/news/nikkei_sub_sports.png b/recipes/icons/nikkei_sub_sports.png
similarity index 100%
rename from resources/images/news/nikkei_sub_sports.png
rename to recipes/icons/nikkei_sub_sports.png
diff --git a/resources/images/news/njuz_net.png b/recipes/icons/njuz_net.png
similarity index 100%
rename from resources/images/news/njuz_net.png
rename to recipes/icons/njuz_net.png
diff --git a/resources/images/news/noaa.png b/recipes/icons/noaa.png
similarity index 100%
rename from resources/images/news/noaa.png
rename to recipes/icons/noaa.png
diff --git a/resources/images/news/novaya_gazeta.png b/recipes/icons/novaya_gazeta.png
similarity index 100%
rename from resources/images/news/novaya_gazeta.png
rename to recipes/icons/novaya_gazeta.png
diff --git a/resources/images/news/novosti.png b/recipes/icons/novosti.png
similarity index 100%
rename from resources/images/news/novosti.png
rename to recipes/icons/novosti.png
diff --git a/resources/images/news/nrc.nl.png b/recipes/icons/nrc.nl.png
similarity index 100%
rename from resources/images/news/nrc.nl.png
rename to recipes/icons/nrc.nl.png
diff --git a/resources/images/news/nrcnext.png b/recipes/icons/nrcnext.png
similarity index 100%
rename from resources/images/news/nrcnext.png
rename to recipes/icons/nrcnext.png
diff --git a/resources/images/news/nspm.png b/recipes/icons/nspm.png
similarity index 100%
rename from resources/images/news/nspm.png
rename to recipes/icons/nspm.png
diff --git a/resources/images/news/nspm_int.png b/recipes/icons/nspm_int.png
similarity index 100%
rename from resources/images/news/nspm_int.png
rename to recipes/icons/nspm_int.png
diff --git a/resources/images/news/nursingtimes.png b/recipes/icons/nursingtimes.png
similarity index 100%
rename from resources/images/news/nursingtimes.png
rename to recipes/icons/nursingtimes.png
diff --git a/resources/images/news/nypost.png b/recipes/icons/nypost.png
similarity index 100%
rename from resources/images/news/nypost.png
rename to recipes/icons/nypost.png
diff --git a/resources/images/news/nytimes.png b/recipes/icons/nytimes.png
similarity index 100%
rename from resources/images/news/nytimes.png
rename to recipes/icons/nytimes.png
diff --git a/resources/images/news/nytimes_sports.png b/recipes/icons/nytimes_sports.png
similarity index 100%
rename from resources/images/news/nytimes_sports.png
rename to recipes/icons/nytimes_sports.png
diff --git a/resources/images/news/nytimes_sub.png b/recipes/icons/nytimes_sub.png
similarity index 100%
rename from resources/images/news/nytimes_sub.png
rename to recipes/icons/nytimes_sub.png
diff --git a/resources/images/news/nytimes_tech.png b/recipes/icons/nytimes_tech.png
similarity index 100%
rename from resources/images/news/nytimes_tech.png
rename to recipes/icons/nytimes_tech.png
diff --git a/resources/images/news/nzz_ger.png b/recipes/icons/nzz_ger.png
similarity index 100%
rename from resources/images/news/nzz_ger.png
rename to recipes/icons/nzz_ger.png
diff --git a/resources/images/news/o_globo.png b/recipes/icons/o_globo.png
similarity index 100%
rename from resources/images/news/o_globo.png
rename to recipes/icons/o_globo.png
diff --git a/resources/images/news/observer.png b/recipes/icons/observer.png
similarity index 100%
rename from resources/images/news/observer.png
rename to recipes/icons/observer.png
diff --git a/resources/images/news/oldnewthing.png b/recipes/icons/oldnewthing.png
similarity index 100%
rename from resources/images/news/oldnewthing.png
rename to recipes/icons/oldnewthing.png
diff --git a/resources/images/news/onemagazine.png b/recipes/icons/onemagazine.png
similarity index 100%
rename from resources/images/news/onemagazine.png
rename to recipes/icons/onemagazine.png
diff --git a/resources/images/news/orsai.png b/recipes/icons/orsai.png
similarity index 100%
rename from resources/images/news/orsai.png
rename to recipes/icons/orsai.png
diff --git a/resources/images/news/ourdailybread.png b/recipes/icons/ourdailybread.png
similarity index 100%
rename from resources/images/news/ourdailybread.png
rename to recipes/icons/ourdailybread.png
diff --git a/resources/images/news/pagina12.png b/recipes/icons/pagina12.png
similarity index 100%
rename from resources/images/news/pagina12.png
rename to recipes/icons/pagina12.png
diff --git a/resources/images/news/pcworldro.png b/recipes/icons/pcworldro.png
similarity index 100%
rename from resources/images/news/pcworldro.png
rename to recipes/icons/pcworldro.png
diff --git a/resources/images/news/perfil.png b/recipes/icons/perfil.png
similarity index 100%
rename from resources/images/news/perfil.png
rename to recipes/icons/perfil.png
diff --git a/resources/images/news/pescanik.png b/recipes/icons/pescanik.png
similarity index 100%
rename from resources/images/news/pescanik.png
rename to recipes/icons/pescanik.png
diff --git a/resources/images/news/pobjeda.png b/recipes/icons/pobjeda.png
similarity index 100%
rename from resources/images/news/pobjeda.png
rename to recipes/icons/pobjeda.png
diff --git a/resources/images/news/politico.png b/recipes/icons/politico.png
similarity index 100%
rename from resources/images/news/politico.png
rename to recipes/icons/politico.png
diff --git a/resources/images/news/politika.png b/recipes/icons/politika.png
similarity index 100%
rename from resources/images/news/politika.png
rename to recipes/icons/politika.png
diff --git a/resources/images/news/politiken_dk.png b/recipes/icons/politiken_dk.png
similarity index 100%
rename from resources/images/news/politiken_dk.png
rename to recipes/icons/politiken_dk.png
diff --git a/resources/images/news/popscience.png b/recipes/icons/popscience.png
similarity index 100%
rename from resources/images/news/popscience.png
rename to recipes/icons/popscience.png
diff --git a/resources/images/news/portfolio.png b/recipes/icons/portfolio.png
similarity index 100%
rename from resources/images/news/portfolio.png
rename to recipes/icons/portfolio.png
diff --git a/resources/images/news/praguemonitor.png b/recipes/icons/praguemonitor.png
similarity index 100%
rename from resources/images/news/praguemonitor.png
rename to recipes/icons/praguemonitor.png
diff --git a/resources/images/news/pressonline.png b/recipes/icons/pressonline.png
similarity index 100%
rename from resources/images/news/pressonline.png
rename to recipes/icons/pressonline.png
diff --git a/resources/images/news/pressthink.png b/recipes/icons/pressthink.png
similarity index 100%
rename from resources/images/news/pressthink.png
rename to recipes/icons/pressthink.png
diff --git a/resources/images/news/promotor.png b/recipes/icons/promotor.png
similarity index 100%
rename from resources/images/news/promotor.png
rename to recipes/icons/promotor.png
diff --git a/resources/images/news/propublica.png b/recipes/icons/propublica.png
similarity index 100%
rename from resources/images/news/propublica.png
rename to recipes/icons/propublica.png
diff --git a/resources/images/news/prosport.png b/recipes/icons/prosport.png
similarity index 100%
rename from resources/images/news/prosport.png
rename to recipes/icons/prosport.png
diff --git a/resources/images/news/protvmagazin.png b/recipes/icons/protvmagazin.png
similarity index 100%
rename from resources/images/news/protvmagazin.png
rename to recipes/icons/protvmagazin.png
diff --git a/resources/images/news/psychologies.png b/recipes/icons/psychologies.png
similarity index 100%
rename from resources/images/news/psychologies.png
rename to recipes/icons/psychologies.png
diff --git a/resources/images/news/publika.png b/recipes/icons/publika.png
similarity index 100%
rename from resources/images/news/publika.png
rename to recipes/icons/publika.png
diff --git a/resources/images/news/radikal_tr.png b/recipes/icons/radikal_tr.png
similarity index 100%
rename from resources/images/news/radikal_tr.png
rename to recipes/icons/radikal_tr.png
diff --git a/resources/images/news/rbc_ru.png b/recipes/icons/rbc_ru.png
similarity index 100%
rename from resources/images/news/rbc_ru.png
rename to recipes/icons/rbc_ru.png
diff --git a/resources/images/news/readitlater.png b/recipes/icons/readitlater.png
similarity index 100%
rename from resources/images/news/readitlater.png
rename to recipes/icons/readitlater.png
diff --git a/resources/images/news/realitatea.png b/recipes/icons/realitatea.png
similarity index 100%
rename from resources/images/news/realitatea.png
rename to recipes/icons/realitatea.png
diff --git a/resources/images/news/reuters.png b/recipes/icons/reuters.png
similarity index 100%
rename from resources/images/news/reuters.png
rename to recipes/icons/reuters.png
diff --git a/resources/images/news/reuters_ja.png b/recipes/icons/reuters_ja.png
similarity index 100%
rename from resources/images/news/reuters_ja.png
rename to recipes/icons/reuters_ja.png
diff --git a/resources/images/news/ria_ru.png b/recipes/icons/ria_ru.png
similarity index 100%
rename from resources/images/news/ria_ru.png
rename to recipes/icons/ria_ru.png
diff --git a/resources/images/news/rmf24_ESKN.png b/recipes/icons/rmf24_ESKN.png
similarity index 100%
rename from resources/images/news/rmf24_ESKN.png
rename to recipes/icons/rmf24_ESKN.png
diff --git a/resources/images/news/rmf24_fakty.png b/recipes/icons/rmf24_fakty.png
similarity index 100%
rename from resources/images/news/rmf24_fakty.png
rename to recipes/icons/rmf24_fakty.png
diff --git a/resources/images/news/rollingstone.png b/recipes/icons/rollingstone.png
similarity index 100%
rename from resources/images/news/rollingstone.png
rename to recipes/icons/rollingstone.png
diff --git a/resources/images/news/romanialibera.png b/recipes/icons/romanialibera.png
similarity index 100%
rename from resources/images/news/romanialibera.png
rename to recipes/icons/romanialibera.png
diff --git a/resources/images/news/rstones.png b/recipes/icons/rstones.png
similarity index 100%
rename from resources/images/news/rstones.png
rename to recipes/icons/rstones.png
diff --git a/resources/images/news/rts.png b/recipes/icons/rts.png
similarity index 100%
rename from resources/images/news/rts.png
rename to recipes/icons/rts.png
diff --git a/resources/images/news/rusiahoy.png b/recipes/icons/rusiahoy.png
similarity index 100%
rename from resources/images/news/rusiahoy.png
rename to recipes/icons/rusiahoy.png
diff --git a/resources/images/news/sanjosemercurynews.png b/recipes/icons/sanjosemercurynews.png
similarity index 100%
rename from resources/images/news/sanjosemercurynews.png
rename to recipes/icons/sanjosemercurynews.png
diff --git a/resources/images/news/sarajevo_x.png b/recipes/icons/sarajevo_x.png
similarity index 100%
rename from resources/images/news/sarajevo_x.png
rename to recipes/icons/sarajevo_x.png
diff --git a/resources/images/news/science_news_recent_issues.png b/recipes/icons/science_news_recent_issues.png
similarity index 100%
rename from resources/images/news/science_news_recent_issues.png
rename to recipes/icons/science_news_recent_issues.png
diff --git a/resources/images/news/sciencedaily.png b/recipes/icons/sciencedaily.png
similarity index 100%
rename from resources/images/news/sciencedaily.png
rename to recipes/icons/sciencedaily.png
diff --git a/resources/images/news/scott_hanselman.png b/recipes/icons/scott_hanselman.png
similarity index 100%
rename from resources/images/news/scott_hanselman.png
rename to recipes/icons/scott_hanselman.png
diff --git a/resources/images/news/seattle_times.png b/recipes/icons/seattle_times.png
similarity index 100%
rename from resources/images/news/seattle_times.png
rename to recipes/icons/seattle_times.png
diff --git a/resources/images/news/security_watch.png b/recipes/icons/security_watch.png
similarity index 100%
rename from resources/images/news/security_watch.png
rename to recipes/icons/security_watch.png
diff --git a/resources/images/news/sfin.png b/recipes/icons/sfin.png
similarity index 100%
rename from resources/images/news/sfin.png
rename to recipes/icons/sfin.png
diff --git a/resources/images/news/siol.png b/recipes/icons/siol.png
similarity index 100%
rename from resources/images/news/siol.png
rename to recipes/icons/siol.png
diff --git a/resources/images/news/smashing.png b/recipes/icons/smashing.png
similarity index 100%
rename from resources/images/news/smashing.png
rename to recipes/icons/smashing.png
diff --git a/resources/images/news/smh.png b/recipes/icons/smh.png
similarity index 100%
rename from resources/images/news/smh.png
rename to recipes/icons/smh.png
diff --git a/resources/images/news/soldiers.png b/recipes/icons/soldiers.png
similarity index 100%
rename from resources/images/news/soldiers.png
rename to recipes/icons/soldiers.png
diff --git a/resources/images/news/spiegel_int.png b/recipes/icons/spiegel_int.png
similarity index 100%
rename from resources/images/news/spiegel_int.png
rename to recipes/icons/spiegel_int.png
diff --git a/resources/images/news/spiegelde.png b/recipes/icons/spiegelde.png
similarity index 100%
rename from resources/images/news/spiegelde.png
rename to recipes/icons/spiegelde.png
diff --git a/resources/images/news/stackoverflow.png b/recipes/icons/stackoverflow.png
similarity index 100%
rename from resources/images/news/stackoverflow.png
rename to recipes/icons/stackoverflow.png
diff --git a/resources/images/news/standardmoney.png b/recipes/icons/standardmoney.png
similarity index 100%
rename from resources/images/news/standardmoney.png
rename to recipes/icons/standardmoney.png
diff --git a/resources/images/news/staradvertiser.png b/recipes/icons/staradvertiser.png
similarity index 100%
rename from resources/images/news/staradvertiser.png
rename to recipes/icons/staradvertiser.png
diff --git a/resources/images/news/straitstimes.png b/recipes/icons/straitstimes.png
similarity index 100%
rename from resources/images/news/straitstimes.png
rename to recipes/icons/straitstimes.png
diff --git a/resources/images/news/sueddeutsche.png b/recipes/icons/sueddeutsche.png
similarity index 100%
rename from resources/images/news/sueddeutsche.png
rename to recipes/icons/sueddeutsche.png
diff --git a/resources/images/news/sueddeutschezeitung.png b/recipes/icons/sueddeutschezeitung.png
similarity index 100%
rename from resources/images/news/sueddeutschezeitung.png
rename to recipes/icons/sueddeutschezeitung.png
diff --git a/resources/images/news/superbebe.png b/recipes/icons/superbebe.png
similarity index 100%
rename from resources/images/news/superbebe.png
rename to recipes/icons/superbebe.png
diff --git a/resources/images/news/svd_se.png b/recipes/icons/svd_se.png
similarity index 100%
rename from resources/images/news/svd_se.png
rename to recipes/icons/svd_se.png
diff --git a/resources/images/news/tabu.png b/recipes/icons/tabu.png
similarity index 100%
rename from resources/images/news/tabu.png
rename to recipes/icons/tabu.png
diff --git a/resources/images/news/tanjug.png b/recipes/icons/tanjug.png
similarity index 100%
rename from resources/images/news/tanjug.png
rename to recipes/icons/tanjug.png
diff --git a/resources/images/news/telegraph_uk.png b/recipes/icons/telegraph_uk.png
similarity index 100%
rename from resources/images/news/telegraph_uk.png
rename to recipes/icons/telegraph_uk.png
diff --git a/resources/images/news/telepolis.png b/recipes/icons/telepolis.png
similarity index 100%
rename from resources/images/news/telepolis.png
rename to recipes/icons/telepolis.png
diff --git a/resources/images/news/telepolis_artikel.png b/recipes/icons/telepolis_artikel.png
similarity index 100%
rename from resources/images/news/telepolis_artikel.png
rename to recipes/icons/telepolis_artikel.png
diff --git a/resources/images/news/teleread.png b/recipes/icons/teleread.png
similarity index 100%
rename from resources/images/news/teleread.png
rename to recipes/icons/teleread.png
diff --git a/resources/images/news/the_oz.png b/recipes/icons/the_oz.png
similarity index 100%
rename from resources/images/news/the_oz.png
rename to recipes/icons/the_oz.png
diff --git a/resources/images/news/the_week_magazine_free.png b/recipes/icons/the_week_magazine_free.png
similarity index 100%
rename from resources/images/news/the_week_magazine_free.png
rename to recipes/icons/the_week_magazine_free.png
diff --git a/resources/images/news/the_workingham_times.png b/recipes/icons/the_workingham_times.png
similarity index 100%
rename from resources/images/news/the_workingham_times.png
rename to recipes/icons/the_workingham_times.png
diff --git a/resources/images/news/theecocolapse.png b/recipes/icons/theecocolapse.png
similarity index 100%
rename from resources/images/news/theecocolapse.png
rename to recipes/icons/theecocolapse.png
diff --git a/resources/images/news/theeconomictimes_india.png b/recipes/icons/theeconomictimes_india.png
similarity index 100%
rename from resources/images/news/theeconomictimes_india.png
rename to recipes/icons/theeconomictimes_india.png
diff --git a/resources/images/news/theluminouslandscape.png b/recipes/icons/theluminouslandscape.png
similarity index 100%
rename from resources/images/news/theluminouslandscape.png
rename to recipes/icons/theluminouslandscape.png
diff --git a/resources/images/news/themarketticker.png b/recipes/icons/themarketticker.png
similarity index 100%
rename from resources/images/news/themarketticker.png
rename to recipes/icons/themarketticker.png
diff --git a/resources/images/news/theonion.png b/recipes/icons/theonion.png
similarity index 100%
rename from resources/images/news/theonion.png
rename to recipes/icons/theonion.png
diff --git a/resources/images/news/thestar.png b/recipes/icons/thestar.png
similarity index 100%
rename from resources/images/news/thestar.png
rename to recipes/icons/thestar.png
diff --git a/resources/images/news/thewest_au.png b/recipes/icons/thewest_au.png
similarity index 100%
rename from resources/images/news/thewest_au.png
rename to recipes/icons/thewest_au.png
diff --git a/resources/images/news/tidbits.png b/recipes/icons/tidbits.png
similarity index 100%
rename from resources/images/news/tidbits.png
rename to recipes/icons/tidbits.png
diff --git a/resources/images/news/tijd.png b/recipes/icons/tijd.png
similarity index 100%
rename from resources/images/news/tijd.png
rename to recipes/icons/tijd.png
diff --git a/resources/images/news/time_magazine.png b/recipes/icons/time_magazine.png
similarity index 100%
rename from resources/images/news/time_magazine.png
rename to recipes/icons/time_magazine.png
diff --git a/resources/images/news/times_online.png b/recipes/icons/times_online.png
similarity index 100%
rename from resources/images/news/times_online.png
rename to recipes/icons/times_online.png
diff --git a/resources/images/news/timesnewroman.png b/recipes/icons/timesnewroman.png
similarity index 100%
rename from resources/images/news/timesnewroman.png
rename to recipes/icons/timesnewroman.png
diff --git a/resources/images/news/tomshardware.png b/recipes/icons/tomshardware.png
similarity index 100%
rename from resources/images/news/tomshardware.png
rename to recipes/icons/tomshardware.png
diff --git a/resources/images/news/tomshardware_de.png b/recipes/icons/tomshardware_de.png
similarity index 100%
rename from resources/images/news/tomshardware_de.png
rename to recipes/icons/tomshardware_de.png
diff --git a/resources/images/news/toronto_sun.png b/recipes/icons/toronto_sun.png
similarity index 100%
rename from resources/images/news/toronto_sun.png
rename to recipes/icons/toronto_sun.png
diff --git a/resources/images/news/tpm_uk.png b/recipes/icons/tpm_uk.png
similarity index 100%
rename from resources/images/news/tpm_uk.png
rename to recipes/icons/tpm_uk.png
diff --git a/resources/images/news/trombon.png b/recipes/icons/trombon.png
similarity index 100%
rename from resources/images/news/trombon.png
rename to recipes/icons/trombon.png
diff --git a/resources/images/news/tulsaworld.png b/recipes/icons/tulsaworld.png
similarity index 100%
rename from resources/images/news/tulsaworld.png
rename to recipes/icons/tulsaworld.png
diff --git a/resources/images/news/tvmania.png b/recipes/icons/tvmania.png
similarity index 100%
rename from resources/images/news/tvmania.png
rename to recipes/icons/tvmania.png
diff --git a/resources/images/news/ultimahora.png b/recipes/icons/ultimahora.png
similarity index 100%
rename from resources/images/news/ultimahora.png
rename to recipes/icons/ultimahora.png
diff --git a/resources/images/news/uncrate.png b/recipes/icons/uncrate.png
similarity index 100%
rename from resources/images/news/uncrate.png
rename to recipes/icons/uncrate.png
diff --git a/resources/images/news/unica.png b/recipes/icons/unica.png
similarity index 100%
rename from resources/images/news/unica.png
rename to recipes/icons/unica.png
diff --git a/resources/images/news/usnews.png b/recipes/icons/usnews.png
similarity index 100%
rename from resources/images/news/usnews.png
rename to recipes/icons/usnews.png
diff --git a/resources/images/news/utne.png b/recipes/icons/utne.png
similarity index 100%
rename from resources/images/news/utne.png
rename to recipes/icons/utne.png
diff --git a/resources/images/news/variety.png b/recipes/icons/variety.png
similarity index 100%
rename from resources/images/news/variety.png
rename to recipes/icons/variety.png
diff --git a/resources/images/news/vecernji_list.png b/recipes/icons/vecernji_list.png
similarity index 100%
rename from resources/images/news/vecernji_list.png
rename to recipes/icons/vecernji_list.png
diff --git a/resources/images/news/vedomosti.png b/recipes/icons/vedomosti.png
similarity index 100%
rename from resources/images/news/vedomosti.png
rename to recipes/icons/vedomosti.png
diff --git a/resources/images/news/vijesti.png b/recipes/icons/vijesti.png
similarity index 100%
rename from resources/images/news/vijesti.png
rename to recipes/icons/vijesti.png
diff --git a/resources/images/news/virtualshackles.png b/recipes/icons/virtualshackles.png
similarity index 100%
rename from resources/images/news/virtualshackles.png
rename to recipes/icons/virtualshackles.png
diff --git a/resources/images/news/viva.png b/recipes/icons/viva.png
similarity index 100%
rename from resources/images/news/viva.png
rename to recipes/icons/viva.png
diff --git a/resources/images/news/vreme.png b/recipes/icons/vreme.png
similarity index 100%
rename from resources/images/news/vreme.png
rename to recipes/icons/vreme.png
diff --git a/resources/images/news/wallstreetro.png b/recipes/icons/wallstreetro.png
similarity index 100%
rename from resources/images/news/wallstreetro.png
rename to recipes/icons/wallstreetro.png
diff --git a/resources/images/news/walrusmag.png b/recipes/icons/walrusmag.png
similarity index 100%
rename from resources/images/news/walrusmag.png
rename to recipes/icons/walrusmag.png
diff --git a/resources/images/news/wapo_cartoons.png b/recipes/icons/wapo_cartoons.png
similarity index 100%
rename from resources/images/news/wapo_cartoons.png
rename to recipes/icons/wapo_cartoons.png
diff --git a/resources/images/news/welt.png b/recipes/icons/welt.png
similarity index 100%
rename from resources/images/news/welt.png
rename to recipes/icons/welt.png
diff --git a/resources/images/news/wikinews_en.png b/recipes/icons/wikinews_en.png
similarity index 100%
rename from resources/images/news/wikinews_en.png
rename to recipes/icons/wikinews_en.png
diff --git a/resources/images/news/wired.png b/recipes/icons/wired.png
similarity index 100%
rename from resources/images/news/wired.png
rename to recipes/icons/wired.png
diff --git a/resources/images/news/wired_uk.png b/recipes/icons/wired_uk.png
similarity index 100%
rename from resources/images/news/wired_uk.png
rename to recipes/icons/wired_uk.png
diff --git a/resources/images/news/wsj.png b/recipes/icons/wsj.png
similarity index 100%
rename from resources/images/news/wsj.png
rename to recipes/icons/wsj.png
diff --git a/resources/images/news/yomiuri.png b/recipes/icons/yomiuri.png
similarity index 100%
rename from resources/images/news/yomiuri.png
rename to recipes/icons/yomiuri.png
diff --git a/resources/images/news/zdnet.png b/recipes/icons/zdnet.png
similarity index 100%
rename from resources/images/news/zdnet.png
rename to recipes/icons/zdnet.png
diff --git a/resources/images/news/zeitde.png b/recipes/icons/zeitde.png
similarity index 100%
rename from resources/images/news/zeitde.png
rename to recipes/icons/zeitde.png
diff --git a/resources/images/news/zerohedge.png b/recipes/icons/zerohedge.png
similarity index 100%
rename from resources/images/news/zerohedge.png
rename to recipes/icons/zerohedge.png
diff --git a/resources/images/news/ziarulfinanciar.png b/recipes/icons/ziarulfinanciar.png
similarity index 100%
rename from resources/images/news/ziarulfinanciar.png
rename to recipes/icons/ziarulfinanciar.png
diff --git a/resources/recipes/idnes.recipe b/recipes/idnes.recipe
similarity index 100%
rename from resources/recipes/idnes.recipe
rename to recipes/idnes.recipe
diff --git a/resources/recipes/ieco.recipe b/recipes/ieco.recipe
similarity index 100%
rename from resources/recipes/ieco.recipe
rename to recipes/ieco.recipe
diff --git a/resources/recipes/ieeespectrum.recipe b/recipes/ieeespectrum.recipe
similarity index 100%
rename from resources/recipes/ieeespectrum.recipe
rename to recipes/ieeespectrum.recipe
diff --git a/resources/recipes/ifzm.recipe b/recipes/ifzm.recipe
similarity index 100%
rename from resources/recipes/ifzm.recipe
rename to recipes/ifzm.recipe
diff --git a/resources/recipes/ihned.recipe b/recipes/ihned.recipe
similarity index 100%
rename from resources/recipes/ihned.recipe
rename to recipes/ihned.recipe
diff --git a/resources/recipes/iht.recipe b/recipes/iht.recipe
similarity index 100%
rename from resources/recipes/iht.recipe
rename to recipes/iht.recipe
diff --git a/resources/recipes/il_fatto.recipe b/recipes/il_fatto.recipe
similarity index 100%
rename from resources/recipes/il_fatto.recipe
rename to recipes/il_fatto.recipe
diff --git a/resources/recipes/il_giornale.recipe b/recipes/il_giornale.recipe
similarity index 100%
rename from resources/recipes/il_giornale.recipe
rename to recipes/il_giornale.recipe
diff --git a/resources/recipes/il_messaggero.recipe b/recipes/il_messaggero.recipe
similarity index 100%
rename from resources/recipes/il_messaggero.recipe
rename to recipes/il_messaggero.recipe
diff --git a/resources/recipes/iliteratura_cz.recipe b/recipes/iliteratura_cz.recipe
similarity index 100%
rename from resources/recipes/iliteratura_cz.recipe
rename to recipes/iliteratura_cz.recipe
diff --git a/resources/recipes/ilsole24ore.recipe b/recipes/ilsole24ore.recipe
similarity index 100%
rename from resources/recipes/ilsole24ore.recipe
rename to recipes/ilsole24ore.recipe
diff --git a/resources/recipes/imperatortravel.recipe b/recipes/imperatortravel.recipe
similarity index 100%
rename from resources/recipes/imperatortravel.recipe
rename to recipes/imperatortravel.recipe
diff --git a/resources/recipes/inc.recipe b/recipes/inc.recipe
similarity index 100%
rename from resources/recipes/inc.recipe
rename to recipes/inc.recipe
diff --git a/resources/recipes/independent.recipe b/recipes/independent.recipe
similarity index 100%
rename from resources/recipes/independent.recipe
rename to recipes/independent.recipe
diff --git a/resources/recipes/index_hu.recipe b/recipes/index_hu.recipe
similarity index 100%
rename from resources/recipes/index_hu.recipe
rename to recipes/index_hu.recipe
diff --git a/resources/recipes/india_today.recipe b/recipes/india_today.recipe
similarity index 100%
rename from resources/recipes/india_today.recipe
rename to recipes/india_today.recipe
diff --git a/resources/recipes/indian_express.recipe b/recipes/indian_express.recipe
similarity index 100%
rename from resources/recipes/indian_express.recipe
rename to recipes/indian_express.recipe
diff --git a/resources/recipes/indy_star.recipe b/recipes/indy_star.recipe
similarity index 100%
rename from resources/recipes/indy_star.recipe
rename to recipes/indy_star.recipe
diff --git a/resources/recipes/infobae.recipe b/recipes/infobae.recipe
similarity index 100%
rename from resources/recipes/infobae.recipe
rename to recipes/infobae.recipe
diff --git a/resources/recipes/infomotori.recipe b/recipes/infomotori.recipe
similarity index 100%
rename from resources/recipes/infomotori.recipe
rename to recipes/infomotori.recipe
diff --git a/resources/recipes/information_dk.recipe b/recipes/information_dk.recipe
similarity index 100%
rename from resources/recipes/information_dk.recipe
rename to recipes/information_dk.recipe
diff --git a/resources/recipes/infoworld.recipe b/recipes/infoworld.recipe
similarity index 100%
rename from resources/recipes/infoworld.recipe
rename to recipes/infoworld.recipe
diff --git a/resources/recipes/inquirer_net.recipe b/recipes/inquirer_net.recipe
similarity index 100%
rename from resources/recipes/inquirer_net.recipe
rename to recipes/inquirer_net.recipe
diff --git a/resources/recipes/instapaper.recipe b/recipes/instapaper.recipe
similarity index 100%
rename from resources/recipes/instapaper.recipe
rename to recipes/instapaper.recipe
diff --git a/resources/recipes/intelligencer.recipe b/recipes/intelligencer.recipe
similarity index 100%
rename from resources/recipes/intelligencer.recipe
rename to recipes/intelligencer.recipe
diff --git a/resources/recipes/interia_fakty.recipe b/recipes/interia_fakty.recipe
similarity index 100%
rename from resources/recipes/interia_fakty.recipe
rename to recipes/interia_fakty.recipe
diff --git a/resources/recipes/interia_sport.recipe b/recipes/interia_sport.recipe
similarity index 100%
rename from resources/recipes/interia_sport.recipe
rename to recipes/interia_sport.recipe
diff --git a/resources/recipes/intrefete.recipe b/recipes/intrefete.recipe
similarity index 100%
rename from resources/recipes/intrefete.recipe
rename to recipes/intrefete.recipe
diff --git a/resources/recipes/io9.recipe b/recipes/io9.recipe
similarity index 100%
rename from resources/recipes/io9.recipe
rename to recipes/io9.recipe
diff --git a/resources/recipes/ionline_pt.recipe b/recipes/ionline_pt.recipe
similarity index 100%
rename from resources/recipes/ionline_pt.recipe
rename to recipes/ionline_pt.recipe
diff --git a/resources/recipes/irish_independent.recipe b/recipes/irish_independent.recipe
similarity index 100%
rename from resources/recipes/irish_independent.recipe
rename to recipes/irish_independent.recipe
diff --git a/resources/recipes/irish_times.recipe b/recipes/irish_times.recipe
similarity index 100%
rename from resources/recipes/irish_times.recipe
rename to recipes/irish_times.recipe
diff --git a/resources/recipes/izvestia.recipe b/recipes/izvestia.recipe
similarity index 100%
rename from resources/recipes/izvestia.recipe
rename to recipes/izvestia.recipe
diff --git a/resources/recipes/jakarta_post.recipe b/recipes/jakarta_post.recipe
similarity index 100%
rename from resources/recipes/jakarta_post.recipe
rename to recipes/jakarta_post.recipe
diff --git a/resources/recipes/jalopnik.recipe b/recipes/jalopnik.recipe
similarity index 100%
rename from resources/recipes/jalopnik.recipe
rename to recipes/jalopnik.recipe
diff --git a/resources/recipes/japan_times.recipe b/recipes/japan_times.recipe
similarity index 100%
rename from resources/recipes/japan_times.recipe
rename to recipes/japan_times.recipe
diff --git a/resources/recipes/javalobby.recipe b/recipes/javalobby.recipe
similarity index 100%
rename from resources/recipes/javalobby.recipe
rename to recipes/javalobby.recipe
diff --git a/resources/recipes/jb_online.recipe b/recipes/jb_online.recipe
similarity index 100%
rename from resources/recipes/jb_online.recipe
rename to recipes/jb_online.recipe
diff --git a/resources/recipes/jbpress.recipe b/recipes/jbpress.recipe
similarity index 100%
rename from resources/recipes/jbpress.recipe
rename to recipes/jbpress.recipe
diff --git a/resources/recipes/jezebel.recipe b/recipes/jezebel.recipe
similarity index 100%
rename from resources/recipes/jezebel.recipe
rename to recipes/jezebel.recipe
diff --git a/resources/recipes/jijinews.recipe b/recipes/jijinews.recipe
similarity index 100%
rename from resources/recipes/jijinews.recipe
rename to recipes/jijinews.recipe
diff --git a/resources/recipes/joelonsoftware.recipe b/recipes/joelonsoftware.recipe
similarity index 100%
rename from resources/recipes/joelonsoftware.recipe
rename to recipes/joelonsoftware.recipe
diff --git a/resources/recipes/johm.recipe b/recipes/johm.recipe
similarity index 100%
rename from resources/recipes/johm.recipe
rename to recipes/johm.recipe
diff --git a/resources/recipes/joop.recipe b/recipes/joop.recipe
similarity index 100%
rename from resources/recipes/joop.recipe
rename to recipes/joop.recipe
diff --git a/resources/recipes/journalgazette.recipe b/recipes/journalgazette.recipe
similarity index 100%
rename from resources/recipes/journalgazette.recipe
rename to recipes/journalgazette.recipe
diff --git a/resources/recipes/journalofaccountancy.recipe b/recipes/journalofaccountancy.recipe
similarity index 100%
rename from resources/recipes/journalofaccountancy.recipe
rename to recipes/journalofaccountancy.recipe
diff --git a/resources/recipes/jp_dk.recipe b/recipes/jp_dk.recipe
similarity index 100%
rename from resources/recipes/jp_dk.recipe
rename to recipes/jp_dk.recipe
diff --git a/resources/recipes/jpost.recipe b/recipes/jpost.recipe
similarity index 100%
rename from resources/recipes/jpost.recipe
rename to recipes/jpost.recipe
diff --git a/resources/recipes/jpost_fr.recipe b/recipes/jpost_fr.recipe
similarity index 100%
rename from resources/recipes/jpost_fr.recipe
rename to recipes/jpost_fr.recipe
diff --git a/resources/recipes/jsonline.recipe b/recipes/jsonline.recipe
similarity index 100%
rename from resources/recipes/jsonline.recipe
rename to recipes/jsonline.recipe
diff --git a/resources/recipes/jurnalulnational.recipe b/recipes/jurnalulnational.recipe
similarity index 100%
rename from resources/recipes/jurnalulnational.recipe
rename to recipes/jurnalulnational.recipe
diff --git a/resources/recipes/jutarnji.recipe b/recipes/jutarnji.recipe
similarity index 100%
rename from resources/recipes/jutarnji.recipe
rename to recipes/jutarnji.recipe
diff --git a/resources/recipes/juventudrebelde.recipe b/recipes/juventudrebelde.recipe
similarity index 100%
rename from resources/recipes/juventudrebelde.recipe
rename to recipes/juventudrebelde.recipe
diff --git a/resources/recipes/juventudrebelde_english.recipe b/recipes/juventudrebelde_english.recipe
similarity index 100%
rename from resources/recipes/juventudrebelde_english.recipe
rename to recipes/juventudrebelde_english.recipe
diff --git a/resources/recipes/kahokushinpo.recipe b/recipes/kahokushinpo.recipe
similarity index 100%
rename from resources/recipes/kahokushinpo.recipe
rename to recipes/kahokushinpo.recipe
diff --git a/resources/recipes/kamerabild.recipe b/recipes/kamerabild.recipe
similarity index 100%
rename from resources/recipes/kamerabild.recipe
rename to recipes/kamerabild.recipe
diff --git a/resources/recipes/kamikaze.recipe b/recipes/kamikaze.recipe
similarity index 100%
rename from resources/recipes/kamikaze.recipe
rename to recipes/kamikaze.recipe
diff --git a/resources/recipes/karlsruhe.recipe b/recipes/karlsruhe.recipe
similarity index 100%
rename from resources/recipes/karlsruhe.recipe
rename to recipes/karlsruhe.recipe
diff --git a/resources/recipes/kath_net.recipe b/recipes/kath_net.recipe
similarity index 100%
rename from resources/recipes/kath_net.recipe
rename to recipes/kath_net.recipe
diff --git a/resources/recipes/kathemerini.recipe b/recipes/kathemerini.recipe
similarity index 100%
rename from resources/recipes/kathemerini.recipe
rename to recipes/kathemerini.recipe
diff --git a/resources/recipes/kellog_faculty.recipe b/recipes/kellog_faculty.recipe
similarity index 100%
rename from resources/recipes/kellog_faculty.recipe
rename to recipes/kellog_faculty.recipe
diff --git a/resources/recipes/kellog_insight.recipe b/recipes/kellog_insight.recipe
similarity index 100%
rename from resources/recipes/kellog_insight.recipe
rename to recipes/kellog_insight.recipe
diff --git a/resources/recipes/kidney.recipe b/recipes/kidney.recipe
similarity index 100%
rename from resources/recipes/kidney.recipe
rename to recipes/kidney.recipe
diff --git a/resources/recipes/kitsapun.recipe b/recipes/kitsapun.recipe
similarity index 100%
rename from resources/recipes/kitsapun.recipe
rename to recipes/kitsapun.recipe
diff --git a/resources/recipes/kleinezeitung.recipe b/recipes/kleinezeitung.recipe
similarity index 100%
rename from resources/recipes/kleinezeitung.recipe
rename to recipes/kleinezeitung.recipe
diff --git a/resources/recipes/komchadluek.recipe b/recipes/komchadluek.recipe
similarity index 100%
rename from resources/recipes/komchadluek.recipe
rename to recipes/komchadluek.recipe
diff --git a/resources/recipes/kommersant.recipe b/recipes/kommersant.recipe
similarity index 100%
rename from resources/recipes/kommersant.recipe
rename to recipes/kommersant.recipe
diff --git a/resources/recipes/kompas.recipe b/recipes/kompas.recipe
similarity index 100%
rename from resources/recipes/kompas.recipe
rename to recipes/kompas.recipe
diff --git a/resources/recipes/kompiutierra.recipe b/recipes/kompiutierra.recipe
similarity index 100%
rename from resources/recipes/kompiutierra.recipe
rename to recipes/kompiutierra.recipe
diff --git a/resources/recipes/kopalniawiedzy.recipe b/recipes/kopalniawiedzy.recipe
similarity index 100%
rename from resources/recipes/kopalniawiedzy.recipe
rename to recipes/kopalniawiedzy.recipe
diff --git a/resources/recipes/korespondent.recipe b/recipes/korespondent.recipe
similarity index 100%
rename from resources/recipes/korespondent.recipe
rename to recipes/korespondent.recipe
diff --git a/resources/recipes/kotaku.recipe b/recipes/kotaku.recipe
similarity index 100%
rename from resources/recipes/kotaku.recipe
rename to recipes/kotaku.recipe
diff --git a/resources/recipes/krstarica.recipe b/recipes/krstarica.recipe
similarity index 100%
rename from resources/recipes/krstarica.recipe
rename to recipes/krstarica.recipe
diff --git a/resources/recipes/krstarica_en.recipe b/recipes/krstarica_en.recipe
similarity index 100%
rename from resources/recipes/krstarica_en.recipe
rename to recipes/krstarica_en.recipe
diff --git a/resources/recipes/kstar.recipe b/recipes/kstar.recipe
similarity index 100%
rename from resources/recipes/kstar.recipe
rename to recipes/kstar.recipe
diff --git a/resources/recipes/kudika.recipe b/recipes/kudika.recipe
similarity index 100%
rename from resources/recipes/kudika.recipe
rename to recipes/kudika.recipe
diff --git a/resources/recipes/kukuburi.recipe b/recipes/kukuburi.recipe
similarity index 100%
rename from resources/recipes/kukuburi.recipe
rename to recipes/kukuburi.recipe
diff --git a/resources/recipes/kurier.recipe b/recipes/kurier.recipe
similarity index 100%
rename from resources/recipes/kurier.recipe
rename to recipes/kurier.recipe
diff --git a/resources/recipes/l_espresso.recipe b/recipes/l_espresso.recipe
similarity index 100%
rename from resources/recipes/l_espresso.recipe
rename to recipes/l_espresso.recipe
diff --git a/resources/recipes/la_cuarta.recipe b/recipes/la_cuarta.recipe
similarity index 100%
rename from resources/recipes/la_cuarta.recipe
rename to recipes/la_cuarta.recipe
diff --git a/resources/recipes/la_diaria.recipe b/recipes/la_diaria.recipe
similarity index 100%
rename from resources/recipes/la_diaria.recipe
rename to recipes/la_diaria.recipe
diff --git a/resources/recipes/la_gazzeta_dello_sport.recipe b/recipes/la_gazzeta_dello_sport.recipe
similarity index 100%
rename from resources/recipes/la_gazzeta_dello_sport.recipe
rename to recipes/la_gazzeta_dello_sport.recipe
diff --git a/resources/recipes/la_jornada.recipe b/recipes/la_jornada.recipe
similarity index 100%
rename from resources/recipes/la_jornada.recipe
rename to recipes/la_jornada.recipe
diff --git a/resources/recipes/la_nueva.recipe b/recipes/la_nueva.recipe
similarity index 100%
rename from resources/recipes/la_nueva.recipe
rename to recipes/la_nueva.recipe
diff --git a/resources/recipes/la_razon_bo.recipe b/recipes/la_razon_bo.recipe
similarity index 100%
rename from resources/recipes/la_razon_bo.recipe
rename to recipes/la_razon_bo.recipe
diff --git a/resources/recipes/la_republica.recipe b/recipes/la_republica.recipe
similarity index 100%
rename from resources/recipes/la_republica.recipe
rename to recipes/la_republica.recipe
diff --git a/resources/recipes/la_rioja.recipe b/recipes/la_rioja.recipe
similarity index 100%
rename from resources/recipes/la_rioja.recipe
rename to recipes/la_rioja.recipe
diff --git a/resources/recipes/la_segunda.recipe b/recipes/la_segunda.recipe
similarity index 100%
rename from resources/recipes/la_segunda.recipe
rename to recipes/la_segunda.recipe
diff --git a/resources/recipes/la_stampa.recipe b/recipes/la_stampa.recipe
similarity index 100%
rename from resources/recipes/la_stampa.recipe
rename to recipes/la_stampa.recipe
diff --git a/resources/recipes/la_tercera.recipe b/recipes/la_tercera.recipe
similarity index 100%
rename from resources/recipes/la_tercera.recipe
rename to recipes/la_tercera.recipe
diff --git a/resources/recipes/la_tribuna.recipe b/recipes/la_tribuna.recipe
similarity index 100%
rename from resources/recipes/la_tribuna.recipe
rename to recipes/la_tribuna.recipe
diff --git a/resources/recipes/lalibre_be.recipe b/recipes/lalibre_be.recipe
similarity index 100%
rename from resources/recipes/lalibre_be.recipe
rename to recipes/lalibre_be.recipe
diff --git a/resources/recipes/lameuse_be.recipe b/recipes/lameuse_be.recipe
similarity index 100%
rename from resources/recipes/lameuse_be.recipe
rename to recipes/lameuse_be.recipe
diff --git a/resources/recipes/lamujerdemivida.recipe b/recipes/lamujerdemivida.recipe
similarity index 100%
rename from resources/recipes/lamujerdemivida.recipe
rename to recipes/lamujerdemivida.recipe
diff --git a/resources/recipes/lanacion.recipe b/recipes/lanacion.recipe
similarity index 100%
rename from resources/recipes/lanacion.recipe
rename to recipes/lanacion.recipe
diff --git a/resources/recipes/lanacion_chile.recipe b/recipes/lanacion_chile.recipe
similarity index 100%
rename from resources/recipes/lanacion_chile.recipe
rename to recipes/lanacion_chile.recipe
diff --git a/resources/recipes/laprensa.recipe b/recipes/laprensa.recipe
similarity index 100%
rename from resources/recipes/laprensa.recipe
rename to recipes/laprensa.recipe
diff --git a/resources/recipes/laprensa_hn.recipe b/recipes/laprensa_hn.recipe
similarity index 100%
rename from resources/recipes/laprensa_hn.recipe
rename to recipes/laprensa_hn.recipe
diff --git a/resources/recipes/laprensa_ni.recipe b/recipes/laprensa_ni.recipe
similarity index 100%
rename from resources/recipes/laprensa_ni.recipe
rename to recipes/laprensa_ni.recipe
diff --git a/resources/recipes/las_vegas_review.recipe b/recipes/las_vegas_review.recipe
similarity index 100%
rename from resources/recipes/las_vegas_review.recipe
rename to recipes/las_vegas_review.recipe
diff --git a/resources/recipes/latimes.recipe b/recipes/latimes.recipe
similarity index 100%
rename from resources/recipes/latimes.recipe
rename to recipes/latimes.recipe
diff --git a/resources/recipes/latribuna.recipe b/recipes/latribuna.recipe
similarity index 100%
rename from resources/recipes/latribuna.recipe
rename to recipes/latribuna.recipe
diff --git a/resources/recipes/lavanguardia.recipe b/recipes/lavanguardia.recipe
similarity index 100%
rename from resources/recipes/lavanguardia.recipe
rename to recipes/lavanguardia.recipe
diff --git a/resources/recipes/lavenir_be.recipe b/recipes/lavenir_be.recipe
similarity index 100%
rename from resources/recipes/lavenir_be.recipe
rename to recipes/lavenir_be.recipe
diff --git a/resources/recipes/le_journal.recipe b/recipes/le_journal.recipe
similarity index 100%
rename from resources/recipes/le_journal.recipe
rename to recipes/le_journal.recipe
diff --git a/resources/recipes/le_monde.recipe b/recipes/le_monde.recipe
similarity index 100%
rename from resources/recipes/le_monde.recipe
rename to recipes/le_monde.recipe
diff --git a/resources/recipes/le_temps.recipe b/recipes/le_temps.recipe
similarity index 100%
rename from resources/recipes/le_temps.recipe
rename to recipes/le_temps.recipe
diff --git a/resources/recipes/ledevoir.recipe b/recipes/ledevoir.recipe
similarity index 100%
rename from resources/recipes/ledevoir.recipe
rename to recipes/ledevoir.recipe
diff --git a/resources/recipes/leduc.recipe b/recipes/leduc.recipe
similarity index 100%
rename from resources/recipes/leduc.recipe
rename to recipes/leduc.recipe
diff --git a/resources/recipes/legeartis.recipe b/recipes/legeartis.recipe
similarity index 100%
rename from resources/recipes/legeartis.recipe
rename to recipes/legeartis.recipe
diff --git a/resources/recipes/leggo_it.recipe b/recipes/leggo_it.recipe
similarity index 100%
rename from resources/recipes/leggo_it.recipe
rename to recipes/leggo_it.recipe
diff --git a/resources/recipes/legitymizm.recipe b/recipes/legitymizm.recipe
similarity index 100%
rename from resources/recipes/legitymizm.recipe
rename to recipes/legitymizm.recipe
diff --git a/resources/recipes/lemonde_dip.recipe b/recipes/lemonde_dip.recipe
similarity index 100%
rename from resources/recipes/lemonde_dip.recipe
rename to recipes/lemonde_dip.recipe
diff --git a/resources/recipes/lenta_ru.recipe b/recipes/lenta_ru.recipe
similarity index 100%
rename from resources/recipes/lenta_ru.recipe
rename to recipes/lenta_ru.recipe
diff --git a/resources/recipes/lescienze.recipe b/recipes/lescienze.recipe
similarity index 100%
rename from resources/recipes/lescienze.recipe
rename to recipes/lescienze.recipe
diff --git a/resources/recipes/lesoir_be.recipe b/recipes/lesoir_be.recipe
similarity index 100%
rename from resources/recipes/lesoir_be.recipe
rename to recipes/lesoir_be.recipe
diff --git a/resources/recipes/levante.recipe b/recipes/levante.recipe
similarity index 100%
rename from resources/recipes/levante.recipe
rename to recipes/levante.recipe
diff --git a/resources/recipes/liberation.recipe b/recipes/liberation.recipe
similarity index 100%
rename from resources/recipes/liberation.recipe
rename to recipes/liberation.recipe
diff --git a/resources/recipes/libero.recipe b/recipes/libero.recipe
similarity index 100%
rename from resources/recipes/libero.recipe
rename to recipes/libero.recipe
diff --git a/resources/recipes/lifehacker.recipe b/recipes/lifehacker.recipe
similarity index 100%
rename from resources/recipes/lifehacker.recipe
rename to recipes/lifehacker.recipe
diff --git a/resources/recipes/linux_magazine.recipe b/recipes/linux_magazine.recipe
similarity index 100%
rename from resources/recipes/linux_magazine.recipe
rename to recipes/linux_magazine.recipe
diff --git a/resources/recipes/linuxdevices.recipe b/recipes/linuxdevices.recipe
similarity index 100%
rename from resources/recipes/linuxdevices.recipe
rename to recipes/linuxdevices.recipe
diff --git a/resources/recipes/livemint.recipe b/recipes/livemint.recipe
similarity index 100%
rename from resources/recipes/livemint.recipe
rename to recipes/livemint.recipe
diff --git a/resources/recipes/living_digital.recipe b/recipes/living_digital.recipe
similarity index 100%
rename from resources/recipes/living_digital.recipe
rename to recipes/living_digital.recipe
diff --git a/resources/recipes/london_free_press.recipe b/recipes/london_free_press.recipe
similarity index 100%
rename from resources/recipes/london_free_press.recipe
rename to recipes/london_free_press.recipe
diff --git a/resources/recipes/los_tiempos_bo.recipe b/recipes/los_tiempos_bo.recipe
similarity index 100%
rename from resources/recipes/los_tiempos_bo.recipe
rename to recipes/los_tiempos_bo.recipe
diff --git a/resources/recipes/losservatoreromano_it.recipe b/recipes/losservatoreromano_it.recipe
similarity index 100%
rename from resources/recipes/losservatoreromano_it.recipe
rename to recipes/losservatoreromano_it.recipe
diff --git a/resources/recipes/lrb.recipe b/recipes/lrb.recipe
similarity index 100%
rename from resources/recipes/lrb.recipe
rename to recipes/lrb.recipe
diff --git a/resources/recipes/lrb_payed.recipe b/recipes/lrb_payed.recipe
similarity index 100%
rename from resources/recipes/lrb_payed.recipe
rename to recipes/lrb_payed.recipe
diff --git a/resources/recipes/lwn.recipe b/recipes/lwn.recipe
similarity index 100%
rename from resources/recipes/lwn.recipe
rename to recipes/lwn.recipe
diff --git a/resources/recipes/lwn_weekly.recipe b/recipes/lwn_weekly.recipe
similarity index 100%
rename from resources/recipes/lwn_weekly.recipe
rename to recipes/lwn_weekly.recipe
diff --git a/resources/recipes/mac_video.recipe b/recipes/mac_video.recipe
similarity index 100%
rename from resources/recipes/mac_video.recipe
rename to recipes/mac_video.recipe
diff --git a/resources/recipes/mac_world.recipe b/recipes/mac_world.recipe
similarity index 100%
rename from resources/recipes/mac_world.recipe
rename to recipes/mac_world.recipe
diff --git a/resources/recipes/mac_world_uk.recipe b/recipes/mac_world_uk.recipe
similarity index 100%
rename from resources/recipes/mac_world_uk.recipe
rename to recipes/mac_world_uk.recipe
diff --git a/resources/recipes/macleans.recipe b/recipes/macleans.recipe
similarity index 100%
rename from resources/recipes/macleans.recipe
rename to recipes/macleans.recipe
diff --git a/resources/recipes/mail_and_guardian.recipe b/recipes/mail_and_guardian.recipe
similarity index 100%
rename from resources/recipes/mail_and_guardian.recipe
rename to recipes/mail_and_guardian.recipe
diff --git a/resources/recipes/mainichi.recipe b/recipes/mainichi.recipe
similarity index 100%
rename from resources/recipes/mainichi.recipe
rename to recipes/mainichi.recipe
diff --git a/resources/recipes/mainichi_it_news.recipe b/recipes/mainichi_it_news.recipe
similarity index 100%
rename from resources/recipes/mainichi_it_news.recipe
rename to recipes/mainichi_it_news.recipe
diff --git a/resources/recipes/malaysian_mirror.recipe b/recipes/malaysian_mirror.recipe
similarity index 100%
rename from resources/recipes/malaysian_mirror.recipe
rename to recipes/malaysian_mirror.recipe
diff --git a/resources/recipes/marca.recipe b/recipes/marca.recipe
similarity index 100%
rename from resources/recipes/marca.recipe
rename to recipes/marca.recipe
diff --git a/resources/recipes/marctv.recipe b/recipes/marctv.recipe
similarity index 100%
rename from resources/recipes/marctv.recipe
rename to recipes/marctv.recipe
diff --git a/resources/recipes/matichon.recipe b/recipes/matichon.recipe
similarity index 100%
rename from resources/recipes/matichon.recipe
rename to recipes/matichon.recipe
diff --git a/resources/recipes/maximum_pc.recipe b/recipes/maximum_pc.recipe
similarity index 100%
rename from resources/recipes/maximum_pc.recipe
rename to recipes/maximum_pc.recipe
diff --git a/resources/recipes/mdj.recipe b/recipes/mdj.recipe
similarity index 100%
rename from resources/recipes/mdj.recipe
rename to recipes/mdj.recipe
diff --git a/resources/recipes/mediafax.recipe b/recipes/mediafax.recipe
similarity index 100%
rename from resources/recipes/mediafax.recipe
rename to recipes/mediafax.recipe
diff --git a/resources/recipes/mediaindonesia.recipe b/recipes/mediaindonesia.recipe
similarity index 100%
rename from resources/recipes/mediaindonesia.recipe
rename to recipes/mediaindonesia.recipe
diff --git a/resources/recipes/mediapart.recipe b/recipes/mediapart.recipe
similarity index 100%
rename from resources/recipes/mediapart.recipe
rename to recipes/mediapart.recipe
diff --git a/resources/recipes/medscape.recipe b/recipes/medscape.recipe
similarity index 100%
rename from resources/recipes/medscape.recipe
rename to recipes/medscape.recipe
diff --git a/resources/recipes/metro_montreal.recipe b/recipes/metro_montreal.recipe
similarity index 100%
rename from resources/recipes/metro_montreal.recipe
rename to recipes/metro_montreal.recipe
diff --git a/resources/recipes/miami_herald.recipe b/recipes/miami_herald.recipe
similarity index 100%
rename from resources/recipes/miami_herald.recipe
rename to recipes/miami_herald.recipe
diff --git a/resources/recipes/michalkiewicz.recipe b/recipes/michalkiewicz.recipe
similarity index 100%
rename from resources/recipes/michalkiewicz.recipe
rename to recipes/michalkiewicz.recipe
diff --git a/resources/recipes/michellemalkin.recipe b/recipes/michellemalkin.recipe
similarity index 100%
rename from resources/recipes/michellemalkin.recipe
rename to recipes/michellemalkin.recipe
diff --git a/resources/recipes/midday.recipe b/recipes/midday.recipe
similarity index 100%
rename from resources/recipes/midday.recipe
rename to recipes/midday.recipe
diff --git a/resources/recipes/milenio.recipe b/recipes/milenio.recipe
similarity index 100%
rename from resources/recipes/milenio.recipe
rename to recipes/milenio.recipe
diff --git a/resources/recipes/ming_pao.recipe b/recipes/ming_pao.recipe
similarity index 100%
rename from resources/recipes/ming_pao.recipe
rename to recipes/ming_pao.recipe
diff --git a/resources/recipes/miradasalsur.recipe b/recipes/miradasalsur.recipe
similarity index 100%
rename from resources/recipes/miradasalsur.recipe
rename to recipes/miradasalsur.recipe
diff --git a/resources/recipes/mmc_rtv.recipe b/recipes/mmc_rtv.recipe
similarity index 100%
rename from resources/recipes/mmc_rtv.recipe
rename to recipes/mmc_rtv.recipe
diff --git a/recipes/modoros.recipe b/recipes/modoros.recipe
new file mode 100644
index 0000000000..72980298d6
--- /dev/null
+++ b/recipes/modoros.recipe
@@ -0,0 +1,89 @@
+import re
+from calibre.web.feeds.recipes import BasicNewsRecipe
+from calibre.constants import config_dir, CONFIG_DIR_MODE
+import os, os.path, urllib
+from hashlib import md5
+
+class ModorosBlogHu(BasicNewsRecipe):
+ __author__ = 'Zsolt Botykai'
+ title = u'Modoros Blog'
+ description = u"Modoros.blog.hu"
+ oldest_article = 10000
+ max_articles_per_feed = 10000
+ reverse_article_order = True
+ language = 'hu'
+ remove_javascript = True
+ remove_empty_feeds = True
+ no_stylesheets = True
+ feeds = [(u'Modoros Blog', u'http://modoros.blog.hu/rss')]
+ remove_javascript = True
+ use_embedded_content = False
+ preprocess_regexps = [
+ (re.compile(r'.*?
Cat’s Cradle by Vonnegut
' """ - # fix: hackish + # fix: hackish text = re.sub(r'"\Z', '\" ', text) - glyph_search = ( - re.compile(r"(\w)\'(\w)"), # apostrophe's - re.compile(r'(\s)\'(\d+\w?)\b(?!\')'), # back in '88 - re.compile(r'(\S)\'(?=\s|'+self.pnct+'|<|$)'), # single closing - re.compile(r'\'/'), # single opening - re.compile(r'(\S)\"(?=\s|'+self.pnct+'|<|$)'), # double closing - re.compile(r'"'), # double opening - re.compile(r'\b([A-Z][A-Z0-9]{2,})\b(?:[(]([^)]*)[)])'), # 3+ uppercase acronym - re.compile(r'\b([A-Z][A-Z\'\-]+[A-Z])(?=[\s.,\)>])'), # 3+ uppercase - re.compile(r'\b(\s{0,1})?\.{3}'), # ellipsis - re.compile(r'(\s?)--(\s?)'), # em dash - re.compile(r'\s-(?:\s|$)'), # en dash - re.compile(r'(\d+)( ?)x( ?)(?=\d+)'), # dimension sign - re.compile(r'\b ?[([]TM[])]', re.I), # trademark - re.compile(r'\b ?[([]R[])]', re.I), # registered - re.compile(r'\b ?[([]C[])]', re.I), # copyright - ) - - glyph_replace = [x % dict(self.glyph_defaults) for x in ( - r'\1%(txt_apostrophe)s\2', # apostrophe's - r'\1%(txt_apostrophe)s\2', # back in '88 - r'\1%(txt_quote_single_close)s', # single closing - r'%(txt_quote_single_open)s', # single opening - r'\1%(txt_quote_double_close)s', # double closing - r'%(txt_quote_double_open)s', # double opening - r'\1', # 3+ uppercase acronym - r'\1', # 3+ uppercase - r'\1%(txt_ellipsis)s', # ellipsis - r'\1%(txt_emdash)s\2', # em dash - r' %(txt_endash)s ', # en dash - r'\1\2%(txt_dimension)s\3', # dimension sign - r'%(txt_trademark)s', # trademark - r'%(txt_registered)s', # registered - r'%(txt_copyright)s', # copyright - )] - result = [] for line in re.compile(r'(<.*?>)', re.U).split(text): if not re.search(r'<.*>', line): - for s, r in zip(glyph_search, glyph_replace): + rules = [] + if re.search(r'{.+?}', line): + rules = self.macro_defaults + self.glyph_defaults + else: + rules = self.glyph_defaults + for s, r in rules: line = s.sub(r, line) result.append(line) return ''.join(result) @@ -803,11 +865,11 @@ class Textile(object): 'hello span strong and bold goodbye' """ qtags = (r'\*\*', r'\*', r'\?\?', r'\-', r'__', r'_', r'%', r'\+', r'~', r'\^') - pnct = ".,\"'?!;:" + pnct = ".,\"'?!;:()" for qtag in qtags: pattern = re.compile(r""" - (?:^|(?<=[\s>%(pnct)s])|([\]}])) + (?:^|(?<=[\s>%(pnct)s])|\[|([\]}])) (%(qtag)s)(?!%(qtag)s) (%(c)s) (?::(\S+))? diff --git a/src/calibre/gui2/actions/view.py b/src/calibre/gui2/actions/view.py index 7b14de8176..a606ca09bc 100644 --- a/src/calibre/gui2/actions/view.py +++ b/src/calibre/gui2/actions/view.py @@ -34,6 +34,13 @@ class ViewAction(InterfaceAction): self.qaction.setMenu(self.view_menu) ac.triggered.connect(self.view_specific_format, type=Qt.QueuedConnection) + self.view_menu.addSeparator() + ac = self.create_action(spec=(_('Read a random book'), 'catalog.png', + None, None), attr='action_pick_random') + ac.triggered.connect(self.view_random) + self.view_menu.addAction(ac) + + def location_selected(self, loc): enabled = loc == 'library' for action in list(self.view_menu.actions())[1:]: @@ -151,6 +158,10 @@ class ViewAction(InterfaceAction): def view_specific_book(self, index): self._view_books([index]) + def view_random(self, *args): + self.gui.iactions['Choose Library'].pick_random() + self._view_books([self.gui.library_view.currentIndex()]) + def _view_books(self, rows): if not rows or len(rows) == 0: self._launch_viewer() diff --git a/src/calibre/gui2/cover_flow.py b/src/calibre/gui2/cover_flow.py index cb951b09be..1d79d93bb2 100644 --- a/src/calibre/gui2/cover_flow.py +++ b/src/calibre/gui2/cover_flow.py @@ -53,7 +53,7 @@ if pictureflow is not None: def __init__(self, model, buffer=20): pictureflow.FlowImages.__init__(self) self.model = model - self.model.modelReset.connect(self.reset) + self.model.modelReset.connect(self.reset, type=Qt.QueuedConnection) def count(self): return self.model.count() @@ -83,6 +83,8 @@ if pictureflow is not None: class CoverFlow(pictureflow.PictureFlow): + dc_signal = pyqtSignal() + def __init__(self, parent=None): pictureflow.PictureFlow.__init__(self, parent, config['cover_flow_queue_length']+1) @@ -90,6 +92,8 @@ if pictureflow is not None: self.setFocusPolicy(Qt.WheelFocus) self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) + self.dc_signal.connect(self._data_changed, + type=Qt.QueuedConnection) def sizeHint(self): return self.minimumSize() @@ -101,6 +105,12 @@ if pictureflow is not None: elif ev.delta() > 0: self.showPrevious() + def dataChanged(self): + self.dc_signal.emit() + + def _data_changed(self): + pictureflow.PictureFlow.dataChanged(self) + else: CoverFlow = None @@ -135,8 +145,7 @@ class CoverFlowMixin(object): self.cover_flow = None if CoverFlow is not None: self.cf_last_updated_at = None - self.cover_flow_sync_timer = QTimer(self) - self.cover_flow_sync_timer.timeout.connect(self.cover_flow_do_sync) + self.cover_flow_syncing_enabled = False self.cover_flow_sync_flag = True self.cover_flow = CoverFlow(parent=self) self.cover_flow.currentChanged.connect(self.sync_listview_to_cf) @@ -179,14 +188,15 @@ class CoverFlowMixin(object): self.cover_flow.setFocus(Qt.OtherFocusReason) if CoverFlow is not None: self.cover_flow.setCurrentSlide(self.library_view.currentIndex().row()) - self.cover_flow_sync_timer.start(500) + self.cover_flow_syncing_enabled = True + QTimer.singleShot(500, self.cover_flow_do_sync) self.library_view.setCurrentIndex( self.library_view.currentIndex()) self.library_view.scroll_to_row(self.library_view.currentIndex().row()) def cover_browser_hidden(self): if CoverFlow is not None: - self.cover_flow_sync_timer.stop() + self.cover_flow_syncing_enabled = False idx = self.library_view.model().index(self.cover_flow.currentSlide(), 0) if idx.isValid(): sm = self.library_view.selectionModel() @@ -242,6 +252,8 @@ class CoverFlowMixin(object): except: import traceback traceback.print_exc() + if self.cover_flow_syncing_enabled: + QTimer.singleShot(500, self.cover_flow_do_sync) def sync_listview_to_cf(self, row): self.cf_last_updated_at = time.time() diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index 2cbecc134c..215e67c46f 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -1052,11 +1052,13 @@ class DeviceMixin(object): # {{{ except: pass total_size = self.location_manager.free[0] - if self.location_manager.free[0] > total_size + (1024**2): + loc = tweaks['send_news_to_device_location'] + loc_index = {"carda": 1, "cardb": 2}.get(loc, 0) + if self.location_manager.free[loc_index] > total_size + (1024**2): # Send news to main memory if enough space available # as some devices like the Nook Color cannot handle # periodicals on SD cards properly - on_card = None + on_card = loc if loc in ('carda', 'cardb') else None self.upload_books(files, names, metadata, on_card=on_card, memory=[files, remove]) diff --git a/src/calibre/gui2/dialogs/check_library.py b/src/calibre/gui2/dialogs/check_library.py index f9db87b087..560090d2b3 100644 --- a/src/calibre/gui2/dialogs/check_library.py +++ b/src/calibre/gui2/dialogs/check_library.py @@ -202,13 +202,19 @@ class CheckLibraryDialog(QDialog):Delete marked is used to remove extra files/folders/covers that have no entries in the database. Check the box next to the item you want to delete. Use with caution.
-Fix marked is applicable only to covers (the two lines marked - 'fixable'). In the case of missing cover files, checking the fixable - box and pushing this button will remove the cover mark from the - database for all the files in that category. In the case of extra - cover files, checking the fixable box and pushing this button will - add the cover mark to the database for all the files in that - category.
+ +Fix marked is applicable only to covers and missing formats + (the three lines marked 'fixable'). In the case of missing cover files, + checking the fixable box and pushing this button will tell calibre that + there is no cover for all of the books listed. Use this option if you + are not going to restore the covers from a backup. In the case of extra + cover files, checking the fixable box and pushing this button will tell + calibre that the cover files it found are correct for all the books + listed. Use this when you are not going to delete the file(s). In the + case of missing formats, checking the fixable box and pushing this + button will tell calibre that the formats are really gone. Use this if + you are not going to restore the formats from a backup.
+ ''')) self.log = QTreeWidget(self) @@ -381,6 +387,19 @@ class CheckLibraryDialog(QDialog): unicode(it.text(1)))) self.run_the_check() + def fix_missing_formats(self): + tl = self.top_level_items['missing_formats'] + child_count = tl.childCount() + for i in range(0, child_count): + item = tl.child(i); + id = item.data(0, Qt.UserRole).toInt()[0] + all = self.db.formats(id, index_is_id=True, verify_formats=False) + all = set([f.strip() for f in all.split(',')]) if all else set() + valid = self.db.formats(id, index_is_id=True, verify_formats=True) + valid = set([f.strip() for f in valid.split(',')]) if valid else set() + for fmt in all-valid: + self.db.remove_format(id, fmt, index_is_id=True, db_only=True) + def fix_missing_covers(self): tl = self.top_level_items['missing_covers'] child_count = tl.childCount() diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index b2561342b8..347eeb7019 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -442,7 +442,7 @@ class Scheduler(QObject): if self.oldest > 0: delta = timedelta(days=self.oldest) try: - ids = list(self.recipe_model.db.tags_older_than(_('News'), + ids = list(self.db.tags_older_than(_('News'), delta)) except: # Happens if library is being switched diff --git a/src/calibre/gui2/dialogs/scheduler.ui b/src/calibre/gui2/dialogs/scheduler.ui index f295703b33..f26bfc7285 100644 --- a/src/calibre/gui2/dialogs/scheduler.ui +++ b/src/calibre/gui2/dialogs/scheduler.ui @@ -6,7 +6,7 @@' +
_('You have started calibre in debug mode. After you '
@@ -399,6 +402,7 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
elif msg.startswith('refreshdb:'):
self.library_view.model().refresh()
self.library_view.model().research()
+ self.tags_view.recount()
else:
print msg
@@ -463,6 +467,9 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
self.card_a_view.reset()
self.card_b_view.reset()
self.device_manager.set_current_library_uuid(db.library_id)
+ # Run a garbage collection now so that it does not freeze the
+ # interface later
+ gc.collect()
def set_window_title(self):
@@ -649,6 +656,8 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
pass
time.sleep(2)
self.hide_windows()
+ # Do not report any errors that happen after the shutdown
+ sys.excepthook = sys.__excepthook__
return True
def run_wizard(self, *args):
diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py
index 964616ab48..c704b98dc9 100644
--- a/src/calibre/gui2/viewer/main.py
+++ b/src/calibre/gui2/viewer/main.py
@@ -225,6 +225,12 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.action_quit.setShortcuts(qs)
self.connect(self.action_quit, SIGNAL('triggered(bool)'),
lambda x:QApplication.instance().quit())
+ self.action_focus_search = QAction(self)
+ self.addAction(self.action_focus_search)
+ self.action_focus_search.setShortcuts([Qt.Key_Slash,
+ QKeySequence(QKeySequence.Find)])
+ self.action_focus_search.triggered.connect(lambda x:
+ self.search.setFocus(Qt.OtherFocusReason))
self.action_copy.setDisabled(True)
self.action_metadata.setCheckable(True)
self.action_metadata.setShortcut(Qt.CTRL+Qt.Key_I)
@@ -293,6 +299,9 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
ca.setShortcut(QKeySequence.Copy)
self.addAction(ca)
self.open_history_menu = QMenu()
+ self.clear_recent_history_action = QAction(
+ _('Clear list of recently opened books'), self)
+ self.clear_recent_history_action.triggered.connect(self.clear_recent_history)
self.build_recent_menu()
self.action_open_ebook.setMenu(self.open_history_menu)
self.open_history_menu.triggered[QAction].connect(self.open_recent)
@@ -301,11 +310,19 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
self.restore_state()
+ def clear_recent_history(self, *args):
+ vprefs.set('viewer_open_history', [])
+ self.build_recent_menu()
+
def build_recent_menu(self):
m = self.open_history_menu
m.clear()
+ recent = vprefs.get('viewer_open_history', [])
+ if recent:
+ m.addAction(self.clear_recent_history_action)
+ m.addSeparator()
count = 0
- for path in vprefs.get('viewer_open_history', []):
+ for path in recent:
if count > 9:
break
if os.path.exists(path):
@@ -494,12 +511,6 @@ class EbookViewer(MainWindow, Ui_EbookViewer):
if self.view.search(text, backwards=backwards):
self.scrolled(self.view.scroll_fraction)
- def keyPressEvent(self, event):
- if event.key() == Qt.Key_Slash:
- self.search.setFocus(Qt.OtherFocusReason)
- else:
- return MainWindow.keyPressEvent(self, event)
-
def internal_link_clicked(self, frac):
self.history.add(self.pos.value())
diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py
index 8ebf9c2c21..4ff2562bea 100644
--- a/src/calibre/gui2/widgets.py
+++ b/src/calibre/gui2/widgets.py
@@ -342,6 +342,7 @@ class FontFamilyModel(QAbstractListModel):
self.families = list(qt_families.intersection(set(self.families)))
self.families.sort()
self.families[:0] = [_('None')]
+ self.font = QFont('sansserif')
def rowCount(self, *args):
return len(self.families)
@@ -354,10 +355,11 @@ class FontFamilyModel(QAbstractListModel):
return NONE
if role == Qt.DisplayRole:
return QVariant(family)
- if False and role == Qt.FontRole:
- # Causes a Qt crash with some fonts
- # so disabled.
- return QVariant(QFont(family))
+ if role == Qt.FontRole:
+ # If a user chooses some non standard font as the interface font,
+ # rendering some font names causes Qt to crash, so return what is
+ # hopefully a "safe" font
+ return QVariant(self.font)
return NONE
def index_of(self, family):
diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py
index be996063d5..19ef7e213c 100644
--- a/src/calibre/library/caches.py
+++ b/src/calibre/library/caches.py
@@ -583,6 +583,8 @@ class ResultCache(SearchQueryParser): # {{{
candidates = self.universal_set()
if len(candidates) == 0:
return matches
+ if location not in self.all_search_locations:
+ return matches
if len(location) > 2 and location.startswith('@') and \
location[1:] in self.db_prefs['grouped_search_terms']:
diff --git a/src/calibre/library/check_library.py b/src/calibre/library/check_library.py
index 19ecb97308..6013c76b9c 100644
--- a/src/calibre/library/check_library.py
+++ b/src/calibre/library/check_library.py
@@ -27,7 +27,7 @@ CHECKS = [('invalid_titles', _('Invalid titles'), True, False),
('extra_titles', _('Extra titles'), True, False),
('invalid_authors', _('Invalid authors'), True, False),
('extra_authors', _('Extra authors'), True, False),
- ('missing_formats', _('Missing book formats'), False, False),
+ ('missing_formats', _('Missing book formats'), False, True),
('extra_formats', _('Extra book formats'), True, False),
('extra_files', _('Unknown files in books'), True, False),
('missing_covers', _('Missing covers files'), False, True),
diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py
index e70a746b15..e751d4d522 100644
--- a/src/calibre/library/database2.py
+++ b/src/calibre/library/database2.py
@@ -53,7 +53,7 @@ class Tag(object):
self.id = id
self.count = count
self.state = state
- self.is_hierarchical = False
+ self.is_hierarchical = ''
self.is_editable = is_editable
self.is_searchable = is_searchable
self.id_set = id_set if id_set is not None else set([])
@@ -1154,15 +1154,18 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
if notify:
self.notify('delete', [id])
- def remove_format(self, index, format, index_is_id=False, notify=True, commit=True):
+ def remove_format(self, index, format, index_is_id=False, notify=True,
+ commit=True, db_only=False):
id = index if index_is_id else self.id(index)
name = self.conn.get('SELECT name FROM data WHERE book=? AND format=?', (id, format), all=False)
if name:
- path = self.format_abspath(id, format, index_is_id=True)
- try:
- delete_file(path)
- except:
- traceback.print_exc()
+ if not db_only:
+ try:
+ path = self.format_abspath(id, format, index_is_id=True)
+ if path:
+ delete_file(path)
+ except:
+ traceback.print_exc()
self.conn.execute('DELETE FROM data WHERE book=? AND format=?', (id, format.upper()))
if commit:
self.conn.commit()
@@ -1207,6 +1210,13 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
return ans
field = self.field_metadata[category]
+ if field['datatype'] == 'composite':
+ dex = field['rec_index']
+ for book in self.data.iterall():
+ if book[dex] == id_:
+ ans.add(book[0])
+ return ans
+
ans = self.conn.get(
'SELECT book FROM books_{tn}_link WHERE {col}=?'.format(
tn=field['table'], col=field['link_column']), (id_,))
@@ -1278,7 +1288,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
# First, build the maps. We need a category->items map and an
# item -> (item_id, sort_val) map to use in the books loop
- for category in tb_cats.keys():
+ for category in tb_cats.iterkeys():
cat = tb_cats[category]
if not cat['is_category'] or cat['kind'] in ['user', 'search'] \
or category in ['news', 'formats'] or cat.get('is_csp',
@@ -1321,8 +1331,15 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
tcategories[category] = {}
# create a list of category/field_index for the books scan to use.
# This saves iterating through field_metadata for each book
- md.append((category, cat['rec_index'], cat['is_multiple']))
+ md.append((category, cat['rec_index'], cat['is_multiple'], False))
+ for category in tb_cats.iterkeys():
+ cat = tb_cats[category]
+ if cat['datatype'] == 'composite' and \
+ cat['display'].get('make_category', False):
+ tcategories[category] = {}
+ md.append((category, cat['rec_index'], cat['is_multiple'],
+ cat['datatype'] == 'composite'))
#print 'end phase "collection":', time.clock() - last, 'seconds'
#last = time.clock()
@@ -1336,11 +1353,22 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
continue
rating = book[rating_dex]
# We kept track of all possible category field_map positions above
- for (cat, dex, mult) in md:
- if book[dex] is None:
+ for (cat, dex, mult, is_comp) in md:
+ if not book[dex]:
continue
if not mult:
val = book[dex]
+ if is_comp:
+ item = tcategories[cat].get(val, None)
+ if not item:
+ item = tag_class(val, val)
+ tcategories[cat][val] = item
+ item.c += 1
+ item.id = val
+ if rating > 0:
+ item.rt += rating
+ item.rc += 1
+ continue
try:
(item_id, sort_val) = tids[cat][val] # let exceptions fly
item = tcategories[cat].get(val, None)
@@ -1402,7 +1430,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
# and building the Tag instances.
categories = {}
tag_class = Tag
- for category in tb_cats.keys():
+ for category in tb_cats.iterkeys():
if category not in tcategories:
continue
cat = tb_cats[category]
diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py
index 97bfc30f14..f1d9b9785c 100644
--- a/src/calibre/library/server/browse.py
+++ b/src/calibre/library/server/browse.py
@@ -12,7 +12,7 @@ import cherrypy
from calibre.constants import filesystem_encoding
from calibre import isbytestring, force_unicode, fit_image, \
- prepare_string_for_xml as xml
+ prepare_string_for_xml
from calibre.utils.ordered_dict import OrderedDict
from calibre.utils.filenames import ascii_filename
from calibre.utils.config import prefs, tweaks
@@ -23,6 +23,10 @@ from calibre.library.server import custom_fields_to_display
from calibre.library.field_metadata import category_icon_map
from calibre.library.server.utils import quote, unquote
+def xml(*args, **kwargs):
+ ans = prepare_string_for_xml(*args, **kwargs)
+ return ans.replace(''', ''')
+
def render_book_list(ids, prefix, suffix=''): # {{{
pages = []
num = len(ids)
@@ -626,6 +630,8 @@ class BrowseServer(object):
elif category == 'allbooks':
ids = all_ids
else:
+ if fm.get(category, {'datatype':None})['datatype'] == 'composite':
+ cid = cid.decode('utf-8')
q = category
if q == 'news':
q = 'tags'
diff --git a/src/calibre/manual/faq.rst b/src/calibre/manual/faq.rst
index a3d4332fd0..948611f775 100644
--- a/src/calibre/manual/faq.rst
+++ b/src/calibre/manual/faq.rst
@@ -508,9 +508,9 @@ You have two choices:
1. Create a patch by hacking on |app| and send it to me for review and inclusion. See `Development Cannot upload books to device there is no more free space available "
msgstr ""
@@ -7008,14 +7008,14 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:137
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:402
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:255
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:61
msgid "Invalid template"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/device_drivers/configwidget.py:138
-#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:404
+#: /home/kovid/work/calibre/src/calibre/gui2/library/delegates.py:403
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/plugboard.py:256
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/save_template.py:62
msgid "The template %s is invalid:"
@@ -7265,7 +7265,7 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_format_device_ui.py:49
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1188
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:1185
msgid "Format"
msgstr ""
@@ -7356,6 +7356,20 @@ msgstr ""
msgid "&Move current library to new location"
msgstr ""
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:23
+msgid "Add \"%s\" to toolbars or menus"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:29
+msgid "Select the toolbars and/or menus to add %s to:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/choose_plugin_toolbars.py:45
+msgid ""
+"You can also customise the plugin locations using Preferences -> "
+"Customise the toolbar"
+msgstr ""
+
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/comicconf.py:33
msgid "Set defaults for conversion of comics (CBR/CBZ files)"
msgstr ""
@@ -7435,11 +7449,11 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/delete_matching_from_device.py:76
#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:69
-#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:998
+#: /home/kovid/work/calibre/src/calibre/gui2/library/models.py:995
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:32
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/create_custom_column.py:71
#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:241
-#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:311
+#: /home/kovid/work/calibre/src/calibre/library/field_metadata.py:321
#: /home/kovid/work/calibre/src/calibre/library/server/opds.py:575
msgid "Date"
msgstr ""
@@ -7467,12 +7481,12 @@ msgid "Author sort"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:128
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1371
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1379
msgid "Invalid author name"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/edit_authors_dialog.py:129
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1372
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1380
msgid "Author names cannot contain & characters."
msgstr ""
@@ -7656,22 +7670,22 @@ msgid "Working"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:260
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:414
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:412
msgid "Lower Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:261
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:413
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:411
msgid "Upper Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:262
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:416
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:414
msgid "Title Case"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:263
-#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:417
+#: /home/kovid/work/calibre/src/calibre/gui2/widgets.py:415
msgid "Capitalize"
msgstr ""
@@ -7705,11 +7719,15 @@ msgid ""
"cannot be canceled or undone"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:381
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:382
msgid "Book %d:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:396
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:400
+msgid "Enter an identifier type"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:405
msgid ""
"You can destroy your library using this feature. Changes are "
"permanent. There is no undo function. You are strongly encouraged to back up "
@@ -7717,7 +7735,7 @@ msgid ""
"character matching or regular expressions. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:404
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:413
msgid ""
"In character mode, the field is searched for the entered search text. The "
"text is replaced by the specified replacement text everywhere it is found in "
@@ -7727,7 +7745,7 @@ msgid ""
"text will match both upper- and lower-case letters"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:415
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:424
msgid ""
"In regular expression mode, the search text is an arbitrary python-"
"compatible regular expression. The replacement text can contain "
@@ -7742,145 +7760,149 @@ msgid ""
"function."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:489
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:502
msgid "S/R TEMPLATE ERROR"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:616
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:646
msgid "You must specify a destination when source is a composite field"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:715
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:723
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:844
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:652
+msgid "You must specify a destination identifier type"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:756
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:775
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:896
msgid "Search/replace invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:716
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:757
msgid ""
"Authors cannot be set to the empty string. Book title %s not processed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:724
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:776
msgid "Title cannot be set to the empty string. Book title %s not processed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:845
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:897
msgid "Search pattern is invalid: %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:897
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:949
msgid ""
"Applying changes to %d books.\n"
"Phase {0} {1}%%."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:927
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:979
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587
msgid "Delete saved search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:928
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:980
msgid "The selected saved search/replace will be deleted. Are you sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:945
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:953
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:997
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1005
msgid "Save search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:946
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:998
msgid "Search/replace name:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:954
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk.py:1006
msgid ""
"That saved search/replace already exists and will be overwritten. Are you "
"sure?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:498
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:524
msgid "Edit Meta information"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:500
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:526
msgid "A&utomatically set author sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:501
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:527
msgid "&Swap title and author"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:502
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528
msgid "Author s&ort: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:503
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:529
msgid ""
"Specify how the author(s) of this book should be sorted. For example Charles "
"Dickens should be sorted as Dickens, Charles."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:504
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:530
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:424
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:786
msgid "&Rating:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:505
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:506
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:425
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:426
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:787
msgid "Rating of this book. 0-5 stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:507
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533
msgid "No change"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:508
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:534
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:427
msgid " stars"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:510
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536
msgid "Add ta&gs: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:512
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:513
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:539
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:431
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:432
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:140
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:143
msgid "Open Tag Editor"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:514
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540
msgid "&Remove tags:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:515
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541
msgid "Comma separated list of tags to remove from the books. "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:516
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542
msgid "Check this box to remove all tags from the books."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:517
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:543
msgid "Remove &all"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:521
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547
msgid "If checked, the series will be cleared"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:522
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:548
msgid "&Clear series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:523
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:549
msgid ""
"If not checked, the series number for the books will be set to 1.\n"
"If checked, selected books will be automatically numbered, in the order\n"
@@ -7888,192 +7910,202 @@ msgid ""
"Book A will have series number 1 and Book B series number 2."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:527
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553
msgid "&Automatically number books in this series"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:528
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554
msgid ""
"Series will normally be renumbered from the highest number in the database\n"
"for that series. Checking this box will tell calibre to start numbering\n"
"from the value in the box"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:531
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557
msgid "&Force numbers to start with:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:532
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:440
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:978
msgid "&Date:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:533
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559
msgid "d MMM yyyy"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:535
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:540
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:561
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566
msgid "&Apply date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:536
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562
msgid "&Published:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:538
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:444
msgid "Clear published date"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:541
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567
msgid "Remove &format:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:542
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568
msgid ""
"Force the title to be in title case. If both this and swap authors are "
"checked,\n"
"title and author are swapped before the title case is set"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:544
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570
msgid "Change title to title &case"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:545
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571
msgid ""
"Update title sort based on the current title. This will be applied only "
"after other changes to title."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:546
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572
msgid "Update &title sort"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:547
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573
msgid ""
"Remove stored conversion settings for the selected books.\n"
"\n"
"Future conversion of these books will use the default settings."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:550
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576
msgid "Remove &stored conversion settings for the selected books"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:551
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:577
msgid "Change &cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:552
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578
msgid "&Generate default cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:553
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579
msgid "&Remove cover"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:554
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:580
msgid "Set from &ebook file(s)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:555
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:465
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:392
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:521
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:397
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:526
msgid "&Basic metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:556
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:466
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:399
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:404
msgid "&Custom metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:557
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583
msgid "Load searc&h/replace:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:558
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:584
msgid "Select saved search/replace to load."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:559
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:585
msgid "Save current search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:560
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586
msgid "Sa&ve"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:562
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588
#: /home/kovid/work/calibre/src/calibre/gui2/viewer/bookmarkmanager_ui.py:64
msgid "Delete"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:563
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589
msgid "Search &field:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:564
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590
msgid "The name of the field that you want to search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:565
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591
msgid "Search &mode:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:566
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592
msgid ""
"Choose whether to use basic text matching or advanced regular expression "
"matching"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:567
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:615
+msgid "Identifier type:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:616
+msgid "Choose which identifier type to operate upon"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:595
msgid "Te&mplate:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:568
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:596
msgid "Enter a template to be used as the source for the search/replace"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:569
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:597
msgid "&Search for:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:570
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:598
msgid ""
"Enter the what you are looking for, either plain text or a regular "
"expression, depending on the mode"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:571
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:599
msgid ""
"Check this box if the search string must match exactly upper and lower case. "
"Uncheck it if case is to be ignored"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:572
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:600
msgid "Cas&e sensitive"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:573
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:601
msgid "&Replace with:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:574
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:602
msgid ""
"The replacement text. The matched search text will be replaced with this "
"string"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:575
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:603
msgid "&Apply function after replace:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:576
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:604
msgid ""
"Specify how the text is to be processed after matching and replacement. In "
"character mode, the entire\n"
@@ -8081,25 +8113,25 @@ msgid ""
"processed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:578
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:606
msgid "&Destination field:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:579
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:607
msgid ""
"The field that the text will be put into after all replacements.\n"
"If blank, the source field is used if the field is modifiable"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:581
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:609
msgid "M&ode:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:582
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:610
msgid "Specify how the text should be copied into the destination."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:583
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:611
msgid ""
"Specifies whether result items should be split into multiple values or\n"
"left as single values. This option has the most effect when the source field "
@@ -8107,41 +8139,41 @@ msgid ""
"not multiple and the destination field is multiple"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:586
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:614
msgid "Split &result"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:587
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:617
msgid "For multiple-valued fields, sho&w"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:588
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:618
msgid "values starting a&t"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:589
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:619
msgid "with values separated b&y"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:590
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:620
msgid ""
"Used when displaying test results to separate values in multiple-valued "
"fields"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:591
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:621
msgid "Test text"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:592
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:622
msgid "Test result"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:593
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:623
msgid "Your test:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:594
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_bulk_ui.py:624
msgid "&Search and replace"
msgstr ""
@@ -8152,18 +8184,18 @@ msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:122
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:128
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:252
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:259
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:255
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:262
msgid "Could not read cover"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:123
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:253
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:256
msgid "Could not read cover from %s format"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:129
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:260
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:263
msgid "The cover in the %s format is invalid"
msgstr ""
@@ -8286,7 +8318,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:472
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:49
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:50
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:102
#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:221
#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:384
@@ -8294,13 +8326,13 @@ msgid "Previous"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:475
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:483
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:358
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:362
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:484
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:361
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:366
msgid "Save changes and edit the metadata of %s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:480
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:481
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:46
#: /home/kovid/work/calibre/src/calibre/library/server/browse.py:103
#: /home/kovid/work/calibre/src/calibre/web/feeds/templates.py:211
@@ -8308,62 +8340,62 @@ msgstr ""
msgid "Next"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:688
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:693
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:690
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:695
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:913
msgid "This ISBN number is valid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:696
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:698
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:920
msgid "This ISBN number is invalid"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:781
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:783
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:862
msgid "Tags changed"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:782
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:784
#: /home/kovid/work/calibre/src/calibre/gui2/metadata/basic_widgets.py:863
msgid ""
"You have changed the tags. In order to use the tags editor, you must either "
"discard or apply these changes. Apply changes?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:817
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:819
msgid "Timed out"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:818
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:820
msgid ""
"The download of social metadata timed out, the servers are probably busy. "
"Try again later."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:825
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:827
msgid "There were errors"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:826
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:828
msgid "There were errors downloading social metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:860
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:862
msgid "Cannot fetch metadata"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:861
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:863
msgid "You must specify at least one of ISBN, Title, Authors or Publisher"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:959
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:307
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:961
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:310
msgid "Permission denied"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:960
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:308
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single.py:962
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:311
msgid "Could not open %s. Is it being used by another program?"
msgstr ""
@@ -8376,7 +8408,7 @@ msgid "Meta information"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:410
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:89
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:92
msgid ""
"Automatically create the title sort entry based on the current title entry.\n"
"Using this button to create title sort will change title sort from red to "
@@ -8384,12 +8416,12 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:413
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:111
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:114
msgid "Swap the author and title"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:415
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:100
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:103
msgid ""
"Automatically create the author sort entry based on the current author "
"entry.\n"
@@ -8422,7 +8454,7 @@ msgid ""
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:436
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:118
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:121
msgid "Remove unused series (Series that have no books)"
msgstr ""
@@ -8441,7 +8473,7 @@ msgid "Publishe&d:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:445
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:156
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:159
msgid "&Fetch metadata from server"
msgstr ""
@@ -8504,7 +8536,7 @@ msgid "Update metadata from the metadata in the selected format"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/metadata_single_ui.py:464
-#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:580
+#: /home/kovid/work/calibre/src/calibre/gui2/metadata/single.py:585
msgid "&Comments"
msgstr ""
@@ -8513,21 +8545,21 @@ msgid "Password needed"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:63
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:233
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:205
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:125
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:133
msgid "&Username:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:64
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:234
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:206
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:126
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email_ui.py:135
msgid "&Password:"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/password_ui.py:65
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:235
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:207
#: /home/kovid/work/calibre/src/calibre/gui2/preferences/server_ui.py:130
#: /home/kovid/work/calibre/src/calibre/gui2/wizard/send_email.py:172
msgid "&Show password"
@@ -8605,163 +8637,194 @@ msgstr ""
msgid "Change the contents of the saved search"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:30
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:42
+msgid ""
+" Download this periodical every week on the specified days "
+"after\n"
+" the specified time. For example, if you choose: Monday "
+"after\n"
+" 9:00 AM, then the periodical will be download every Monday "
+"as\n"
+" soon after 9:00 AM as possible.\n"
+" "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:61
+msgid "&Download after:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:91
+msgid ""
+" Download this periodical every month, on the specified "
+"days.\n"
+" The download will happen as soon after the specified time "
+"as\n"
+" possible on the specified days of each month. For example,\n"
+" if you choose the 1st and the 15th after 9:00 AM, the\n"
+" periodical will be downloaded on the 1st and 15th of every\n"
+" month, as soon after 9:00 AM as possible.\n"
+" "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:103
+msgid "&Days of the month:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:105
+msgid "Comma separated list of days of the month. For example: 1, 15"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:109
+msgid "Download &after:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:142
+msgid ""
+" Download this periodical every x days. For example, if you\n"
+" choose 30 days, the periodical will be downloaded every 30\n"
+" days. Note that you can set periods of less than a day, "
+"like\n"
+" 0.1 days to download a periodical more than once a day.\n"
+" "
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:151
+msgid "&Download every:"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:154
+msgid "every hour"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:157
+msgid "days"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:161
+msgid ""
+"Note: You can set intervals of less than a day, by typing the value manually."
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:196
msgid "%s news sources"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:125
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:311
msgid "Need username and password"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:126
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:312
msgid "You must provide a username and/or password to use this news source."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:168
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:346
msgid "Account"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:169
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:347
msgid "(optional)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:170
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:348
msgid "(required)"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:187
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:365
msgid "Created by: "
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:194
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:372
msgid "Last downloaded: never"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:209
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:373
+msgid "never"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:379
msgid "%d days, %d hours and %d minutes ago"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:211
-msgid "Last downloaded"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:393
+msgid "Last downloaded:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:242
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:215
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:421
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:197
msgid "Schedule news download"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:245
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:424
msgid "Add a custom news source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:250
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:429
msgid "Download all scheduled new sources"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:354
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:534
msgid "No internet connection"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:355
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler.py:535
msgid "Cannot download news as no internet connection is active"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:216
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:198
msgid "&Search:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:199
msgid "blurb"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:200
msgid "&Schedule for download:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:229
-msgid "Every "
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:201
+msgid "Days of week"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220
-msgid "day"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:202
+msgid "Days of month"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221
-msgid "Monday"
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:203
+msgid "Every x days"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222
-msgid "Tuesday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:223
-msgid "Wednesday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224
-msgid "Thursday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225
-msgid "Friday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226
-msgid "Saturday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227
-msgid "Sunday"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:228
-msgid "at"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:230
-msgid ""
-"Interval at which to download this recipe. A value of zero means that the "
-"recipe will be downloaded every hour."
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:231
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:253
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:268
-msgid " days"
-msgstr ""
-
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:232
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:204
msgid "&Account"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:236
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:208
msgid "For the scheduling to work, you must leave calibre running."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:237
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:209
msgid "&Schedule"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:238
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:210
msgid "Add &title as tag"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:239
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:211
msgid "&Extra tags:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:240
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:212
msgid ""
"Maximum number of copies (issues) of this recipe to keep. Set to 0 to keep "
"all (disable)."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:241
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:213
msgid "&Keep at most:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:242
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:214
msgid ""
" When set, this option will cause calibre to keep, at most, the specified "
"number of issues of this periodical. Every time a new issue is downloaded, "
@@ -8772,27 +8835,27 @@ msgid ""
"below, takes priority over this setting."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:245
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:217
msgid "all issues"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:246
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:218
msgid " issues"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:247
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:219
msgid "&Advanced"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:248
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:220
msgid "&Download now"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:249
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:221
msgid "&Delete downloaded news older than:"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:250
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:222
msgid ""
" Delete downloaded news older than the specified number of days. Set to "
"zero to disable.\n"
@@ -8801,15 +8864,20 @@ msgid ""
"above."
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:252
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:224
msgid "never delete"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:254
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:225
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:273
+msgid " days"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:226
msgid "Download all scheduled news sources at once"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:255
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/scheduler_ui.py:227
msgid "Download &all scheduled"
msgstr ""
@@ -9079,12 +9147,12 @@ msgid "%s (was %s)"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:85
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1319
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1325
msgid "Item is blank"
msgstr ""
#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/tag_list_editor.py:86
-#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1320
+#: /home/kovid/work/calibre/src/calibre/gui2/tag_view.py:1326
msgid "An item cannot be set to nothing. Delete it instead."
msgstr ""
@@ -9186,120 +9254,124 @@ msgid ""
"updating your calibre library. Could not create recipe. Error:
%s"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:247
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:306
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:333
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:255
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:314
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:341
msgid "Replace recipe?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:248
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:307
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:334
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:256
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:315
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:342
msgid "A custom recipe named %s already exists. Do you want to replace it?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:274
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:282
msgid "Choose builtin recipe"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:320
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:328
msgid "Choose a recipe file"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:321
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:329
msgid "Recipes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:361
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles.py:369
msgid ""
"You will lose any unsaved changes. To save your changes, click the "
"Add/Update recipe button. Continue?"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:253
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257
msgid "Add custom news source"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:254
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258
msgid "Available user recipes"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:255
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259
msgid "Add/Update &recipe"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:256
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:260
msgid "&Remove recipe"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:257
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261
msgid "&Share recipe"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:258
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:262
+msgid "S&how recipe files"
+msgstr ""
+
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:263
msgid "Customize &builtin recipe"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:259
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:264
msgid "&Load recipe from file"
msgstr ""
-#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:261
+#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/user_profiles_ui.py:266
msgid ""
"