add algam
This commit is contained in:
87
app.control-bot/main.py
Normal file
87
app.control-bot/main.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""
|
||||
Управляющее приложение для бота с веб-интерфейсом
|
||||
"""
|
||||
|
||||
import http.server
|
||||
import socketserver
|
||||
import os
|
||||
import sys
|
||||
import webbrowser
|
||||
import threading
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
class WebInterface:
|
||||
def __init__(self, port=3000):
|
||||
self.port = port
|
||||
self.web_dir = Path(__file__).parent / "web"
|
||||
|
||||
def start_server(self):
|
||||
"""Запуск веб-сервера"""
|
||||
try:
|
||||
# Меняем рабочую директорию на папку с веб-файлами
|
||||
os.chdir(self.web_dir)
|
||||
|
||||
# Создаем HTTP сервер
|
||||
handler = http.server.SimpleHTTPRequestHandler
|
||||
|
||||
with socketserver.TCPServer(("", self.port), handler) as httpd:
|
||||
print(f"🚀 Веб-интерфейс управления тестами запущен!")
|
||||
print(f"📡 Адрес: http://localhost:{self.port}")
|
||||
print(f"📁 Директория: {self.web_dir}")
|
||||
print(f"⚠️ Убедитесь, что API сервер запущен на http://localhost:8000")
|
||||
print(f"💡 Для остановки нажмите Ctrl+C")
|
||||
print("-" * 60)
|
||||
|
||||
# Открываем браузер через 2 секунды
|
||||
def open_browser():
|
||||
time.sleep(2)
|
||||
try:
|
||||
webbrowser.open(f"http://localhost:{self.port}")
|
||||
except Exception as e:
|
||||
print(f"Не удалось открыть браузер: {e}")
|
||||
|
||||
browser_thread = threading.Thread(target=open_browser)
|
||||
browser_thread.daemon = True
|
||||
browser_thread.start()
|
||||
|
||||
# Запускаем сервер
|
||||
httpd.serve_forever()
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n🛑 Сервер остановлен")
|
||||
except OSError as e:
|
||||
if e.errno == 10048: # Windows: Address already in use
|
||||
print(f"❌ Ошибка: Порт {self.port} уже используется")
|
||||
print(f"💡 Попробуйте другой порт или остановите процесс, использующий порт {self.port}")
|
||||
else:
|
||||
print(f"❌ Ошибка запуска сервера: {e}")
|
||||
except Exception as e:
|
||||
print(f"❌ Неожиданная ошибка: {e}")
|
||||
|
||||
def main():
|
||||
"""Главная функция приложения"""
|
||||
|
||||
# Проверяем существование веб-директории
|
||||
web_dir = Path(__file__).parent / "web"
|
||||
if not web_dir.exists():
|
||||
print("❌ Ошибка: Веб-директория не найдена!")
|
||||
print(f"Ожидаемый путь: {web_dir}")
|
||||
return
|
||||
|
||||
# Проверяем существование основных файлов
|
||||
index_file = web_dir / "index.html"
|
||||
if not index_file.exists():
|
||||
print("❌ Ошибка: Файл index.html не найден!")
|
||||
print(f"Ожидаемый путь: {index_file}")
|
||||
return
|
||||
|
||||
print("🤖 Управляющее приложение для Telegram бота")
|
||||
print("=" * 50)
|
||||
|
||||
# Запускаем веб-интерфейс
|
||||
web_interface = WebInterface()
|
||||
web_interface.start_server()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user