modified: README.md new file: install.sh renamed: config.py -> lib/constants.py renamed: cvars.py -> lib/cvars.py renamed: formatter.py -> lib/formatter.py renamed: network.py -> lib/network.py renamed: parser.py -> lib/parser.py renamed: qlpycon_config.py -> lib/settings.py renamed: state.py -> lib/state.py renamed: ui.py -> lib/ui.py modified: main.py modified: qlpycon.bash new file: qlpycon.conf.example
81 lines
2.2 KiB
Markdown
81 lines
2.2 KiB
Markdown
# qlpycon - Quake Live Python Console
|
|
|
|
Terminal client for monitoring and controlling Quake Live servers via ZMQ RCON.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
curl -sSL https://6bit.ch/qlpycon/install.sh | bash
|
|
```
|
|
|
|
Or from a cloned repo:
|
|
|
|
```bash
|
|
git clone https://git.6bit.ch/xbl/qlpycon.git
|
|
cd qlpycon
|
|
./install.sh
|
|
```
|
|
|
|
The installer sets up a virtualenv, installs dependencies, and writes a launcher to `~/.local/bin/qlpycon`.
|
|
|
|
## Configuration
|
|
|
|
Edit `qlpycon.conf` in your install directory. See `qlpycon.conf.example` for all options.
|
|
|
|
```ini
|
|
[connection]
|
|
password = ${QLPYCON_PASSWORD}
|
|
|
|
[servers]
|
|
ffa = 10.13.12.93:28960
|
|
duel = 10.13.12.93:28961
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
qlpycon ffa # connect by name
|
|
qlpycon --host tcp://10.13.12.93:28960 --password secret # connect directly
|
|
qlpycon --list # list configured servers
|
|
```
|
|
|
|
**Options:**
|
|
- `--host URI` — ZMQ RCON endpoint
|
|
- `--password PASS` — RCON password (or set `QLPYCON_PASSWORD` env var)
|
|
- `--list` — list configured servers and exit
|
|
- `-v` / `-vv` — verbose (INFO) or debug (DEBUG) logging
|
|
- `--json FILE` — log all JSON events to file
|
|
- `--unknown-log FILE` — log unparsed events (default: unknown_events.log)
|
|
|
|
## Features
|
|
|
|
- Real-time kill/death/medal/team switch events
|
|
- Team-aware colorized output with Quake color code support
|
|
- Powerup pickup and carrier kill notifications
|
|
- Server info panel (map, gametype, scores, players)
|
|
- Tab autocomplete for cvars and commands with fuzzy matching
|
|
- Argument suggestions for 25+ commands (bot names, maps, gametypes)
|
|
- Command history (↑/↓)
|
|
|
|
See [AUTOCOMPLETE.md](AUTOCOMPLETE.md) for input details.
|
|
|
|
## Architecture
|
|
|
|
```
|
|
main.py — entry point, arg parsing, signal handling
|
|
qlpycon.conf — user configuration
|
|
lib/
|
|
constants.py — weapons, teams, colors, limits
|
|
settings.py — config file loader
|
|
state.py — game state (server info, players, teams)
|
|
network.py — ZMQ connections (RCON DEALER, stats SUB)
|
|
parser.py — JSON event parsing
|
|
formatter.py — message formatting and colorization
|
|
ui.py — curses interface (info / output / input panels)
|
|
cvars.py — cvar/command database and autocomplete
|
|
```
|
|
|
|
## License
|
|
|
|
WTFPL
|