From 183f9afff251606e5134e08d87a260fd7b7c89e2 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 10 Jun 2023 17:00:13 +0800 Subject: [PATCH] fix telegram send photo --- app/modules/telegram/telegram.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/modules/telegram/telegram.py b/app/modules/telegram/telegram.py index cc431fdd..4d04175d 100644 --- a/app/modules/telegram/telegram.py +++ b/app/modules/telegram/telegram.py @@ -1,8 +1,10 @@ import threading +from pathlib import Path from threading import Event from typing import Optional, List import telebot +from telebot.types import InputFile from app.core.config import settings from app.core.context import MediaInfo, Context @@ -152,14 +154,20 @@ class Telegram(metaclass=Singleton): """ if image: - ret = self._bot.send_photo(chat_id=userid or self._telegram_chat_id, - photo=image, - caption=caption, - parse_mode="Markdown") - else: - ret = self._bot.send_message(chat_id=userid or self._telegram_chat_id, - text=caption, - parse_mode="Markdown") + req = RequestUtils().get_res(image) + if req and req.content: + image_file = Path(settings.TEMP_PATH) / Path(image).name + image_file.write_bytes(req.content) + photo = InputFile(image_file) + ret = self._bot.send_photo(chat_id=userid or self._telegram_chat_id, + photo=photo, + caption=caption, + parse_mode="Markdown") + if ret: + return True + ret = self._bot.send_message(chat_id=userid or self._telegram_chat_id, + text=caption, + parse_mode="Markdown") return True if ret else False