From abd0a2efe3ec7bec167b2a772f032abd1706b09c Mon Sep 17 00:00:00 2001 From: Monkfishare <50627932+Monkfishare@users.noreply.github.com> Date: Wed, 30 Jul 2025 15:57:01 +0800 Subject: [PATCH] Revert: Bring back publication_date functionality --- recipes/economist.recipe | 12 ++++++++++++ recipes/economist_free.recipe | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/recipes/economist.recipe b/recipes/economist.recipe index 3280577461..8165f5699c 100644 --- a/recipes/economist.recipe +++ b/recipes/economist.recipe @@ -11,6 +11,7 @@ from mechanize import Request from calibre import browser from calibre.ptempfile import PersistentTemporaryFile +from calibre.utils.date import parse_only_date from calibre.web.feeds.news import BasicNewsRecipe @@ -246,6 +247,17 @@ class Economist(BasicNewsRecipe): br = BasicNewsRecipe.get_browser(self, *args, **kwargs) return br + def publication_date(self): + edition_date = self.recipe_specific_options.get('date') + if edition_date and isinstance(edition_date, str): + return parse_only_date(edition_date, as_utc=False) + try: + url = self.browser.open('https://www.economist.com/printedition').geturl() + except Exception as e: + self.log('Failed to fetch publication date with error: ' + str(e)) + return super().publication_date() + return parse_only_date(url.split('/')[-1], as_utc=False) + def economist_return_index(self, ans): if not ans: raise NoArticles( diff --git a/recipes/economist_free.recipe b/recipes/economist_free.recipe index 3280577461..8165f5699c 100644 --- a/recipes/economist_free.recipe +++ b/recipes/economist_free.recipe @@ -11,6 +11,7 @@ from mechanize import Request from calibre import browser from calibre.ptempfile import PersistentTemporaryFile +from calibre.utils.date import parse_only_date from calibre.web.feeds.news import BasicNewsRecipe @@ -246,6 +247,17 @@ class Economist(BasicNewsRecipe): br = BasicNewsRecipe.get_browser(self, *args, **kwargs) return br + def publication_date(self): + edition_date = self.recipe_specific_options.get('date') + if edition_date and isinstance(edition_date, str): + return parse_only_date(edition_date, as_utc=False) + try: + url = self.browser.open('https://www.economist.com/printedition').geturl() + except Exception as e: + self.log('Failed to fetch publication date with error: ' + str(e)) + return super().publication_date() + return parse_only_date(url.split('/')[-1], as_utc=False) + def economist_return_index(self, ans): if not ans: raise NoArticles(