Обновить myscript.py
Добавлена фича отправки пароля в телеграмм
This commit is contained in:
65
myscript.py
65
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("❌ Пароль не найден в полученных данных")
|
||||
|
||||
Reference in New Issue
Block a user