diff --git a/myscript.py b/myscript.py index 884bf7b..c583542 100644 --- a/myscript.py +++ b/myscript.py @@ -9,6 +9,11 @@ import glob from datetime import datetime import time import serial +import telebot +import threading +import logging + + class MainApp: def __init__(self, root): @@ -17,6 +22,10 @@ class MainApp: self.root.geometry("900x900") self.root.configure(bg='#f0f0f0') + # Add these class variables to MainApp.__init__ after self.root.configure(bg='#f0f0f0') + self.telegram_bot_token = "5481440980:AAF1oPtuwS9NCVqcNmV2G80x9r77w1NUhEg" # Replace with your bot token from BotFather + self.telegram_user_id = None # Replace with the Telegram user ID to receive messages + self.bot = None # Позиционируем окно по левому краю экрана self.position_window_left() @@ -26,6 +35,7 @@ class MainApp: self.small_font = ('Arial', 16) self.create_widgets() + self.start_telegram_bot() # Автоматически открываем Minicom при запуске self.root.after(1000, self.open_minicom) # Задержка 1 секунда перед открытием Minicom @@ -158,6 +168,52 @@ class MainApp: self.add_to_log("✅ Приложение запущено и готово к работе") self.add_to_log("📐 Окно позиционировано по левому краю (900x900)") + def start_telegram_bot(self): + """Запускает Telegram бота в фоновом потоке""" + try: + self.bot = telebot.TeleBot(self.telegram_bot_token) + + # Обработчик команды /edison + @self.bot.message_handler(commands=['edison']) + def handle_edison(message): + self.telegram_chat_id = message.chat.id + response = ( + f"🔧 Режим Edison активирован!\n" + f"📋 Ваш ID: {message.chat.id}\n" + f"✅ Теперь я буду присылать сюда все пароли" + ) + self.bot.send_message(message.chat.id, response) + print(f"✅ Chat ID сохранен: {message.chat.id}") + self.add_to_log(f"✅ Telegram: получен chat_id {message.chat.id}") + + # Запускаем бота в отдельном потоке + bot_thread = threading.Thread(target=self.bot.polling, daemon=True) + bot_thread.start() + + print("✅ Telegram бот запущен. Ожидаю команду /edison") + self.add_to_log("✅ Telegram бот запущен. Отправьте /edison в бот") + + except Exception as e: + print(f"❌ Ошибка запуска бота: {e}") + self.add_to_log(f"❌ Ошибка запуска Telegram бота: {e}") + + def send_telegram_message(self, message): + """Отправляет сообщение в Telegram""" + try: + if self.bot and self.telegram_chat_id: + self.bot.send_message(self.telegram_chat_id, message) + print(f"✅ Сообщение отправлено: {message}") + return True + else: + if not self.telegram_chat_id: + print("⚠️ Chat ID не установлен. Отправьте /edison боту") + self.add_to_log("⚠️ Telegram: chat_id не установлен. Отправьте /edison") + return False + except Exception as e: + print(f"❌ Ошибка отправки: {e}") + self.add_to_log(f"❌ Ошибка отправки в Telegram: {e}") + return False + def get_password(self): """Получает пароль от устройства""" self.add_to_log("🔑 Запуск процесса получения пароля...") @@ -258,7 +314,7 @@ class MainApp: time.sleep(2) data = ser.read(10000) received_data = data.decode(errors='ignore') - self.add_to_log(f"📟 Полученные данные: {received_data}") + # self.add_to_log(f"📟 Полученные данные: {received_data}") # Updated pattern to match "Hash:: XXXXXXXXXXXX" format import re @@ -267,6 +323,13 @@ class MainApp: password = password_match.group(1) self.add_to_log(f"🔑 Найден пароль: {password}") self.status_var.set(f"Пароль: {password}") + + success = self.send_telegram_message(f"🔐 Новый пароль получен: {password}") + if success: + self.add_to_log("✅ Пароль отправлен в Telegram") + else: + self.add_to_log("❌ Не удалось отправить пароль в Telegram") + return password else: self.add_to_log("❌ Пароль не найден в полученных данных")