async def stats_games(self, message, user_id): member = message.server.get_member(str(user_id)) if member is None: return # Flush current tracking self.update_game(member.id, member.game) games = self.top_user_games(user_id) top = [(game.name, game.duration) for game in games[:10]] if games: since = min(map(lambda g: g.created_at, games)) since_days = int((time() - since.timestamp()) / (3600 * 24)) response = ( '{} has played **{}** different games in the last **{}** days ' 'for a total of **{}** seconds\ntop 10:\n{}' ).format( f.mention(user_id), len(games), since_days, sum(map(lambda g: g.duration, games)), f.code_block(f.format_sql_rows(top)) ) else: response = '{} has not played any games yet'.format(f.mention(user_id)) await self.send_message( message.channel, response, delete_after = 25 )
async def stats_games(self, message, user_id): member = message.server.get_member(str(user_id)) if member is None: return # Flush current tracking self.update_game(member.id, member.game) games = self.top_user_games(user_id) top = [(game.name, game.duration) for game in games[:10]] if games: since = min(map(lambda g: g.created_at, games)) since_days = int((time() - since.timestamp()) / (3600 * 24)) response = ( '{} has played **{}** different games in the last **{}** days ' 'for a total of **{}** seconds\ntop 10:\n{}').format( f.mention(user_id), len(games), since_days, sum(map(lambda g: g.duration, games)), f.code_block(f.format_sql_rows(top))) else: response = '{} has not played any games yet'.format( f.mention(user_id)) await self.send_message(message.channel, response, delete_after=25)
async def stats_games_top(self, message, count=10): data = self.top_games(message.server, count) if data: await self.send_message( message.channel, 'Most **{}** games played on this server\n{}'.format( len(data), f.code_block(f.format_sql_rows(data))), delete_after=25)
async def stats_games_top(self, message, count=10): data = self.top_games(message.server, count) if data: await self.send_message( message.channel, 'Most **{}** games played on this server\n{}' .format(len(data), f.code_block(f.format_sql_rows(data))), delete_after = 25 )
async def channels(self, message): channels = [ (channel.name, channel.id) for channel in message.server.channels ] await self.send_message( message.channel, f.code_block(f.format_sql_rows(channels)), delete_after = 30 )
async def sql_exec(self, message, snippet): if snippet.language.lower() != 'sql': return try: with self.transaction() as trans: trans.execute(snippet.code) rows = trans.fetchall() self.debug(rows) if rows: text = f.code_block(f.format_sql_rows(rows)) else: text = 'Request executed successfully\n`no output`' await self.send_message(message.channel, text) except Exception as e: await self.send_message(message.channel, '```\n{}\n```'.format(e))