Новые возможности
- Интеграция с модулем GameCMS от BiZaJe
Добавлен мониторинг MySQL-базы GameCMS (monitor_gamecms.py, database_mysql.py).
Отслеживает новые записи и изменения статуса в таблице ecd_logs.- Система уведомлений
Поддержка Telegram (с возможностью прокси) и VK.
Отдельные уведомления для новых отчётов ECD, событий GameCMS и смены статуса.- Детальный анализ архива
Выгрузка драйверов, модулей и процессов нарушителя через fetch_archive.
Данные сохраняются в отдельные таблицы SQLite (drivers, modules, processes).- Обработка заблокированных архивов (403)
Отчёты, чей архив недоступен, помещаются в очередь soon_scan и будут повторно обработаны позже.- Пагинация при получении отчётов
Реализован метод fetch_many, который через параметры DataTables (start, length, last_id) загружает неограниченное количество записей (раньше только первые 50-150).- Человеко-читаемое время
Функция parse_time_string преобразует «сегодня в 12:34» и «вчера в 12:34» в полную дату (например, 23.04.2026 12:34).- Гибкий конфиг через файл
Вместо жёстко заданных переменных появился config.txt с поддержкой:
- Настройки сканирования (режим, цель, лимиты, задержки)
- Параметры GameCMS (хост, порт, логин, пароль, база)
- Настройки Telegram/VK (токены, чаты, прокси)
- SSL, User-Agent, уровень логирования
- Автоустановка зависимостей
Скрипт setup.py проверяет и устанавливает пакеты: requests, beautifulsoup4, urllib3, mysql-connector-python.- Статистика по дням
В show_stats добавлен вывод количества отчётов за последние 7 дней.- Новый статус «hack»
Для обхода ECD (результат "hack") используется эмодзи 🛡 (в v1.1.2 такого статуса не было).
Изменения и улучшения
- Модульная архитектура
Код разбит на отдельные файлы: app.py, setup.py, modules/ (config, database_, monitor_, notifications, formatter, parser).
Логика сканирования ECD и GameCMS вынесена в отдельные потоки (threading).- Переработана структура БД
- Вместо report_id (INT) используется local_id (UUID) и scan_id (уникальный).
- Добавлены таблицы drivers, modules, processes, soon_scan.
- Поле source отличает отчёты из FunGun и GameCMS.
- Расширенный User-Agent
Список user_agents значительно пополнен (мобильные устройства, свежие версии браузеров).- Улучшенная обработка ошибок
- Повторные попытки при сетевых сбоях (3 попытки для Telegram).
- Обработка 403 Access Denied с повторным посещением реферера.
- Таймауты для всех HTTP-запросов.
- Гибкий интервал сканирования
В конфиге можно указать min/max в формате 30/60 – задержка выбирается случайно между ними.- Логирование
Настраиваемый уровень (EL_LogLevel), вывод в файл (EL_LogFile) и опционально в консоль (EL_LogConsoleOutput).- Параметр EL_ShowStatsOnStart
Показывает статистику БД сразу при запуске (раньше статистика выводилась только по Ctrl+C).- Отказ от глобальных констант
Все настройки, включая SSL, режим, лимиты, задержки, теперь загружаются из конфига.
Исправления (по сравнению с v1.1.2)
- Потеря старых отчётов
В v1.1.2 загружались только первые N записей без пагинации – многие отчёты могли быть пропущены.
Исправлено через пагинированный запрос fetch_many.- Некорректное время в БД
Строки вида "сегодня в 14:30" сохранялись как есть, что мешало сортировке и статистике.
Теперь преобразуются в DD.MM.YYYY HH:MM.- Отсутствие деталей нарушителя
В v1.1.2 не было возможности получить модули/драйверы/процессы – добавлен вызов fetch_archive.- Блокировка IP при запросе архива
При получении 403 отчёт не терялся, а откладывался в soon_scan (раньше просто игнорировался).- Проблемы с многопоточностью
В v1.1.2 весь код выполнялся в одном потоке – теперь сканер ECD и монитор GameCMS работают параллельно.
Файловая структура (новые/изменённые файлы)
v1.1.2 v1.4.3ECDLogger.pyapp.py(главный запуск),setup.pyconfig.py(минимальный)modules/config.py+config.txtua.pyua.py(расширен) нетmodules/database_sqlite.py нетmodules/database_mysql.py нетmodules/monitor_ecd.py нетmodules/monitor_gamecms.py нетmodules/notifications.py нетmodules/formatter.pyECDLogger.py(внутри парсер)modules/parser.py
Если во время использования будут найдены проблемы/ошибки, прошу писать в обсуждении ресурса.