| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
Graduate grajcuj/skip/queue/stop/join into the /music parent and drop the
top-level names. On startup, reconcile global slash commands and delete
any that are no longer registered, since Discord otherwise keeps stale
commands after a rename or move.
Docs updated for the new command layout and queue semantics.
|
| |
|
|
|
|
|
|
|
|
| |
Tracks are queued in memory per guild, defaulting to append (last).
Playback auto-advances on TrackEvent::End/Error with a per-track token
so manual stops and skips cannot double-advance. /music queue shows the
current track followed by pending items. /stop clears the queue.
Cron audio now goes through the same MusicState instead of poking the
track-handle map directly.
|
| |
|
|
| |
Signed-off-by: salmonik <salmonik@tuta.io>
|
| | |
|
| | |
|
| |
|
|
|
| |
Not saving full URL
Not using autocompletion content, just label
|
| |
|
|
|
|
|
|
|
|
|
| |
- New src/tts.rs: centralize TTS in synthesize(config, http_client, text)
Piper subprocess primary, Google Translate fallback on error/missing
- TTS_MODEL_PATH/TTS_VOICE env config (defaults to pl_PL-bass-high)
- Fix Unknown interaction errors: spawn play_tts_in_channel in background
so voice-state TTS no longer blocks the shard event loop (3s Discord limit)
- Best-effort confirmation replies in /tts to prevent error cascade
- Custom on_error handler: graceful interaction-expired error handling
- Comprehensive tracing logging (engine, model, duration, stderr)
|
| | |
|
| | |
|
|
|
Signed-off-by: salmonik <raisersoft@proton.me>
|