async def resetup(self, ctx): """Re-SetUp the juke box, idk why would you wanna do that but you can, so yay""" state = GuildState(ctx.guild) jb_channel = state.jb_channel if jb_channel == None: await ctx.send("F**k U person, Use Setup Command, U Sick F**k") else: try: self.reset_phase = True state.jb_embed_id = state.jb_queue_id = state.jb_image_id = state.jb_loading_id = None async for msg in jb_channel.history(): await msg.delete() #! IMAGE image_msg = await state.jb_channel.send(self.we_tube_bg_url) state.jb_image_id = image_msg.id #! EMBED reactions = { "тПпя╕П": "play/pause", "тП╣я╕П": "stop", "тПоя╕П": "previous", "тПня╕П": "forward", "ЁЯФБ": "loop", "ЁЯФА": "shuffle" } embed = discord.Embed(title="Not Playing Anything right now.", color=discord.Colour.from_rgb( 0, 255, 255)) embed.set_image(url=self.juke_box_url) embed_msg = await state.jb_channel.send(embed=embed) state.jb_embed_id = embed_msg.id for reaction in reactions: await embed_msg.add_reaction(reaction) #! LOADING loading_msg = await state.jb_channel.send( f"0:00/0:00 - {':black_large_square: '*10}") state.jb_loading_id = loading_msg.id #! QUEUE queue_msg = await state.jb_channel.send("__QUEUE LIST__") state.jb_queue_id = queue_msg.id await state.jb_channel.send("Done") self.reset_phase = False except: pass
async def juke_update(self): for guild in self.client.guilds: state = GuildState(guild) voice = get(self.client.voice_clients, guild=guild) if state.jb_channel and voice: tstate = TempState(guild) queue = [x for x in tstate.queue if type(x) != str] if state.jb_embed_id: embed_msg = await state.jb_channel.fetch_message( state.jb_embed_id) if embed_msg: if tstate.old_queue_embed != tstate.queue: tstate.old_queue_embed = tstate.queue if queue == []: embed = discord.Embed( title="Not Playing Anything right now.", color=discord.Colour.from_rgb(0, 255, 255)) embed.set_image(url=self.juke_box_url) await embed_msg.edit(embed=embed) else: vid = queue[0] embed = discord.Embed( title=vid.title, color=discord.Colour.from_rgb(0, 255, 255)) embed.set_image(url=vid.thumbnail) await embed_msg.edit(embed=embed) else: state.jb_embed_id = None if state.jb_queue_id: queue_msg = await state.jb_channel.fetch_message( state.jb_queue_id) if queue_msg: if tstate.old_queue_queue != tstate.queue: tstate.old_queue_queue = tstate.queue if queue == []: await queue_msg.edit(content="__QUEUE LIST__") else: string = "__QUEUE__\n" for index in range(len(tstate.queue)): i = tstate.queue[index] ostring = string[:] string += f"{index+1}. {i.title} ({i.duration}) - Requested by `{i.requester}`\n" if len(string) > 2000: string = ostring break await queue_msg.edit(content=string) else: state.jb_queue_id = None if state.jb_loading_id: loading_msg = await state.jb_channel.fetch_message( state.jb_loading_id) if loading_msg: if voice.is_playing(): if queue != []: vid = queue[0] def two_dig(number): if number < 10: return f"0{number}" else: return str(number) if vid.duration.count(":") == 1: ntime = f"{tstate.time//60}:{two_dig(tstate.time%60)}" else: ntime = f"{tstate.time//3600}:{two_dig(tstate.time%3600//60)}:{two_dig(tstate.time//60)}" ntime = str(timedelta(seconds=tstate.time)) amt = int(tstate.time / vid.seconds * 10) if vid.seconds != 0 else 0 ntime = ntime.split(":") for i in range(3 - len(vid.duration.split(":"))): ntime.pop(i) ntime = ":".join(ntime) await loading_msg.edit( content= f"{ntime}/{vid.duration} {':black_square_button:'*amt +':black_large_square:'*(10-amt)}" ) else: await loading_msg.edit( content= f"0:00/0:00 - {':black_large_square:'*10}") else: state.jb_loading_id = None