Обновить myscript.py
Добавлена фича отправки пароля в телеграмм
This commit is contained in:
65
myscript.py
65
myscript.py
@@ -9,6 +9,11 @@ import glob
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import time
|
import time
|
||||||
import serial
|
import serial
|
||||||
|
import telebot
|
||||||
|
import threading
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MainApp:
|
class MainApp:
|
||||||
def __init__(self, root):
|
def __init__(self, root):
|
||||||
@@ -17,6 +22,10 @@ class MainApp:
|
|||||||
self.root.geometry("900x900")
|
self.root.geometry("900x900")
|
||||||
self.root.configure(bg='#f0f0f0')
|
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()
|
self.position_window_left()
|
||||||
|
|
||||||
@@ -26,6 +35,7 @@ class MainApp:
|
|||||||
self.small_font = ('Arial', 16)
|
self.small_font = ('Arial', 16)
|
||||||
|
|
||||||
self.create_widgets()
|
self.create_widgets()
|
||||||
|
self.start_telegram_bot()
|
||||||
# Автоматически открываем Minicom при запуске
|
# Автоматически открываем Minicom при запуске
|
||||||
self.root.after(1000, self.open_minicom) # Задержка 1 секунда перед открытием Minicom
|
self.root.after(1000, self.open_minicom) # Задержка 1 секунда перед открытием Minicom
|
||||||
|
|
||||||
@@ -158,6 +168,52 @@ class MainApp:
|
|||||||
self.add_to_log("✅ Приложение запущено и готово к работе")
|
self.add_to_log("✅ Приложение запущено и готово к работе")
|
||||||
self.add_to_log("📐 Окно позиционировано по левому краю (900x900)")
|
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):
|
def get_password(self):
|
||||||
"""Получает пароль от устройства"""
|
"""Получает пароль от устройства"""
|
||||||
self.add_to_log("🔑 Запуск процесса получения пароля...")
|
self.add_to_log("🔑 Запуск процесса получения пароля...")
|
||||||
@@ -258,7 +314,7 @@ class MainApp:
|
|||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
data = ser.read(10000)
|
data = ser.read(10000)
|
||||||
received_data = data.decode(errors='ignore')
|
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
|
# Updated pattern to match "Hash:: XXXXXXXXXXXX" format
|
||||||
import re
|
import re
|
||||||
@@ -267,6 +323,13 @@ class MainApp:
|
|||||||
password = password_match.group(1)
|
password = password_match.group(1)
|
||||||
self.add_to_log(f"🔑 Найден пароль: {password}")
|
self.add_to_log(f"🔑 Найден пароль: {password}")
|
||||||
self.status_var.set(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
|
return password
|
||||||
else:
|
else:
|
||||||
self.add_to_log("❌ Пароль не найден в полученных данных")
|
self.add_to_log("❌ Пароль не найден в полученных данных")
|
||||||
|
|||||||
Reference in New Issue
Block a user