diff --git a/recipes/huffingtonpost.recipe b/recipes/huffingtonpost.recipe index 253e9c77f2..e949dc4016 100644 --- a/recipes/huffingtonpost.recipe +++ b/recipes/huffingtonpost.recipe @@ -1,3 +1,5 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 from __future__ import print_function from calibre.web.feeds.news import BasicNewsRecipe @@ -28,6 +30,20 @@ class HuffingtonPostRecipe(BasicNewsRecipe): no_stylesheets = True remove_javascript = True + recipe_specific_options = { + 'days': { + 'short': 'Oldest article to download from this news source. In days ', + 'long': 'For example, 0.5, gives you articles from the past 12 hours', + 'default': str(oldest_article) + } + } + + def __init__(self, *args, **kwargs): + BasicNewsRecipe.__init__(self, *args, **kwargs) + d = self.recipe_specific_options.get('days') + if d and isinstance(d, str): + self.oldest_article = float(d) + keep_only_tags = [ classes('entry__header entry__body') ] diff --git a/recipes/new_yorker.recipe b/recipes/new_yorker.recipe index 8629c79f2b..6d8b49f863 100644 --- a/recipes/new_yorker.recipe +++ b/recipes/new_yorker.recipe @@ -79,9 +79,19 @@ class NewYorker(BasicNewsRecipe): # img.save(buf, format='JPEG') # return buf.getvalue() + recipe_specific_options = { + 'date': { + 'short': 'The date of the edition to download (YYYY/MM/DD format)', + 'long': 'For example, 2024/07/08' + } + } + def parse_index(self): - soup = self.index_to_soup( - 'https://www.newyorker.com/magazine?intcid=magazine') + issue_url = 'https://www.newyorker.com/magazine?intcid=magazine' + d = self.recipe_specific_options.get('date') + if d and isinstance(d, str): + issue_url = 'https://www.newyorker.com/magazine/' + d + soup = self.index_to_soup(issue_url) cover_img = soup.find('picture', attrs={'class': lambda x: x and 'asset-embed__responsive-asset' in x}) if cover_img is not None: diff --git a/recipes/nymag.recipe b/recipes/nymag.recipe index 46050559af..73abaad17a 100644 --- a/recipes/nymag.recipe +++ b/recipes/nymag.recipe @@ -19,7 +19,7 @@ class NewYorkMagazine(BasicNewsRecipe): title = 'New York Magazine' __author__ = 'Kovid Goyal' description = 'Food, culture, arts and entertainment in New York' - language = 'en' + language = 'en_US' no_stylesheets = True remove_javascript = True encoding = 'utf-8' @@ -32,8 +32,19 @@ class NewYorkMagazine(BasicNewsRecipe): ] remove_attributes = ['srcset'] + recipe_specific_options = { + 'date': { + 'short': 'The date of the edition to download (YYYY-MM-DD format)', + 'long': 'For example, 2024-07-01' + } + } + def nymag_get_index(self): - return self.index_to_soup('https://nymag.com/maglinks/nym-home-05') + issue_url = 'https://nymag.com/maglinks/nym-home-05' + d = self.recipe_specific_options.get('date') + if d and isinstance(d, str): + issue_url = 'https://nymag.com/magazine/toc/' + d + '.html' + return self.index_to_soup(issue_url) def parse_index(self): soup = self.nymag_get_index()