async def _cmd_show_settings(self, **kwargs): server = kwargs['Server'] cfg = self.Settings.get_cfg(server) if not cfg: Raise.error(21) # 'No setting saved for your server' message = 'Setting saved for server {}\n'.format(server) message += '\n'.join(key + ' : ' + str(value) for key, value in cfg.items()) await self.say(kwargs['Channel'], message)
async def _cmd_now(self, **kwargs): player = self.Player.get_player(kwargs['Server']) if player: minutes = player.duration // 60 seconds = player.duration % 60 message = 'Now plaing:\n\t"{}"\t({}:{}).\nUploaded by:\n\t"{}"\nUrl:\n\t{}' message.format(player.title, minutes, seconds, player.uploader, player.url) await self.say(kwargs['Channel'], message) else: Raise.error(4) # 'Nothing is being played'
async def ex(self, msg_arr, ctx): if msg_arr: command = self.commands_arr.get(msg_arr[0].lower()) if not command: Raise.error(17) # 'No such command' command = '_cmd_' + command args = msg_arr[1:] await getattr(self, command)(*args, **ctx) else: Raise.error( 19 ) # 'What are you hesitant.. Command me dont be a p&&sy, Meow!'
async def _cmd_connect(self, *args, **kwargs): channel_name = ' '.join(args) if channel_name: if not await self._connect_by_name(channel_name, **kwargs): Raise.error(9) # 'I\'m already here, dont you see me?' await self.say(kwargs['Channel'], 'It\'s been a long way, but I did it') else: if not await self._connect_by_author(**kwargs): Raise.error( 18) # 'I\'m already with you, my blind kitten, MEOW!' await self.say(kwargs['Channel'], 'I\'m here ***Summoner***!')
async def _cmd_play(self, *args, **kwargs): if args: url = args[0] if is_youtube_link(url): if not self.Client.is_voice_connected(kwargs['Server']): await self._connect_by_author(**kwargs) await self._start_solo_song(url, **kwargs) else: Raise.error(5) # 'Not valid link' else: Raise.error( 12 ) # 'Enter this f*&*ing song url here. Don\'t make me nervous, you mongol kid.'
async def _cmd_resume(self, **kwargs): player = self.Player.get_player(kwargs['Server']) if player: if player.is_done(): Raise.error(13) # 'Your song already ended' elif player.is_playing(): Raise.error( 14) # 'The song is already playing, dont you hear?' else: player.resume() else: Raise.error(4) # 'Nothing is being played'
async def _cmd_pause(self, **kwargs): player = self.Player.get_player(kwargs['Server']) if player: if player.is_done(): Raise.error(13) # 'Your song already ended' elif not player.is_playing(): Raise.error( 15 ) # 'The song is already paused, dont you hear this quality silence?' else: player.pause() else: Raise.error(4) # 'Nothing is being played'
async def _cmd_volume(self, *args, **kwargs): if args: try: v = float(args[0]) except: Raise.error(7) # 'Not valid volume value' else: if v > 2: Raise.error(11) # 'RIP ears' v = 2 elif v < 0: Raise.error(16) # 'Is there life below 0?' v = 0 server = kwargs['Server'] player = self.Player.get_player(server) self.Settings.set_attr(server, 'Volume', v) if player: player.volume = v else: Raise.error(10) # 'Invalid params, just like you'
async def onlyonserver_wrap(self, *args, **kwargs): if not kwargs['Server']: Raise.error(22) await func(self, *args, **kwargs)
async def _cmd_stop(self, **kwargs): player = self.Player.get_player(kwargs['Server']) if player: player.stop() else: Raise.error(4) # 'Nothing is being played'
async def _connect_by_name(self, channel_name, **kwargs): server = kwargs['Server'] channel = self.Connect.find_voice_channel(server, channel_name) if not channel: Raise.error(8) # 'Create such a channel first' return not await self.Connect.connect(server, channel)
async def _connect_by_author(self, **kwargs): author = kwargs['Author'] if not author.voice_channel: Raise.error(1) # 'You\'re not on the voice channel' return await self.Connect.connect(kwargs['Server'], author.voice_channel)
async def _cmd_disconnect(self, **kwargs): if not await self.Connect.leave(kwargs['Server']): Raise.error(2) # 'I`m already homeless :('
async def _cmd_invite(self, **kwargs): if self.Client.InviteLink: await self.say(kwargs['Channel'], self.Client.InviteLink) else: Raise.error(20) # 'No invite link was provided'