From 243d0ba7493568d3771f9d8b17622aa2ba32152d Mon Sep 17 00:00:00 2001 From: Joan Date: Wed, 28 Jun 2023 13:26:31 +0200 Subject: [PATCH] Added image placeholder if cant retrieve it --- bot/dbhelper.py | 11 +++++++---- bot/helpers.py | 5 ++++- data/images/placeholder.png | Bin 0 -> 13943 bytes 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 data/images/placeholder.png diff --git a/bot/dbhelper.py b/bot/dbhelper.py index 7678999..f0e1b72 100644 --- a/bot/dbhelper.py +++ b/bot/dbhelper.py @@ -21,10 +21,13 @@ def add_product(tg_user, tg_group, tg_user_id, tg_group_id, url, referurl, title con.commit() con.close() - response = requests.get(image, headers=constants.HEADERS) - file = open(f"/app/data/images/products/{product_id}.jpg", "wb") - file.write(response.content) - file.close() + try: + response = requests.get(image, headers=constants.HEADERS) + file = open(f"/app/data/images/products/{product_id}.jpg", "wb") + file.write(response.content) + file.close() + except: + pass return product_id diff --git a/bot/helpers.py b/bot/helpers.py index 20172b6..d58e98e 100644 --- a/bot/helpers.py +++ b/bot/helpers.py @@ -40,7 +40,10 @@ def create_image(product_id, price): draw.text(((width / 6) * 5 - wtext / 2, height / 2 - htext / 2), price, (0, 0, 0), font=font) draw.rectangle([15, 15, width - 15, height - 15], width = 15, outline="#20e163") # ponemos la imagen del producto en la parte izquierda y se redimensiona dependiendo de lo ancho - product_image = Image.open(f"/app/data/images/products/{product_id}.jpg") + try: + product_image = Image.open(f"/app/data/images/products/{product_id}.jpg") + except: + product_image = Image.open(f"/app/data/images/placeholder.jpg") hpercent = (baseheight / float(product_image.size[1])) wsize = int((float(product_image.size[0]) * float(hpercent))) if wsize < wlimit: diff --git a/data/images/placeholder.png b/data/images/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..fe74514de1213933996b3567c936ada113370062 GIT binary patch literal 13943 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