Обновить myscript.py

Добавлена фича отправки пароля в телеграмм
This commit is contained in:
2025-10-22 14:56:00 +03:00
parent 5016716227
commit 56bae8818e

View File

@@ -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("❌ Пароль не найден в полученных данных")