From b1a00d0b522d04611e6ec1d561a854bf13ad0273 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 24 Jun 2020 16:43:43 +0530 Subject: [PATCH] Remove non-working Newsweek recipe --- recipes/icons/newsweek.png | Bin 8949 -> 0 bytes recipes/newsweek.recipe | 107 ------------------------------------- 2 files changed, 107 deletions(-) delete mode 100644 recipes/icons/newsweek.png delete mode 100644 recipes/newsweek.recipe diff --git a/recipes/icons/newsweek.png b/recipes/icons/newsweek.png deleted file mode 100644 index 662c92ed1119addf44a909c404dcac2da5347298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8949 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 P00000NkvXXu0mjfyMdy0 diff --git a/recipes/newsweek.recipe b/recipes/newsweek.recipe deleted file mode 100644 index fc55dac112..0000000000 --- a/recipes/newsweek.recipe +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env python -# vim:fileencoding=utf-8 -# License: GPLv3 Copyright: 2015, Kovid Goyal - -import json -from calibre.web.feeds.news import BasicNewsRecipe -from collections import defaultdict - -BASE = 'https://www.newsweek.com' - - -def href_to_url(a, add_piano=False): - return BASE + a.get('href') + ('?piano_d=1' if add_piano else '') - - -def class_sels(*args): - q = set(args) - return dict(attrs={'class': lambda x: x and set(x.split()).intersection(q)}) - - -class Newsweek(BasicNewsRecipe): - - title = 'Newsweek' - __author__ = 'Kovid Goyal' - description = 'Weekly news and current affairs in the US' - language = 'en' - encoding = 'utf-8' - no_stylesheets = True - requires_version = (1, 40, 0) - - keep_only_tags = [ - dict(id='block-nw-magazine-article-header'), - class_sels('article-header', 'article-body') - ] - remove_tags = [ - dict(name=['aside', 'meta', 'source']), - class_sels( - 'block-openadstream', 'block-ibtmedia-social', 'issue-next', - 'most-popular', 'ibt-media-stories', 'user-btn-group', - 'trial-link', 'trc_related_container', - 'block-ibtmedia-top-stories', 'videocontent', 'newsletter-signup', - 'in-text-slideshows', 'content-correction', 'article-navigation' - ), - dict(id=['taboola-below-main-column', 'piano-root', - 'block-nw-magazine-magazine-more-from-issue']), - ] - remove_attributes = ['style'] - - def parse_index(self): - root = self.index_to_soup( - 'https://www.newsweek.com/archive', as_tree=True) - li = root.xpath( - '//ul[contains(@class, "magazine-archive-items")]/li')[0] - a = li.xpath('descendant::a[@href]')[0] - url = href_to_url(a, add_piano=True) - self.timefmt = self.tag_to_string(a) - img = li.xpath('descendant::a[@href]//source[@type="image/jpeg"]/@srcset')[0] - self.cover_url = img.partition('?')[0] - self.log('Found cover url:', self.cover_url) - root = self.index_to_soup(url, as_tree=True) - features = [] - for article in root.xpath('//div[@class="magazine-features"]//article'): - a = article.xpath('descendant::a[@class="article-link"]')[0] - title = self.tag_to_string(a) - url = href_to_url(a) - desc = '' - s = article.xpath('descendant::div[@class="summary"]') - if s: - desc = self.tag_to_string(s[0]) - features.append({'title': title, 'url': href_to_url(a), 'description': desc}) - self.log(title, url) - - index = [('Features', features)] - sections = defaultdict(list) - for widget in ('editor-pick',): - self.parse_widget(widget, sections) - for k in sorted(sections): - index.append((k, sections[k])) - return index - - def parse_widget(self, widget, sections): - raw = self.index_to_soup('https://d.newsweek.com/json/' + widget, raw=True) - data = json.loads(raw)['items'] - for item in data: - title = item['title'] - url = BASE + item['link'] - self.log(title, url) - sections[item['label']].append( - { - 'title': title, - 'url': url, - 'description': item['description'], - }) - - def preprocess_html(self, soup): - # Parallax images in the articles are loaded as background images - # on tags. Convert them to normal images. - for span in soup.findAll('span', attrs={'class': lambda x: x and 'parallax' in x.split()}): - s = span.find(style=True) - if s is not None: - url = s['style'].partition('(')[-1][:-1] - s['style'] = 'display: block' - s.name = 'img' - s['src'] = url - for img in soup.findAll('img', attrs={'data-src': True}): - img['src'] = img['data-src'] - return soup