diff --git a/resources/images/news/fe_india.png b/resources/images/news/fe_india.png new file mode 100644 index 0000000000..759f2594cd Binary files /dev/null and b/resources/images/news/fe_india.png differ diff --git a/resources/recipes/esquire.recipe b/resources/recipes/esquire.recipe index 96338d0b48..d9c189b473 100644 --- a/resources/recipes/esquire.recipe +++ b/resources/recipes/esquire.recipe @@ -1,7 +1,5 @@ -#!/usr/bin/env python - __license__ = 'GPL v3' -__copyright__ = '2009, Darko Miletic ' +__copyright__ = '2009-2010, Darko Miletic ' ''' www.esquire.com @@ -9,7 +7,6 @@ www.esquire.com from calibre import strftime from calibre.web.feeds.news import BasicNewsRecipe -from calibre.ebooks.BeautifulSoup import Tag class Esquire(BasicNewsRecipe): title = 'Esquire' @@ -22,23 +19,21 @@ class Esquire(BasicNewsRecipe): no_stylesheets = True encoding = 'cp1250' use_embedded_content = False - language = 'en' - - lang = 'en-US' - cover_url = strftime('http://www.esquire.com/cm/esquire/cover-images/%Y_') + strftime('%m').strip('0') + '.jpg' + language = 'en' + publication_type = 'magazine' + masthead_url = 'http://www.esquire.com/cm/shared/site_images/print_this/esquire_logo.gif' conversion_options = { - 'comment' : description - , 'tags' : category - , 'publisher' : publisher - , 'language' : lang - , 'pretty_print' : True + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language } - keep_only_tags = [dict(name='div', attrs={'id':'content'})] - - remove_tags = [dict(name=['object','link','embed','iframe'])] - + keep_only_tags = [dict(name='div', attrs={'id':['article_header','article_content']})] + remove_tags = [dict(name=['object','link','embed','iframe','base'])] + remove_attributes = ['width','height'] + feeds = [ (u'Style' , u'http://www.esquire.com/style/rss/' ) ,(u'Women' , u'http://www.esquire.com/women/rss/' ) @@ -47,17 +42,7 @@ class Esquire(BasicNewsRecipe): ,(u'Frontpage', u'http://www.esquire.com/rss/' ) ] - - def print_version(self, url): - rest = url.rpartition('?')[0] - article = rest.rpartition('/')[2] - return 'http://www.esquire.com/print-this/' + article - def preprocess_html(self, soup): - soup.html['xml:lang'] = self.lang - soup.html['lang'] = self.lang - mlang = Tag(soup,'meta',[("http-equiv","Content-Language"),("content",self.lang)]) - soup.head.insert(0,mlang) for item in soup.findAll(style=True): del item['style'] return soup diff --git a/resources/recipes/fe_india.recipe b/resources/recipes/fe_india.recipe new file mode 100644 index 0000000000..7b5f380bdf --- /dev/null +++ b/resources/recipes/fe_india.recipe @@ -0,0 +1,46 @@ +__license__ = 'GPL v3' +__copyright__ = '2010, Darko Miletic ' +''' +financialexpress.com +''' + +from calibre.web.feeds.news import BasicNewsRecipe + +class FE_India(BasicNewsRecipe): + title = 'The Financial Express' + __author__ = 'Darko Miletic' + description = 'Financial news from India' + publisher = 'The Indian Express Limited' + category = 'news, politics, finances, India' + oldest_article = 30 + max_articles_per_feed = 200 + no_stylesheets = True + encoding = 'cp1252' + use_embedded_content = False + language = 'en_IN' + remove_empty_feeds = True + masthead_url = 'http://static.expressindia.com/frontend/fe/images/fe_logo.jpg' + publication_type = 'magazine' + extra_css = ' body{font-family: Arial,Helvetica,sans-serif } ' + + conversion_options = { + 'comment' : description + , 'tags' : category + , 'publisher' : publisher + , 'language' : language + } + + keep_only_tags = [dict(attrs={'class':'txt'})] + remove_attributes = ['width','height'] + + feeds = [(u'Articles', u'http://www.expressindia.com/syndications/fe.xml')] + + def print_version(self, url): + article_raw = url.rpartition('/')[0] + article_id = article_raw.rpartition('/')[2] + return 'http://www.financialexpress.com/printer/news/' + article_id + '/' + + def preprocess_html(self, soup): + for item in soup.findAll(style=True): + del item['style'] + return soup diff --git a/src/calibre/gui2/dialogs/config/__init__.py b/src/calibre/gui2/dialogs/config/__init__.py index 0f66ed5dd4..3073a54774 100644 --- a/src/calibre/gui2/dialogs/config/__init__.py +++ b/src/calibre/gui2/dialogs/config/__init__.py @@ -515,15 +515,15 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): self.reset_confirmation_button.clicked.connect(self.reset_confirmation) deft, curt = read_raw_tweaks() - self.current_tweaks.setPlainText(curt) - self.default_tweaks.setPlainText(deft) + self.current_tweaks.setPlainText(curt.decode('utf-8')) + self.default_tweaks.setPlainText(deft.decode('utf-8')) self.restore_tweaks_to_default_button.clicked.connect(self.restore_tweaks_to_default) self.category_view.setCurrentIndex(self.category_view.model().index_for_name(initial_category)) def restore_tweaks_to_default(self, *args): deft, curt = read_raw_tweaks() - self.current_tweaks.setPlainText(deft) + self.current_tweaks.setPlainText(deft.decode('utf-8')) def reset_confirmation(self): @@ -698,8 +698,7 @@ class ConfigDialog(ResizableDialog, Ui_Dialog): self.input_order.setCurrentRow(idx-1) def set_tweaks(self): - raw = unicode(self.current_tweaks.toPlainText()) - raw = re.sub(r'(?m)^#.*fileencoding.*', '# ', raw) + raw = unicode(self.current_tweaks.toPlainText()).encode('utf-8') try: exec raw except: