Commit Graph
78 Commits
Author SHA1 Message Date
DebianandSisyphus 17dd04857f Announce the winner of aborted matches too, only restarts stay silent
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:20:46 +02:00
DebianandSisyphus ca1666f3a5 Ignore docs build artifacts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:29 +02:00
DebianandSisyphus be7c3aec56 Track vote subjects and authoritative player scores in game state
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:29 +02:00
DebianandSisyphus 38f1446cde Announce forfeited match winners and show LIVESTATS lines only with -v
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-18 12:19:23 +02:00
DebianandSisyphus c08db27b57 Suppress all status debris in the window instead of shape-matching chunks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:36:53 +02:00
DebianandSisyphus 73e503e863 Hide status output chunks behind a suppression window opened by the status echo
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:31:46 +02:00
DebianandSisyphus 3bc84ba3f2 Catch status rows in all arrival modes: wrapped, colored and split fragments
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:24:46 +02:00
DebianandSisyphus d188c6a506 Match RCON output shapes on color-stripped text so status rows hide correctly
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 23:07:41 +02:00
DebianandSisyphus 8eccfefc75 Show client id and endpoint on connect/disconnect, gate command echoes behind -v
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 22:04:47 +02:00
DebianandSisyphus e834b44ba6 Hide RCON command output but keep command echoes from other clients
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:47:25 +02:00
DebianandSisyphus 9ea4aa122a Make server name learning opt-in to avoid lagging the game server
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:35:10 +02:00
DebianandSisyphus 190152733e Add timestamps to game events and connection messages
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:31:31 +02:00
DebianandSisyphus b8864ca8dd Stop double-formatting stats stream events
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:28 +02:00
DebianandSisyphus b641eb4e45 Fix scroll-hold drift, ignore input while too small and redraw scrolls immediately
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:28 +02:00
DebianandSisyphus 71bd740d78 Bound listing capture and accept all server count-line formats
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-16 21:27:27 +02:00
pfl 3d1dc19d9b Learn cvar and command names from the server for autocomplete
Send cvarlist and cmdlist on connect and merge the answer into the
autocomplete candidates. Number the server menu from 0, keep suggesting
sibling commands while the command name is typed, mask the password in
the startup line, ignore venv/, fix README claims.
2026-09-16 18:25:48 +02:00
pfl db123993c0 Rework TUI: single-threaded curses, scrollback buffer, server menu
- All curses drawing on the main thread; stdin polled together with the
  ZMQ sockets, Ctrl-C only sets a flag
- Output kept in a 2000-line buffer and redrawn from it, so resizes keep
  the history; PgUp/PgDn and mouse wheel scroll it
- Messages without trailing newline continue the current line (status
  table columns arrive as separate messages)
- Too-small terminal shows a warning instead of exiting
- Start without arguments shows a server selection menu
- Colors on the terminal default background; version 0.9.0
2026-09-16 17:01:51 +02:00
DebianandSisyphus 0613d380a4 Add graceful shutdown, reconnect handling and config file integration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 3213bb38b4 Handle undersized terminals and wire autocomplete/history options
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 271637ee71 Add config getters for logging, history and behavior settings
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:16 +02:00
DebianandSisyphus 5b90d66276 Remove dead code, fix cvar argument type and add player name helper
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
DebianandSisyphus e47badb7b3 Harden JSON event parsing and broadcast message formatting
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
DebianandSisyphus 15d461c234 Fix ZMQ socket monitor leak and guard monitor recv against races
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <[email protected]>
2026-09-13 14:00:13 +02:00
xbl 18bfa4b88e modified: install.sh 2026-06-14 14:50:05 +02:00
xbl ed78238ddc modified: install.sh 2026-06-14 14:43:50 +02:00
xbl bd0a2d4f38 modified: install.sh 2026-06-14 14:41:16 +02:00
xbl 0f84feead8 modified: install.sh 2026-06-14 14:36:15 +02:00
xbl fb19b09a43 modified: main.py 2026-06-14 14:34:10 +02:00
xbl e163e988f2 modified: install.sh 2026-06-14 14:29:28 +02:00
xbl d1f6e15bdb modified: install.sh 2026-06-14 14:24:35 +02:00
xbl b87ac01d83 modified: install.sh 2026-06-14 14:16:42 +02:00
xbl d14c268178 modified: install.sh 2026-06-14 14:15:44 +02:00
xbl a87533fead deleted: AUTOCOMPLETE.md
modified:   README.md
	modified:   install.sh
