__license__ = 'GPL v3' __copyright__ = '2008 - 2011, Darko Miletic ' ''' thenation.com ''' from calibre.web.feeds.news import BasicNewsRecipe class Thenation(BasicNewsRecipe): title = 'The Nation' __author__ = 'Darko Miletic' description = 'Unconventional Wisdom Since 1865' publisher = 'The Nation' category = 'news, politics, USA' oldest_article = 120 encoding = 'utf-8' max_articles_per_feed = 100 no_stylesheets = True language = 'en' use_embedded_content = False delay = 1 masthead_url = 'http://www.thenation.com/sites/default/themes/thenation/images/logo-main.gif' login_url = 'http://www.thenation.com/user?destination=%3Cfront%3E' publication_type = 'magazine' needs_subscription = 'optional' exra_css = """ body{font-family: Arial,Helvetica,sans-serif;} .print-created{font-size: small;} .caption{display: block; font-size: x-small;} """ conversion_options = { 'comment' : description , 'tags' : category , 'publisher' : publisher , 'language' : language } keep_only_tags = [dict(attrs={'class':['print-title','print-created','print-content','print-links']})] remove_tags = [dict(name=['link','iframe','base','meta','object','embed'])] remove_attributes = ['lang'] feeds = [(u"Articles", u'http://www.thenation.com/rss/articles')] def print_version(self, url): return url.replace('.thenation.com/','.thenation.com/print/') def get_browser(self): br = BasicNewsRecipe.get_browser(self) br.open('http://www.thenation.com/') if self.username is not None and self.password is not None: br.open(self.login_url) br.select_form(nr=1) br['name'] = self.username br['pass'] = self.password br.submit() return br def get_cover_url(self): soup = self.index_to_soup('http://www.thenation.com/issue/') item = soup.find('div',attrs={'id':'cover-wrapper'}) if item: return item.img['src'] return None