From 10990a86a4ba234f30d24a724e0a340e0930cebb Mon Sep 17 00:00:00 2001 From: Slava Date: Tue, 23 Aug 2022 02:23:27 +0300 Subject: [PATCH] finishising play func --- cogs/audio.py | 35 ++++++++++++++++++++++++----------- lib/Player.py | 7 ++++++- test2.py | 16 ---------------- 3 files changed, 30 insertions(+), 28 deletions(-) delete mode 100644 test2.py diff --git a/cogs/audio.py b/cogs/audio.py index c6e6b94..bae8854 100644 --- a/cogs/audio.py +++ b/cogs/audio.py @@ -1,7 +1,6 @@ import logging import tempfile from os import path, makedirs, rename, remove -import random from disnake.ext import commands @@ -20,30 +19,44 @@ class Audio(commands.Cog): @commands.Cog.listener() async def on_voice_state_update(self, member, before, after): from lib.Comands import read_json - role = await read_json(member.guild.id, 'tigger_role') + _role = await read_json(member.guild.id, 'tigger_role') # Read audio from DB audio_db = await read_db(member.guild.id, member.id, 'usertracks') def_audio_db = await read_db(member.guild.id, member.id, 'defaulttracks') + print(f'Trigger role: {_role}') + print(f' Memder roles {member.roles}') + print(role.id in _role for role in member.roles) + + print(f'Audio DB: {audio_db}') + print(f'Def audio DB: {def_audio_db}') + print(f' Memder is bot {member.bot}') + print(f' Before channel {before.channel}') + print('------------------------------------------') + if audio_db is not None: audio_db = audio_db.split(', ') # Need to fix creating list for i in range(len(audio_db)): audio_db[i] = f'{member.id}/{audio_db[i]}' - print(audio_db) if def_audio_db is not None: def_audio_db = def_audio_db.split(', ') from lib.Comands import list_files def_audio_ls = await list_files() if before.channel is None and not member.bot: - full_audio = [] if def_audio_db or audio_db is not None: + if def_audio_db is None: def_audio_db = [] + if audio_db is None: audio_db = [] + print(audio_db, def_audio_db) + logging.info(f'Play audio from DB') full_audio = def_audio_db + audio_db - elif role in member.roles: - full_audio = def_audio_ls - print(full_audio) - audio = random.choice(full_audio) - print(audio) - if not self.bot.voice_clients: - await play_audio(audio, self.bot, after.channel) + + if not self.bot.voice_clients: + await play_audio(full_audio, self.bot, after.channel) + elif (role.id in _role for role in member.roles): + logging.info(f'Play audio from list by role') + if not self.bot.voice_clients: + await play_audio(def_audio_ls, self.bot, after.channel) + else: + logging.info(f'Skip playing') @commands.command(name="upload_audio") async def upload_audio(self, ctx, user=None): diff --git a/lib/Player.py b/lib/Player.py index dfb1265..d989c9e 100644 --- a/lib/Player.py +++ b/lib/Player.py @@ -1,9 +1,14 @@ +import logging +import random from asyncio import sleep + from disnake import FFmpegPCMAudio -async def play_audio(audio, bot, vc): +async def play_audio(full_audio, bot, vc): if not bot.voice_clients: + audio = random.choice(full_audio) + logging.error(f'Playing: {audio}') await sleep(1) vp = await vc.connect() if not vp.is_playing(): diff --git a/test2.py b/test2.py deleted file mode 100644 index f30da69..0000000 --- a/test2.py +++ /dev/null @@ -1,16 +0,0 @@ -default_db = None -user = None - -# default_db = [1, 2, 3] -# user = [4, 5, 6] -default = [1, 4, 8, 9, 10] - - - -if default_db or user: - default_db = [] if default_db is None - user = [] if user is None - full = default_db + user -else: - full = default -print(full)