Implemented experimental real production ready voice chat, relegated old flow to voice debug mode. New Web UI panel for Voice Chat.
This commit is contained in:
32
bot/bot.py
32
bot/bot.py
@@ -752,6 +752,38 @@ async def on_member_join(member):
|
||||
"""Track member joins for autonomous V2 system"""
|
||||
autonomous_member_join(member)
|
||||
|
||||
@globals.client.event
|
||||
async def on_voice_state_update(member: discord.Member, before: discord.VoiceState, after: discord.VoiceState):
|
||||
"""Track voice channel join/leave for voice call management."""
|
||||
from utils.voice_manager import VoiceSessionManager
|
||||
|
||||
session_manager = VoiceSessionManager()
|
||||
if not session_manager.active_session:
|
||||
return
|
||||
|
||||
# Check if this is our voice channel
|
||||
if before.channel != session_manager.active_session.voice_channel and \
|
||||
after.channel != session_manager.active_session.voice_channel:
|
||||
return
|
||||
|
||||
# User joined our voice channel
|
||||
if before.channel != after.channel and after.channel == session_manager.active_session.voice_channel:
|
||||
logger.info(f"👤 {member.name} joined voice channel")
|
||||
await session_manager.active_session.on_user_join(member.id)
|
||||
|
||||
# Auto-start listening if this is a voice call
|
||||
if session_manager.active_session.call_user_id == member.id:
|
||||
await session_manager.active_session.start_listening(member)
|
||||
|
||||
# User left our voice channel
|
||||
elif before.channel == session_manager.active_session.voice_channel and \
|
||||
after.channel != before.channel:
|
||||
logger.info(f"👤 {member.name} left voice channel")
|
||||
await session_manager.active_session.on_user_leave(member.id)
|
||||
|
||||
# Stop listening to this user
|
||||
await session_manager.active_session.stop_listening(member.id)
|
||||
|
||||
def start_api():
|
||||
# Set log_level to "critical" to silence uvicorn's access logs
|
||||
# Our custom api.requests middleware handles HTTP logging with better formatting and filtering
|
||||
|
||||
Reference in New Issue
Block a user