From 97a26ec4e64a98a24dad7969337d2569339db9a7 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 01:33:33 +0100 Subject: docs: sync with current behavior --- README.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index a3da394..f314793 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The following binaries must be available on `PATH`: - `imagemagick` (`magick`) — image compression and conversion for `/compress` and `/convert` - `qalc` (Qalculate) — used by `/math` to evaluate expressions - `yt-dlp` (optional) — used by `/download` -- `piper` (optional) — local TTS for `/tts` and `/senator ... tts_vc`; falls back to Google Translate TTS if unavailable +- `piper` model files (optional) — local TTS for `/tts` and `/senator ... tts_vc`; TTS commands fail when unset Unlike the Python version, QR encode/decode is handled by the pure-Rust `qrcode`/`rxing` crates — no `zbar` system library required. @@ -48,8 +48,8 @@ created automatically on first run. For local TTS, set `TTS_MODEL_PATH` to a Piper `.onnx` model file (or a directory of models, in which case `TTS_VOICE` selects the model, defaulting to -`pl_PL-bass-high`). When `TTS_MODEL_PATH` is unset or Piper is unavailable, the -bot falls back to Google Translate TTS. +`pl_PL-bass-high`). There is no external TTS fallback: TTS commands fail when +the model is missing. ### 5. Run @@ -132,7 +132,7 @@ servers. - `/music join` — join the caller's voice channel ### TTS -- `/tts` — local Piper TTS (Polish, Google Translate fallback), sent as a file or played in voice +- `/tts` — local Piper TTS (Polish), sent as a file or played in voice ### Search & Web - `/web` — DuckDuckGo HTML scrape (soon to use 4get) @@ -148,6 +148,8 @@ servers. - `/say` — repeat the given text as the bot - `/math` — evaluate an ASCII math expression through `qalc` - `/qr generowanie` / `/qr dekodowanie` — QR encode / decode +- `/record` — upload the last recording window (requires `MANAGE_GUILD`) +- `/leaderboard` — `me`, `messages`, `active`, `afk`, `total` ### Triggers - `/trigger create` — new trigger group @@ -168,6 +170,7 @@ servers. ### Message Context Menu - "Wyślij załączniki" (right-click message) — upload attachments to Copyparty - "kompresja" (right-click message) — compress all attachments +- "Pobierz z linku" (right-click message) — download every URL in the message ## Architecture @@ -181,10 +184,12 @@ in-memory trigger cache, autocomplete cache, and per-guild music queue. - `src/copyparty/` — Copyparty search/upload client - `src/openrouter/` — OpenRouter chat client - `src/database/` — sqlx pool, migrations, query helpers (6 tables) -- `src/voice/` — `VoiceManager`, mp3 → songbird input +- `src/voice/` — `VoiceManager`, ffmpeg/symphonia → songbird input +- `src/net.rs` — blocks private/link-local hosts for user-supplied URLs +- `src/recording/` — per-guild rolling PCM buffer for `/record` - `src/events/` — `handle_ready`, voice-state, message (trigger matching) -- `src/tasks/` — 30s cron scheduler poll loop +- `src/tasks/` — 60s cron scheduler poll loop - `src/lang.rs` — user-facing Polish strings -All temporary files go through `crate::config::TEMP_PATH` -(`/tmp/senator_sperma`). +All temporary files go through `crate::config::temp_path()` +(`$TMPDIR/senator_sperma`, created with mode `0700` at startup). -- cgit v1.2.3