async def remove(ctx, arg): server = get_server(ctx) if arg == 'all': server.playlist.deleteAll() if server.voice: server.voice.stop() await ctx.send(embed=MsgEmbed.info('Удалил весь плейлист :fire:')) return if not arg.isdigit(): raise commands.MissingRequiredArgument() else: pos = int(arg) if not 0 <= pos < server.playlist.getLength(): await ctx.send(embed=MsgEmbed.warning( 'Как может в казино быть колода разложена в другом порядке?! Ты чё, бредишь, что ли?! Ёбаный твой рот, а!..' )) return mi = server.playlist.getByPosition(pos) playlist, voice = server.playlist, server.voice if pos == playlist.getPosition() and voice: voice.stop() if playlist.deleteByPosition(pos): await ctx.send( embed=MsgEmbed.info(f'Удалил: {mi.artist} - {mi.title} :fire:')) else: await ctx.send(embed=MsgEmbed.error('Ошибка удаления'))
async def queue(ctx): server = get_server(ctx) if server.playlist.getLength() == 0: await ctx.send(embed=MsgEmbed.info('Плейлист пуст')) else: mi_list = server.playlist.getAll() _list = [ f'{i} : {mi.artist} - {mi.title}' for i, mi in enumerate(mi_list) ] pos = server.playlist.getPosition() _list[pos] = f'**{_list[pos]}**' emb = MsgEmbed.info('') emb.set_author(name='текущий плейлист', icon_url=icons['playlist']) await send_long_list(ctx, _list, emb, MsgEmbed.info(''))
async def ask_user(ctx, title: str, choice: List[str], *, icon_url: str = icons['list'], timeout=10, start_index=0, step_index=1) -> Optional[int]: choice = [f'{i + start_index}. {x}' for i, x in enumerate(choice)] emb = MsgEmbed.info('') emb.set_author(name=title, icon_url=icon_url) await send_long_list(ctx, choice, emb, MsgEmbed.info('')) try: msg = await client.wait_for('message', check=get_message_check(ctx.author), timeout=timeout) except asyncio.exceptions.TimeoutError: await ctx.send(embed=MsgEmbed.warning('Кто не успел - тот опоздал')) return None else: return int(msg.content)
async def add_all(): added_songs, songs_count = 0, len(mi_list) message = await ctx.send(embed=MsgEmbed.info('Загрузка плейлиста...')) for mi in mi_list: if server.playlist.add(mi): added_songs += 1 if added_songs == songs_count: await message.edit( embed=MsgEmbed.ok('Все песни успешно добавлены!')) return True elif added_songs == 0: await message.edit( embed=MsgEmbed.warning('Ни одна песня не была добавлена!')) return False else: await message.edit(embed=MsgEmbed.warning( f'Добавлено: {added_songs}/{songs_count}')) return True
def get_mi_embed(mi: MusicInfo) -> discord.Embed: emb = MsgEmbed.info('') emb.set_author(name=f'{mi.artist} - {mi.title} [ {mi.time} сек ]', icon_url=mi.image_url) return emb
async def about(ctx): await ctx.send(embed=MsgEmbed.info(about_docs)) pass