__license__ = 'GPL v3' __copyright__ = '2011, Darko Miletic ' ''' pressthink.org ''' from calibre.web.feeds.recipes import BasicNewsRecipe class PressThink(BasicNewsRecipe): title = 'PressThink' __author__ = 'Darko Miletic' description = 'Ghost of democracy in the media machine' oldest_article = 60 max_articles_per_feed = 100 no_stylesheets = True use_embedded_content = False encoding = 'utf8' publisher = 'Arthur L. Carter Journalism Institute' category = 'news, USA, world, economy, politics, media' language = 'en' publication_type = 'blog' extra_css = """ body{ font-family: Helvetica,Arial,sans-serif } img{display: block; margin-bottom: 0.5em} h6{font-size: 1.1em; font-weight: bold} .post-author{font-family: Georgia,serif} .post-title{color: #AB0000} .says{color: gray} .comment { border-bottom: 1px dotted #555555; border-top: 1px dotted #DDDDDD; margin-left: 10px; min-height: 100px; padding: 15px 0 20px; } """ conversion_options = { 'comments': description, 'tags': category, 'language': language, 'publisher': publisher } remove_tags = [dict(name=['form', 'iframe', 'embed', 'object', 'link', 'base', 'table', 'meta'])] keep_only_tags = [dict(attrs={'class': [ 'post-title', 'post-author', 'entry', 'postmetadata alt', 'commentlist']})] feeds = [(u'Articles', u'http://pressthink.org/feed/')] def preprocess_html(self, soup): for item in soup.findAll(style=True): del item['style'] for item in soup.findAll('img', alt=False): item['alt'] = 'image' for alink in soup.findAll('a'): if alink.string is not None: tstr = alink.string alink.replaceWith(tstr) return soup