diff --git a/Changelog.yaml b/Changelog.yaml
index bd1d2d9294..062f04da41 100644
--- a/Changelog.yaml
+++ b/Changelog.yaml
@@ -44,7 +44,7 @@
- title: "MOBI Output: Fix a memory leak and a crash in the palmdoc compression routine"
- - title: "Metadata download: Fix a regressiont at resulted in a failed download for some books"
+ - title: "Metadata download: Fix a regression that resulted in a failed download for some books"
new recipes:
- title: "Foreign Policy and Alo!"
diff --git a/resources/images/add_book.svg b/resources/images/add_book.svg
index b0633d48d3..54a9f05b68 100644
--- a/resources/images/add_book.svg
+++ b/resources/images/add_book.svg
@@ -1,2404 +1,111 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="149.5"
+ height="201"
+ viewBox="0 0 149.49999 201"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="add_book.svg">image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/config.svg b/resources/images/config.svg
index d631d36aa4..28660a4eea 100644
--- a/resources/images/config.svg
+++ b/resources/images/config.svg
@@ -1,1523 +1,208 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="149.86"
+ height="195.22701"
+ viewBox="0 0 149.85999 195.227"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="config.svg">image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/convert.svg b/resources/images/convert.svg
index cd18d49cf9..f318fc9c75 100644
--- a/resources/images/convert.svg
+++ b/resources/images/convert.svg
@@ -1,834 +1,142 @@
-
+
+
\ No newline at end of file
+ style="stop-color:#000000"
+ id="stop36" />
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/edit_input.svg b/resources/images/edit_input.svg
index a2d8bc96e2..90d61917ee 100644
--- a/resources/images/edit_input.svg
+++ b/resources/images/edit_input.svg
@@ -1,1071 +1,80 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="207.38489"
+ height="201.668"
+ viewBox="0 0 207.38488 201.668"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="edit_input.svg">image/svg+xml
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/news.svg b/resources/images/news.svg
index 38016738f5..e4a1b1832a 100644
--- a/resources/images/news.svg
+++ b/resources/images/news.svg
@@ -1,2826 +1,94 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="134.77701"
+ height="199.99901"
+ viewBox="0 0 134.777 199.999"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="news.svg">image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/save.svg b/resources/images/save.svg
index af62235cfc..14a431e60a 100644
--- a/resources/images/save.svg
+++ b/resources/images/save.svg
@@ -1,1961 +1,124 @@
-
+
+
\ No newline at end of file
diff --git a/resources/images/sync.svg b/resources/images/sync.svg
index 93dc8ef5fb..09e59a1461 100644
--- a/resources/images/sync.svg
+++ b/resources/images/sync.svg
@@ -1,1515 +1,77 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="148.905"
+ height="201.16701"
+ viewBox="0 0 148.90499 201.167"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="sync.svg">image/svg+xml
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/trash.svg b/resources/images/trash.svg
index 1ff9c4d874..15e10441fd 100644
--- a/resources/images/trash.svg
+++ b/resources/images/trash.svg
@@ -1,2442 +1,215 @@
-
+
+
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ width="192.6368"
+ height="199.16716"
+ viewBox="0 0 192.63679 199.16716"
+ enable-background="new 0 0 595.28 841.89"
+ xml:space="preserve"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="trash.svg">image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/images/view.svg b/resources/images/view.svg
index 7bdbb392dc..f0b0e1ef6c 100644
--- a/resources/images/view.svg
+++ b/resources/images/view.svg
@@ -1,2071 +1,32 @@
-
-
-
+
+
+
+
diff --git a/resources/recipes/big_oven.recipe b/resources/recipes/big_oven.recipe
new file mode 100644
index 0000000000..e1636daf72
--- /dev/null
+++ b/resources/recipes/big_oven.recipe
@@ -0,0 +1,64 @@
+from calibre.web.feeds.news import BasicNewsRecipe
+
+class BigOven(BasicNewsRecipe):
+ title = 'BigOven'
+ __author__ = 'Starson17'
+ description = 'Recipes for the Foodie in us all. Registration is free. A fake username and password just gives smaller photos.'
+ language = 'en'
+ category = 'news, food, recipes, gourmet'
+ publisher = 'Starson17'
+ use_embedded_content= False
+ no_stylesheets = True
+ oldest_article = 24
+ remove_javascript = True
+ remove_empty_feeds = True
+ cover_url = 'http://www.software.com/images/products/BigOven%20Logo_177_216.JPG'
+ max_articles_per_feed = 30
+ needs_subscription = True
+
+ conversion_options = {'linearize_tables' : True
+ , 'comment' : description
+ , 'tags' : category
+ , 'publisher' : publisher
+ , 'language' : language
+ }
+
+ def get_browser(self):
+ br = BasicNewsRecipe.get_browser()
+ if self.username is not None and self.password is not None:
+ br.open('http://www.bigoven.com/')
+ br.select_form(name='form1')
+ br['TopMenu_bo1$email'] = self.username
+ br['TopMenu_bo1$password'] = self.password
+ br.submit()
+ return br
+
+ remove_attributes = ['style', 'font']
+
+ keep_only_tags = [dict(name='h1')
+ ,dict(name='div', attrs={'class':'img'})
+ ,dict(name='div', attrs={'id':'intro'})
+ ]
+
+ remove_tags = [dict(name='div', attrs={'style':["overflow: visible;"]})
+ ,dict(name='div', attrs={'class':['ctas']})
+ #,dict(name='a', attrs={'class':['edit']})
+ ,dict(name='p', attrs={'class':['byline']})
+ ]
+
+ feeds = [(u'4 & 5 Star Rated Recipes', u'http://feeds.feedburner.com/Bigovencom-RecipeRaves?format=xml')]
+
+ def preprocess_html(self, soup):
+ for tag in soup.findAll(name='a', attrs={'class':['edit']}):
+ tag.parent.extract()
+ for tag in soup.findAll(name='a', attrs={'class':['deflink']}):
+ tag.replaceWith(tag.string)
+ return soup
+
+ extra_css = '''
+ h1{font-family:Arial,Helvetica,sans-serif; font-weight:bold;font-size:large;}
+ h2{font-family:Arial,Helvetica,sans-serif; font-weight:normal;font-size:medium;}
+ p{font-family:Arial,Helvetica,sans-serif;font-size:small;}
+ body{font-family:Helvetica,Arial,sans-serif;font-size:small;}
+ '''
+
diff --git a/resources/recipes/editor_and_publisher.recipe b/resources/recipes/editor_and_publisher.recipe
index c8f287a0c7..0ec5c59d74 100644
--- a/resources/recipes/editor_and_publisher.recipe
+++ b/resources/recipes/editor_and_publisher.recipe
@@ -1,14 +1,29 @@
-import re
+#!/usr/bin/env python
+__license__ = 'GPL v3'
+__copyright__ = '2010 elsuave'
+
from calibre.web.feeds.news import BasicNewsRecipe
class EandP(BasicNewsRecipe):
title = u'Editor and Publisher'
- __author__ = u'Xanthan Gum'
+ __author__ = u'elsuave (modified from Xanthan Gum)'
description = 'News about newspapers and journalism.'
+ publisher = 'Editor and Publisher'
+ category = 'news, journalism, industry'
language = 'en'
- no_stylesheets = True
+ max_articles_per_feed = 25
+ no_stylesheets = True
+ use_embedded_content = False
+ encoding = 'utf8'
+ cover_url = 'http://www.editorandpublisher.com/images/EP_main_logo.gif'
+ remove_javascript = True
- oldest_article = 7
- max_articles_per_feed = 100
+ html2lrf_options = [
+ '--comment', description
+ , '--category', category
+ , '--publisher', publisher
+ ]
+
+ html2epub_options = 'publisher="' + publisher + '"\ncomments="' + description + '"\ntags="' + category + '"'
# Font formatting code borrowed from kwetal
@@ -18,17 +33,21 @@ class EandP(BasicNewsRecipe):
h2{font-size: large;}
'''
- # Delete everything before the article
+ # Keep only div:itemmgap
- remove_tags_before = dict(name='font', attrs={'class':'titlebar_black'})
+ keep_only_tags = [
+ dict(name='div', attrs={'class':'itemmgap'})
+ ]
- # Delete everything after the article
+ # Remove commenting/social media lins
- preprocess_regexps = [(re.compile(r'.*