From cd5be64891c3539f129e2e209e3ad6f5d5fe7c76 Mon Sep 17 00:00:00 2001 From: unkn0w7n <51942695+unkn0w7n@users.noreply.github.com> Date: Sat, 13 Apr 2024 11:11:13 +0530 Subject: [PATCH] Update new_yorker.recipe fix cover --- recipes/new_yorker.recipe | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/recipes/new_yorker.recipe b/recipes/new_yorker.recipe index 352e7f26c8..8629c79f2b 100644 --- a/recipes/new_yorker.recipe +++ b/recipes/new_yorker.recipe @@ -80,27 +80,21 @@ class NewYorker(BasicNewsRecipe): # return buf.getvalue() def parse_index(self): - # Get cover - cover_soup = self.index_to_soup('https://www.newyorker.com/archive') - cover_img = cover_soup.find( - attrs={'class': lambda x: x and 'MagazineSection__cover___' in x}) - if cover_img is not None: - cover_img = cover_img.find('img') - if cover_img is not None: - self.cover_url = cover_img.get('src') - try: - # the src original resolution w_280 was too low, replace w_280 with w_560 - cover_url_width_index = self.cover_url.find("w_") - old_width = self.cover_url[cover_url_width_index:cover_url_width_index+5] - self.cover_url = self.cover_url.replace(old_width, "w_560") - except Exception: - self.log('Failed enlarging cover img, using the original one') - self.log('Found cover:', self.cover_url) - - # Get content - soup = self.index_to_soup( 'https://www.newyorker.com/magazine?intcid=magazine') + cover_img = soup.find('picture', + attrs={'class': lambda x: x and 'asset-embed__responsive-asset' in x}) + if cover_img is not None: + self.cover_url = cover_img.img['src'] + self.log('Found cover:', self.cover_url) + try: + # the src original resolution w_280 was too low, replace w_280 with w_560 + cover_url_width_index = self.cover_url.find("w_") + old_width = self.cover_url[cover_url_width_index:cover_url_width_index+5] + self.cover_url = self.cover_url.replace(old_width, "w_640") + except Exception: + self.log('Failed enlarging cover img, using the original one') + feeds_dict = defaultdict(list) for section in soup.findAll('section', attrs={'class': lambda x: x and 'SummaryRiverSection-' in x}):