Skip to content

Fan4Metal/ql_console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ql-console

English · Русский

Приложение для администрирования серверов Quake Live: подключение по RCON, ввод команд, просмотр ответов сервера и потока live-событий (kills, чат, подключения). Поддерживает несколько серверов с переключением между ними.

GUI на wxPython, связь с сервером через ZeroMQ (pyzmq).

Скриншот ql-console

Требования

  • Python 3.14 (поддерживается 3.12+)
  • uv для управления пакетами

Запуск

uv sync          # создать окружение и установить зависимости
uv run main.py   # запустить приложение
# или
uv run ql-console

Настройка сервера

В приложении: Add → укажите имя, host/IP, RCON-порт и пароль; при желании включите подписку на события (stats-порт и пароль).

На стороне Quake Live сервера должны быть заданы cvar'ы:

+set zmq_rcon_enable 1
+set zmq_rcon_password "<пароль>"
+set zmq_rcon_port <порт>
+set zmq_stats_enable 1          # для панели событий
+set zmq_stats_password "<пароль>"
+set zmq_stats_port <порт>

Хранение настроек

Список серверов хранится в простом JSON-файле (пароли — в открытом виде, держите файл приватным):

  • по умолчанию: %APPDATA%\ql_console\servers.json
  • переопределяется переменной окружения QL_CONSOLE_CONFIG

Протокол (детали реализации)

  • RCON — сокет DEALER, PLAIN-аутентификация (username=rcon, zap_domain=rcon), случайный IDENTITY; после установления соединения отправляется кадр register, затем команды; ответы приходят текстом.
  • Stats — сокет SUB с подпиской на всё, PLAIN-аутентификация (username=stats, zap_domain=stats); события приходят в виде JSON. Регистрация не требуется.

Весь сетевой ввод-вывод выполняется в фоновых потоках; результаты доставляются в GUI через wx.CallAfter.

Сборка в .exe

uv sync                              # установит dev-зависимости (PyInstaller)
uv run python tools/build_exe.py

Результат — папка dist/ql-console/ с ql-console.exe внутри (режим one-dir, без консоли, с иконкой). Распространять нужно всю папку. Скрипт сам подключает папку с иконками и сгенерированный каталог cvar'ов (_generated.py), если он есть. После изменения кода или ассетов просто запусти скрипт заново.

About

An admin tool for Quake Live servers: connect over RCON, send commands, view server replies and the live event stream (kills, chat, connections).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages