From f6185b2e55ce9c07045c5dae6c429ae61f94adcf Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 27 Feb 2024 22:45:50 +0530 Subject: [PATCH] Fix for New Yorker stupidly serving photographs in PNG format --- recipes/new_yorker.recipe | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/recipes/new_yorker.recipe b/recipes/new_yorker.recipe index b9268da6ed..a4eff56522 100644 --- a/recipes/new_yorker.recipe +++ b/recipes/new_yorker.recipe @@ -76,10 +76,20 @@ class NewYorker(BasicNewsRecipe): noscript.name = 'div' return soup + def preprocess_image(self, img_data, image_url): + from PIL import Image + from calibre import fit_image + from io import BytesIO + img = Image.open(BytesIO(img_data)).convert('RGB') + scaled, nwidth, nheight = fit_image(img.width, img.height, 1024, 1024) + if scaled: + img = img.resize((nwidth, nheight)) + buf = BytesIO() + img.save(buf, format='JPEG') + 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})