From 17121f0d20cfee9fae1fe96f817582cb529b83e0 Mon Sep 17 00:00:00 2001 From: phxntxm Date: Sun, 16 Oct 2016 00:27:07 -0500 Subject: [PATCH] Added an exception, for if the files aren't found for the banner creation --- cogs/overwatch.py | 5 ++--- cogs/stats.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/cogs/overwatch.py b/cogs/overwatch.py index a42b164..bcaa858 100644 --- a/cogs/overwatch.py +++ b/cogs/overwatch.py @@ -86,11 +86,10 @@ class Overwatch: if data['general_stats'].get('eliminations') and data['general_stats'].get('deaths'): output_data["Kill Death Ratio"] = "{0:.2f}".format( data['general_stats'].get('eliminations') / data['general_stats'].get('deaths')) - - if ctx.message.channel.is_private or ctx.message.channel.permissions_for(ctx.message.server.me).attach_files: + try: banner = await images.create_banner(user, "Overwatch", output_data) await self.bot.upload(banner) - else: + except (FileNotFoundError, discord.Forbidden): fmt = "\n".join("{}: {}".format(k, r) for k, r in output_data) await self.bot.say("Overwatch stats for {}: ```py\n{}```".format(user.name, fmt)) diff --git a/cogs/stats.py b/cogs/stats.py index 945618d..f7c9bcb 100644 --- a/cogs/stats.py +++ b/cogs/stats.py @@ -54,14 +54,14 @@ class Stats: member_usage = command_stats['member_usage'].get(ctx.message.author.id, 0) server_usage = command_stats['server_usage'].get(ctx.message.server.id, 0) - if ctx.message.channel.permissions_for(ctx.message.server.me).attach_files: + try: data = {"Command Name": cmd.qualified_name, "Total Usage": total_usage, "Your Usage": member_usage, "This Server's Usage": server_usage} banner = await images.create_banner(ctx.message.author, "Command Stats", data) await self.bot.upload(banner) - else: + except (FileNotFoundError, discord.Forbidden): fmt = "The command {} has been used a total of {} times\n" \ "{} times on this server\n" \ "It has been ran by you, {}, {} times".format(cmd.qualified_name, total_usage, server_usage, @@ -89,11 +89,11 @@ class Stats: # Create a string, each command on it's own line, based on the top 5 used commands # I'm letting it use the length of the sorted_stats[:5] # As this can include, for example, all 3 if there are only 3 entries - if ctx.message.channel.permissions_for(ctx.message.server.me).attach_files: + try: top_5 = {data[0]: data[1] for data in sorted_stats[:5]} banner = await images.create_banner(ctx.message.author, "Your command usage", top_5) await self.bot.upload(banner) - else: + except (FileNotFoundError, discord.Forbidden): top_5 = "\n".join("{}: {}".format(data[0], data[1]) for data in sorted_stats[:5]) await self.bot.say("Your top {} most used commands are:\n```\n{}```".format(len(sorted_stats[:5]), top_5)) elif re.search('server', option): @@ -158,12 +158,12 @@ class Stats: # Now we only want the first 10 members, so splice this list sorted_booped_members = sorted_booped_members[:10] - if ctx.message.channel.permissions_for(ctx.message.server.me).attach_files: + try: output = {"{0.display_name}".format(ctx.message.server.get_member(m_id)): amt for m_id, amt in sorted_booped_members} banner = await images.create_banner(ctx.message.author, "Your booped victims", output) await self.bot.upload(banner) - else: + except (FileNotFoundError, discord.Forbidden): output = "\n".join( "{0.display_name}: {1} times".format(ctx.message.server.get_member(m_id), amt) for m_id, amt in sorted_booped_members) @@ -192,10 +192,10 @@ class Stats: if count >= 11: break - if ctx.message.channel.permissions_for(ctx.message.server.me).attach_files: + try: banner = await images.create_banner(ctx.message.author, "Battling Leaderboard", output) await self.bot.upload(banner) - else: + except (FileNotFoundError, discord.Forbidden): fmt = "\n".join("#{}) {}".format(key, value) for key, value in output.items()) await self.bot.say("Battling leaderboard for this server:```\n{}```".format(fmt))