| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
|
|
|
| |
- play_tts: run is_voice_client_alive() check regardless of is_playing()
state. After a gateway restart, is_playing() can return True on a
dead client, which previously bypassed the stale-detection guard
(was: 'if is_connected and not is_playing')
|
| |
|
|
|
|
|
|
|
|
| |
- _ensure_voice_client: call _remove_voice_client() when cleaning up stale
or disconnected clients so the fresh connect doesn't hang for 30s
waiting for Discord's stale state to clear
- Reduce connect timeout from 30s to 10s for faster failure recovery
- vclogs.py: use a unique temp filename per TTS call (include timestamp)
instead of relying on PID alone, preventing concurrent TTS calls from
clobbering each other's files
|
| |
|
|
|
|
|
|
| |
- Update play_commands.py to import get_voice_manager from cogs.voice
instead of going through the audio_playback.py re-export shim
- Delete the audio_playback.py shim file entirely
- Update test_music_audio.py imports to use cogs.voice.VoiceManager
- Delete PLAN_VOICE_REFACTOR.md (plan is complete)
|
| |
|
|
|
|
|
|
|
| |
- cron.py: replace while-is_playing polling with VoiceManager.play_source()
- vclogs.py: replace while-is_playing polling with VoiceManager.play_source()
- stop.py: use VoiceManager.disconnect() instead of raw voice_client
- join.py: use VoiceManager.connect() instead of raw channel.connect()
- voice.py: add back join_by_channel_id() convenience method
- Tests: update for new VoiceManager method names and signatures
|
| |
|
|
|
|
|
|
| |
- tts.py _handle_voice_output: add missing voice_client.play() call
via VoiceManager.play_source() — was creating the audio source
and then doing nothing
- ai.py: use VoiceManager.play_source() instead of passing an
FFmpegPCMAudio object to play() which expects a string path
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Move all static helpers (validate_voice_channel, prepare_source,
prepare_audio_source, etc.) from AudioPlaybackManager into VoiceManager
- Add _play_await() using asyncio.Future + after callback, replacing
all polling patterns and the 5-second sleep hack
- Add play() high-level method and play_source() for pre-made sources
- Unify connection logic under single _ensure_voice_client()
- Remove dead Voice cog class and its setup()
- Gut audio_playback.py to a re-export shim
- Remove cogs.voice from main.py extensions
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
|
|
|
|
|
|
| |
- Use context managers for sqlite3 connections in cron, vclogs, and database utils
- Add URL helper utility for yt-dlp with clean_url_for_ytdlp function
- Add slow integration test markers and new integration test files
- Fix test imports to use conftest directly instead of tests.conftest
- Improve downloader error handling and use COPYPARTY_URL_UPLOAD env var
- Update pytest.ini with slow test markers and warning filters
- Document slow test usage in AGENTS.md
|
| |
|
|
|
|
| |
but primarly, use db for all data.
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- Remove unused imports and dead code
- Cleaner error handling
- Reduce cognitive complexity
|
| |
|
|
|
|
|
| |
- Add 15 tests for cron.py covering load/save, task management
- Improve existing test assertions and coverage
- Remove flaky plot tests
- 93 tests now pass (up from 78)
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |
|
|
| |
Signed-off-by: salmonik <raisersoft@proton.me>
|
| |\ |
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|