index
:
senator-sperma
main
Very big discord bot.
about
summary
refs
log
tree
commit
diff
stats
log msg
author
committer
range
path:
root
/
src
(
follow
)
Commit message (
Expand
)
Author
Age
Files
Lines
*
revert required permissions
main
salmonik
27 hours
4
-39
/
+58
*
events: track voice channel moves
salmonik
4 days
1
-0
/
+16
*
tts: initialize piper exactly once
salmonik
4 days
1
-42
/
+39
*
music: keep preparation out of the guild lock and requeue failed connects
salmonik
4 days
1
-99
/
+119
*
docs: sync with current behavior
salmonik
4 days
1
-4
/
+4
*
config: harden the shared temp directory
salmonik
4 days
3
-8
/
+65
*
leaderboard: use competition ranks consistently
salmonik
4 days
1
-1
/
+8
*
web: percent-encode UTF-8 query bytes
salmonik
4 days
1
-7
/
+22
*
autocomplete: key results by extension filter and reject the placeholder
salmonik
4 days
3
-7
/
+27
*
cron: validate expressions and allocate ids atomically
salmonik
4 days
4
-19
/
+19
*
music: reject live streams on the yt-dlp path
salmonik
4 days
2
-0
/
+9
*
music: decode compressed playback without a temp file
salmonik
4 days
2
-12
/
+34
*
tts: attach the generated WAV without a temp file
salmonik
4 days
1
-11
/
+3
*
qr: cap image dimensions and allocation
salmonik
4 days
1
-2
/
+12
*
downloads: cap yt-dlp media size
salmonik
4 days
2
-0
/
+27
*
net: drop unused import
salmonik
4 days
1
-1
/
+1
*
config: make voice recording opt-in
salmonik
4 days
1
-4
/
+4
*
net: block private and link-local URLs
salmonik
4 days
7
-1
/
+150
*
music: announce a directly started track once
salmonik
4 days
1
-8
/
+10
*
cron: simplify the first-fire lookup
salmonik
4 days
1
-8
/
+1
*
recording: reject a zero-length window
salmonik
4 days
2
-2
/
+16
*
cron/triggers: keep pre-scoping rows manageable
salmonik
4 days
2
-8
/
+15
*
tts: run piper loading and synthesis on blocking threads
salmonik
4 days
1
-16
/
+28
*
processes: add timeouts and keep decoding off the runtime
salmonik
4 days
4
-29
/
+53
*
http: add connect and request timeouts
salmonik
4 days
5
-3
/
+21
*
tts: bound the audio cache and request length
salmonik
4 days
1
-5
/
+86
*
autocomplete: bound the in-memory caches
salmonik
4 days
1
-6
/
+24
*
events: never join or move voice just to play TTS
salmonik
4 days
1
-8
/
+16
*
recording: keep one buffer per guild
salmonik
4 days
3
-34
/
+41
*
triggers: scope groups to the guild that created them
salmonik
4 days
4
-24
/
+64
*
cron: scope jobs to the guild that created them
salmonik
4 days
2
-19
/
+47
*
commands: gate admin, trigger, cron and recording behind permissions
salmonik
4 days
4
-14
/
+18
*
utilities: sanitize filenames and isolate temp operations
salmonik
4 days
1
-48
/
+105
*
yt-dlp: ignore configs and stop option injection
salmonik
4 days
2
-3
/
+16
*
copyparty: never send the password to foreign hosts
salmonik
4 days
4
-28
/
+165
*
say: do not abort if the ephemeral ack is already gone
salmonik
5 days
1
-1
/
+3
*
cron: keep scheduled audio silent
salmonik
5 days
3
-3
/
+12
*
say: post text as a normal message after an invisible ack
salmonik
5 days
1
-7
/
+15
*
docker: bake espeak-ng data for Piper TTS
salmonik
11 days
1
-2
/
+3
*
contextual play should add to the last in the queue
salmonik
11 days
1
-8
/
+6
*
music: group playback commands under /music
salmonik
11 days
2
-22
/
+45
*
music: add per-guild queue with now/next/last, skip and queue
salmonik
11 days
6
-269
/
+790
*
silence songbird udp_rx decode noise
salmonik
2026-09-09
1
-1
/
+6
*
record: 2x gain on mp3 encode
salmonik
2026-09-09
1
-0
/
+5
*
test recorder ring semantics; extract mix_tick
salmonik
2026-09-09
1
-50
/
+187
*
wire recording into voice manager, config, events, /record command
salmonik
2026-09-09
6
-4
/
+155
*
first draft
salmonik
2026-09-09
2
-0
/
+410
*
/grajcuj plays video-like extensions too
salmonik
2026-09-09
2
-9
/
+9
*
message-contextual /grajcuj
salmonik
2026-09-09
3
-13
/
+58
*
assistant replies to the message
salmonik
2026-09-09
3
-4
/
+4
[next]