39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from app import config_parser
|
|
import telegram
|
|
from importlib.metadata import version
|
|
import asyncio
|
|
|
|
config = config_parser.ConfigParser().loadConfig()
|
|
|
|
class telegramBot:
|
|
bot = None
|
|
|
|
async def sendMessage(self, message):
|
|
ver = version("python-telegram-bot")
|
|
major = int(ver.split(".")[0])
|
|
|
|
|
|
token = config["telegram"]["token"]
|
|
chat_id = config["telegram"]["chat_id"]
|
|
|
|
# --------------------
|
|
# PTB v20+ (async)
|
|
# --------------------
|
|
if major >= 20:
|
|
self.bot = telegram.Bot(token)
|
|
await self.bot.send_message(chat_id=chat_id, text=str(message))
|
|
return
|
|
|
|
# --------------------
|
|
# PTB v12/v13 (sync)
|
|
# --------------------
|
|
else:
|
|
self.bot = telegram.Bot(token)
|
|
|
|
# ejecuta el método sync en un hilo para no romper asyncio.run()
|
|
loop = asyncio.get_running_loop()
|
|
await loop.run_in_executor(
|
|
None,
|
|
lambda: self.bot.send_message(chat_id=chat_id, text=str(message))
|
|
)
|