2026-06-14 13:59:16 +02:00
xbl 0666d33749 modified: README.md 2026-06-13 10:24:21 +02:00
xbl 29c613877d deleted: qlpycon.bash
deleted:    test_ui.py
2026-06-13 10:23:34 +02:00
xbl 7ca9795a39 modified: .gitignore
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
2026-06-13 10:21:29 +02:00
xbl be6ae8d137 modified: qlpycon.bash 2026-06-12 20:52:10 +02:00
pfl 530c12d9c0 Fix curses error in print_colored at window boundaries
- Wrap all addch calls in try/except blocks
- Return early when hitting window boundary
- Prevents crash when content exceeds window dimensions
- Gracefully truncates output instead of throwing error
2026-01-09 15:13:52 +01:00
pfl 993ed4f051 Fix curses error when info window is full
- Wrap addstr newlines in try/except blocks
- Prevents crash when writing to window boundary
- Info window has scrollok=False, so cursor can't move beyond bounds
2026-01-09 15:11:19 +01:00
pfl 42b958acdb Add terminal resize handling
- Detect KEY_RESIZE event in input thread
- Recreate windows with new dimensions on resize
- Redraw all content after resize
- Add minimum terminal size check (20x80)
- Handle both expansion and shrinking gracefully
2026-01-09 15:08:44 +01:00
pfl f1ed9c3d2c Add UI test mode script 2026-01-09 15:02:03 +01:00
pfl 4ac9432db9 Ignore CLAUDE*.md files 2026-01-09 14:59:53 +01:00
pfl fbaa4564e4 Fix cursor position and live timer updates
- Track cursor position in UIManager.cursor_pos
- Restore cursor after print_message() and update_server_info()
- Sync cursor_pos between wait_stdin thread and manager
- Update server info panel every second for live timer display
- Timer now ticks continuously instead of only on game events
2026-01-09 14:58:05 +01:00
pfl a03b4b0b93 Add missing Quake Live commands to autocomplete
- Match control: readyall, allready, abort, pause, unpause, lock, unlock, timeout, timein
- Player management: shuffle, put, mute, unmute, slap, slay
- Server control: restart, endgame, nextmap, forcemap
- QLX commands: qlx, elo, balance, teams, scores
- Info commands: serverinfo, players, maplist, configstrings

Total commands increased from 18 to 47
2026-01-09 14:23:50 +01:00
pfl e6e32033ad Add live match timer countdown
- Add match_time_last_sync timestamp to track server updates
- Update timestamp in parser when TIME events received
- Calculate elapsed time in UI for live countdown
- Timer now ticks in real-time between server events
2026-01-09 14:00:32 +01:00
pfl 16b5209338 Fix exception handling in ui.py
- Replace 6 bare except: with except curses.error:
- Remove inline import logging, use module-level logger
- Improves safety by not catching KeyboardInterrupt/SystemExit
2026-01-09 13:56:14 +01:00
pfl f75adac97a Optimize patterns and improve script configurability
- Add pre-compiled regex pattern for color codes
- Add SPECIAL_CHAR constant (chr(25)) for clarity
- Move time import to module level in parser
- Centralize color code stripping via strip_color_codes()
- Make qlpycon.bash fully configurable (workdir, serverip)
- Add validation checks for workdir and venv
- Fix port numbers in help text (28960-28969)
2026-01-09 13:51:53 +01:00
pfl 224782467d qlpycon.bash 2026-01-09 13:40:59 +01:00
pfl 216abb4a3f fix exiting moar 2026-01-09 13:32:00 +01:00
pfl 182f94abb2 quit on quit! 2026-01-09 13:28:29 +01:00