feat: playlist shuffle, lazy resolution, TTS ducking, kept repair
Some checks failed
Some checks failed
Music: - #random URL fragment shuffles playlist tracks before enqueuing - Lazy playlist resolution: first 10 tracks resolve immediately, remaining are fetched in a background task - !kept repair re-downloads kept tracks with missing local files - !kept shows [MISSING] marker for tracks without local files - TTS ducking: music ducks when merlin speaks via voice peer, smooth restore after TTS finishes Performance (from profiling): - Connection pool: preload_content=True for SOCKS connection reuse - Pool tuning: 30 pools / 8 connections (up from 20/4) - _PooledResponse wrapper for stdlib-compatible read interface - Iterative _extract_videos (replace 51K-deep recursion with stack) - proxy=False for local SearXNG Voice + multi-bot: - Per-bot voice config lookup ([<username>.voice] in TOML) - Mute detection: skip duck silence when all users muted - Autoplay shuffle deck (no repeats until full cycle) - Seek clamp to track duration (prevent seek-past-end stall) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -69,6 +69,19 @@ Code, plugins, config, and data are bind-mounted. No rebuild needed for
|
||||
code changes -- restart the container or use `!reload` for plugins.
|
||||
Rebuild only when `requirements.txt` or `Containerfile` change.
|
||||
|
||||
## Profiling
|
||||
|
||||
```bash
|
||||
tools/profile # Top 30 by cumulative time
|
||||
tools/profile -s tottime -n 20 # Top 20 by total time
|
||||
tools/profile -f mumble # Filter to mumble functions
|
||||
tools/profile -c -f stream_audio # Who calls stream_audio
|
||||
tools/profile data/old.prof # Analyze a specific file
|
||||
```
|
||||
|
||||
Sort keys: `cumtime`, `tottime`, `calls`, `name`.
|
||||
Profile data written on graceful shutdown when bot runs with `--cprofile`.
|
||||
|
||||
## Bot Commands
|
||||
|
||||
```
|
||||
@@ -569,6 +582,7 @@ HTML stripped on receive, escaped on send. IRC-only commands are no-ops.
|
||||
!keep # Keep current file + save metadata
|
||||
!kept # List kept files with metadata
|
||||
!kept clear # Delete all kept files + metadata
|
||||
!kept repair # Re-download missing kept files
|
||||
!duck # Show ducking status
|
||||
!duck on # Enable voice ducking
|
||||
!duck off # Disable voice ducking
|
||||
|
||||
Reference in New Issue
Block a user