discord_bot / cogs /d.py
imgar's picture
Create d.py
c0e4962
import discord, os, setting, re, asyncio
from discord.ext import commands
from logging import getLogger
import logging
def make_log():
logger = getLogger(__name__)
logger.setLevel(logging.INFO)
streamHandler = logging.StreamHandler()
logger.addHandler(streamHandler)
return logger
log = make_log()
async def v_after(sink: discord.sinks, vc):
user_id = ""
for user_id, audio in sink.audio_data.itmes():
user_id_raw = user_id
user_id = f"<@{user_id}>"
with open("./out.mp3", "wb") as f:
f.write(audio.file.getbuffer())
class DDD(commands.Cog):
"""
봇 μƒνƒœ 파일 μž…λ‹ˆλ‹€.
"""
def __init__(self, bot):
self.bot = bot
@commands.Cog.listener()
async def on_voice_state_update(self, member, before, after):
if before.channel:
voice_client = discord.utils.get(self.bot.voice_clients, guild=member.guild.id)
if voice_client is None:
vc = await member.voice.channel.connect()
else:
vc = voice_client
if os.fath.exists("./out.mp3")
os.remove("./out.mp3")
vc.start_recording(
discord.sinks.MP3Sink(),
v_after,
vc
)
await asyncio.sleep(10)
vc.stop_recording()
# if (before.channel is None) and (after.channel is not None):
# if member == self.bot.user:
# await member.edit(deafen=True, mute=False)
if after.channel:
if (before.channel is not None) and (after.channel is not before.channel):
if ((self.bot.user.id in before.channel.voice_states.keys() and len(before.channel.voice_states) == 1) or (member == self.bot.user)):
if member != self.bot.user:
player = member.guild.voice_client
await player.disconnect()
def setup(bot):
bot.add_cog(DDD(bot))