Есть форма, созданная с использованием библиотеки PyQt5:
#mainwindow.py class MainWindow(QMainWindow): def __init__(self): super().__init__() # Бла бла бла def ClickButton(self): ЗАПУСК БОТА
Есть класс бота, который принимает текст, обрабатывает, выполняет комманды и возвращает текстовый ответ
#mainbotmodule.py class MainBot: def __init__(self, parent = 0, online=0, voice=0): def GetAnswer(self.text): #Бла бла return answer
И есть файлы телеграм бота, который пока только работает в режиме эха, а должен после нажатия на кнопку формы MainWindow один раз проинициализировать переменную класса MainBot, получать в нее вопросы и возвращать ответы в телеграм.
#TelegramBot.py # -*- coding: utf-8 -*- import time import telebot import config bot = telebot.TeleBot(config.token) @bot.message_handler(func=lambda message: True, content_types=['text']) def send_msg(message): bot.send_message(message.chat.id, message.text) if __name__ == '__main__': bot.polling(none_stop=True)
#config.py token = '000' from main import bot # Обработчик команд '/start' и '/help'. @bot.message_handler(commands=['start', 'help']) def send_welcome(message): bot.reply_to(message, """бла бла """) pass # Обработчик для документов и аудиофайлов @bot.message_handler(content_types=['document', 'audio']) def handle_docs_audio(message): pass #Обработчик сообщений, подходящих под указанное регулярное выражение @bot.message_handler(regexp="SOME_REGEXP") def handle_message(message): pass # Обработчик сообщений, содержащих документ с mime_type 'text/plain' (обычный текст) @bot.message_handler(func=lambda message: message.document.mime_type == 'text/plain', content_types=['document']) def handle_text_doc(message): pass
Как мне обратиться к переменной bot и заставить ее в методе send_message использовать класс MainBot, который после запуска бота в телеграм должен проинициализироваться только 1 раз, чтобы бестолку не насиловать сервер базы данных? Или, может быть, можно как-то создать цельный класс телеграм бота, который я смогу проинициализировать внутри MainWindow и оттуда его запустить?