diff options
| author | salmonik <salmonik@tuta.io> | 2026-11-04 01:35:09 +0100 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-11-04 01:35:09 +0100 |
| commit | 05f290e8f8954bbd975185af3660493b409aed2b (patch) | |
| tree | fd56aa65a4bea5e62dcffa9e5100c5b669e8a8eb | |
| parent | tts: initialize piper exactly once (diff) | |
| download | senator-sperma-05f290e8f8954bbd975185af3660493b409aed2b.tar.gz senator-sperma-05f290e8f8954bbd975185af3660493b409aed2b.zip | |
events: track voice channel moves
| -rw-r--r-- | src/events/mod.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/events/mod.rs b/src/events/mod.rs index 79ebb0f..fccb5ac 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs | |||
| @@ -245,6 +245,22 @@ pub async fn handle_voice_state_update( | |||
| 245 | tts_text = Some(lang::fmt_ev_left(&display_name)); | 245 | tts_text = Some(lang::fmt_ev_left(&display_name)); |
| 246 | tts_channel = Some(ocid); | 246 | tts_channel = Some(ocid); |
| 247 | } | 247 | } |
| 248 | // ── CHANNEL MOVE ── | ||
| 249 | else if let (Some(old_cid), Some(new_cid)) = (old_channel, new_channel) | ||
| 250 | && old_cid != new_cid | ||
| 251 | { | ||
| 252 | va.channel_name = guild_id | ||
| 253 | .and_then(|gid| ctx.cache.guild(gid)) | ||
| 254 | .and_then(|g| g.channels.get(&new_cid).map(|c| c.name.clone())) | ||
| 255 | .unwrap_or_default(); | ||
| 256 | if va.join_time > 0.0 { | ||
| 257 | database::upsert_voice_activity(&data.db_pool, &va).await?; | ||
| 258 | } | ||
| 259 | info!( | ||
| 260 | "User {user_id} moved voice channel: {old_cid} -> {new_cid} ({})", | ||
| 261 | va.channel_name | ||
| 262 | ); | ||
| 263 | } | ||
| 248 | // ── AFK STATE CHANGE (only for tracked users already in channel) ── | 264 | // ── AFK STATE CHANGE (only for tracked users already in channel) ── |
| 249 | else if new_channel.is_some() && va.join_time > 0.0 { | 265 | else if new_channel.is_some() && va.join_time > 0.0 { |
| 250 | let is_afk = new.self_mute || new.self_deaf; | 266 | let is_afk = new.self_mute || new.self_deaf; |
