<feed xmlns='http://www.w3.org/2005/Atom'>
<title>senator-sperma/cogs/music/audio_playback.py, branch main</title>
<subtitle>Very big discord bot.
</subtitle>
<id>https://git.2137697.xyz/senator-sperma/atom?h=main</id>
<link rel='self' href='https://git.2137697.xyz/senator-sperma/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/'/>
<updated>2026-05-20T14:40:28Z</updated>
<entry>
<title>Redirect play_commands imports to cogs.voice, remove audio_playback shim</title>
<updated>2026-05-20T14:40:28Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-05-20T14:40:28Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=bdf93cbc700f6baa55a283300d5bd3d2e958bc69'/>
<id>urn:sha1:bdf93cbc700f6baa55a283300d5bd3d2e958bc69</id>
<content type='text'>
- 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)
</content>
</entry>
<entry>
<title>Fold AudioPlaybackManager into VoiceManager + Future-based play</title>
<updated>2026-05-20T13:36:17Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-05-20T13:36:17Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=fbdfad855ab9a1233e286806439397729ba21226'/>
<id>urn:sha1:fbdfad855ab9a1233e286806439397729ba21226</id>
<content type='text'>
- 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
</content>
</entry>
<entry>
<title>health checks for vc</title>
<updated>2026-05-20T13:21:37Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-05-20T13:21:37Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=1f37a67c53233dc8e814d22620e1ff8a6fdb14b6'/>
<id>urn:sha1:1f37a67c53233dc8e814d22620e1ff8a6fdb14b6</id>
<content type='text'>
Signed-off-by: salmonik &lt;raisersoft@proton.me&gt;
</content>
</entry>
<entry>
<title>damn short files</title>
<updated>2026-04-29T12:43:08Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-29T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=0e4c707b2b11b4ec70a000e7a9d3108030fc0c61'/>
<id>urn:sha1:0e4c707b2b11b4ec70a000e7a9d3108030fc0c61</id>
<content type='text'>
Signed-off-by: salmonik &lt;raisersoft@proton.me&gt;
</content>
</entry>
<entry>
<title>uploader.py and voice fixes</title>
<updated>2026-04-20T13:05:51Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-20T13:05:51Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=c687d9fa1d89fef8ddc7150d1487dfef07d11abb'/>
<id>urn:sha1:c687d9fa1d89fef8ddc7150d1487dfef07d11abb</id>
<content type='text'>
Signed-off-by: salmonik &lt;raisersoft@proton.me&gt;
</content>
</entry>
<entry>
<title>refactor: simplify cogs, reduce complexity</title>
<updated>2026-04-19T13:43:32Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-19T13:43:32Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=1dcdbe3cf03ff16b3ff2e2e6d572e0b3c72c18c0'/>
<id>urn:sha1:1dcdbe3cf03ff16b3ff2e2e6d572e0b3c72c18c0</id>
<content type='text'>
- Remove unused imports and dead code
- Cleaner error handling
- Reduce cognitive complexity
</content>
</entry>
<entry>
<title>refactor + preparing bot for public use</title>
<updated>2026-04-17T22:24:50Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-17T22:24:50Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=a2b5b10625126b7e98643af9fe40569c9e004047'/>
<id>urn:sha1:a2b5b10625126b7e98643af9fe40569c9e004047</id>
<content type='text'>
Signed-off-by: salmonik &lt;raisersoft@proton.me&gt;
</content>
</entry>
<entry>
<title>make voice great again</title>
<updated>2026-04-17T13:36:12Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-17T13:36:12Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=d135265798da8c2698f363237f4cb74b682f3f9e'/>
<id>urn:sha1:d135265798da8c2698f363237f4cb74b682f3f9e</id>
<content type='text'>
Signed-off-by: salmonik &lt;raisersoft@proton.me&gt;
</content>
</entry>
<entry>
<title>fix voice for the 9th time today, still on the way</title>
<updated>2026-04-10T13:08:03Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-04-10T13:08:03Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=c27338b0ce8e44c2a7a18ca32181a63bd94abc13'/>
<id>urn:sha1:c27338b0ce8e44c2a7a18ca32181a63bd94abc13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>make it work + visual changes</title>
<updated>2026-03-27T23:17:18Z</updated>
<author>
<name>salmonik</name>
<email>raisersoft@proton.me</email>
</author>
<published>2026-03-27T23:17:18Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/senator-sperma/commit/?id=18ea01dc33cf5ef8402f4ef9193801bf7288e106'/>
<id>urn:sha1:18ea01dc33cf5ef8402f4ef9193801bf7288e106</id>
<content type='text'>
</content>
</entry>
</feed>
