Python-Telegram-Бот: отправить сообщение через бота в другом модуле

#python #telegram #python-telegram-bot

#python #telegram #python-telegram-bot

Вопрос:

Я пишу Telegram-бота, используя библиотеку python-telegram-bot.
Бот должен отправить сообщение пользователю при публикации нового канала YouTube. Я создал telegram_bot.py в котором я создал класс TelegramBot. В этом классе у меня есть эта функция:
telegram_bot.py

 def __init__(self):
    self.updater = Updater(token=telegram_token, use_context=True)
    self.dispatcher = self.updater.dispatcher  
    self.updater.start_polling()

def send_message(self, text_message, context: CallbackContext):
    context.bot.send_message(
        chat_id="@<<my username>>", text=text_message)
 

И в main.py У меня есть строка кода, которая должна отправить сообщение usign вышеупомянутой функции, например:
main.py

 from telegram_bot import TelegramBot  

tg_bot = TelegramBot()
tg_bot.send_message("New video!")
 

Но, когда я запускаю приведенный выше код, я получаю эту ошибку:

Ошибка типа: в send_message() отсутствует 1 требуемый позиционный аргумент: ‘context’

Но в определении send_message я уже определил контекст

Ответ №1:

Решается таким образом:
main.py

 tg_bot = TelegramBot()
tg_bot.send_message("New video!", context=tg_bot.dispatcher)