feat: add bouncer control commands via /msg *bouncer
Users can now inspect bouncer state and manage it from their IRC client by sending PRIVMSG to *bouncer (or bouncer). Supported commands: HELP, STATUS, INFO, UPTIME, NETWORKS, CREDS. Responses arrive as NOTICE messages. All commands are case-insensitive. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,18 @@ make clean # rm .venv, build artifacts
|
||||
PASS <password> # authenticate (all networks)
|
||||
```
|
||||
|
||||
## Bouncer Commands
|
||||
|
||||
```
|
||||
/msg *bouncer HELP # list commands
|
||||
/msg *bouncer STATUS # all network states
|
||||
/msg *bouncer INFO libera # detailed network info
|
||||
/msg *bouncer UPTIME # process uptime
|
||||
/msg *bouncer NETWORKS # list networks
|
||||
/msg *bouncer CREDS # all NickServ creds
|
||||
/msg *bouncer CREDS libera # creds for one network
|
||||
```
|
||||
|
||||
## Namespacing
|
||||
|
||||
```
|
||||
@@ -124,6 +136,7 @@ src/bouncer/
|
||||
proxy.py # SOCKS5 connector (local DNS, multi-IP)
|
||||
network.py # server connection + state machine
|
||||
client.py # client session handler
|
||||
commands.py # bouncer control commands (/msg *bouncer)
|
||||
router.py # message routing + backlog trigger
|
||||
server.py # TCP listener
|
||||
backlog.py # SQLite store/replay/prune
|
||||
|
||||
@@ -196,6 +196,42 @@ autojoin = true # auto-join channels on ready (default: true)
|
||||
password = "" # IRC server password (optional, for PASS command)
|
||||
```
|
||||
|
||||
## Bouncer Commands
|
||||
|
||||
Send a PRIVMSG to `*bouncer` (or `bouncer`) from your IRC client to inspect
|
||||
and control the bouncer. All commands are case-insensitive.
|
||||
|
||||
```
|
||||
/msg *bouncer HELP
|
||||
/msg *bouncer STATUS
|
||||
/msg *bouncer INFO libera
|
||||
/msg *bouncer UPTIME
|
||||
/msg *bouncer NETWORKS
|
||||
/msg *bouncer CREDS
|
||||
/msg *bouncer CREDS libera
|
||||
```
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `HELP` | List available commands |
|
||||
| `STATUS` | Overview: state, nick, host per network |
|
||||
| `INFO <network>` | Detailed info for one network (state, server, channels, creds) |
|
||||
| `UPTIME` | Bouncer uptime since process start |
|
||||
| `NETWORKS` | List all configured networks with state |
|
||||
| `CREDS [network]` | NickServ credential status (all or per-network) |
|
||||
|
||||
Responses arrive as NOTICE messages from `*bouncer`.
|
||||
|
||||
### Example Output
|
||||
|
||||
```
|
||||
[STATUS]
|
||||
libera ready fabesune user/fabesune
|
||||
oftc ready ceraty cloaked.user
|
||||
hackint connecting (attempt 3)
|
||||
quakenet ready spetyo --
|
||||
```
|
||||
|
||||
## Stopping
|
||||
|
||||
Press `Ctrl+C` or send `SIGTERM`. The bouncer shuts down gracefully, closing
|
||||
|
||||
Reference in New Issue
Block a user