mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
The Week by Kovid Goyal
This commit is contained in:
parent
7a83da61b7
commit
493338f4a0
57
recipes/the_week.recipe
Normal file
57
recipes/the_week.recipe
Normal file
@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env python
|
||||
# vim:fileencoding=utf-8
|
||||
# License: GPLv3 Copyright: 2021, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
|
||||
from calibre.web.feeds.news import BasicNewsRecipe
|
||||
|
||||
|
||||
def fix_title(title):
|
||||
return title.replace('-', ' ').capitalize()
|
||||
|
||||
|
||||
class TheWeek(BasicNewsRecipe):
|
||||
title = u'The Week'
|
||||
language = 'en_IN'
|
||||
__author__ = 'Kovid Goyal'
|
||||
encoding = 'utf-8'
|
||||
oldest_article = 15 # days
|
||||
max_articles_per_feed = 25
|
||||
no_stylesheets = True
|
||||
use_embedded_content = True
|
||||
ignore_duplicate_articles = {'url'}
|
||||
|
||||
feeds = [
|
||||
('Cover Story', 'https://www.theweek.in/theweek/cover.rss'),
|
||||
('Sports', 'https://www.theweek.in/theweek/sports.rss'),
|
||||
('Current', 'https://www.theweek.in/theweek/current.rss'),
|
||||
('Statescan', 'https://www.theweek.in/theweek/statescan.rss'),
|
||||
('Leisure', 'https://www.theweek.in/theweek/leisure.rss'),
|
||||
('Business', 'https://www.theweek.in/theweek/business.rss'),
|
||||
('Specials', 'https://www.theweek.in/theweek/specials.rss'),
|
||||
('More', 'https://www.theweek.in/theweek/more.rss'),
|
||||
('Society', 'https://www.theweek.in/leisure/society.rss'),
|
||||
]
|
||||
|
||||
def get_cover_url(self):
|
||||
soup = self.index_to_soup('https://www.theweek.in/theweek.html')
|
||||
for img in soup.findAll('img', attrs={'data-src-web': lambda x: x and '/cover-magazine' in x}):
|
||||
src = img['data-src-web']
|
||||
try:
|
||||
idx = src.rfind('.image.')
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
if idx > -1:
|
||||
src = src[:idx]
|
||||
return 'https://img.theweek.in' + src
|
||||
|
||||
def preprocess_html(self, soup):
|
||||
a = soup.find('a')
|
||||
a.name = 'span'
|
||||
h2 = soup.find('h2')
|
||||
h2.string = fix_title(h2.string)
|
||||
return soup
|
||||
|
||||
def populate_article_metadata(self, article, soup, first):
|
||||
article.title = fix_title(article.title)
|
Loading…
x
Reference in New Issue
Block a user