aboutsummaryrefslogtreecommitdiff
path: root/cogs
diff options
context:
space:
mode:
Diffstat (limited to 'cogs')
-rwxr-xr-xcogs/utils.py10
-rwxr-xr-xcogs/webserver.py57
2 files changed, 63 insertions, 4 deletions
diff --git a/cogs/utils.py b/cogs/utils.py
index ab9bc42..a8de13a 100755
--- a/cogs/utils.py
+++ b/cogs/utils.py
@@ -225,10 +225,12 @@ class Utils(commands.Cog):
async def leaderboard(self, ctx):
"""Leaderboard of the people that matter"""
async with ctx.typing():
- lbFunc = functools.partial(save_leaderboard)
- await self.bot.loop.run_in_executor(None, lbFunc)
- await ctx.send(file=discord.File("leaderboard.png"))
-
+ try:
+ lbFunc = functools.partial(save_leaderboard)
+ await self.bot.loop.run_in_executor(None, lbFunc)
+ await ctx.send(file=discord.File("leaderboard.png"))
+ except:
+ await ctx.send("https://aninternettroll.github.io/mcbeVerifierLeaderboard/")
@leaderboard.error
async def leaderboard_handler(self,ctx,error):
diff --git a/cogs/webserver.py b/cogs/webserver.py
new file mode 100755
index 0000000..3061f8f
--- /dev/null
+++ b/cogs/webserver.py
@@ -0,0 +1,57 @@
+from aiohttp import web
+from discord.ext import commands, tasks
+import discord
+import os
+import aiohttp
+import json
+
+app = web.Application()
+routes = web.RouteTableDef()
+
+
+class Webserver(commands.Cog):
+ def __init__(self, bot):
+ self.bot = bot
+ self.web_server.start()
+
+ @routes.get('/')
+ async def welcome(request):
+ return web.Response(text="Hello, world")
+
+ @routes.get('/keys')
+ async def get_keys(request):
+ with open('./api_keys.json') as f:
+ keys = json.load(f)
+ return web.json_response(keys)
+
+ @routes.post('/keys')
+ async def post_keys(request):
+ data = await request.post()
+ try:
+ discord_id = data['discord_id']
+ src_id = data['src_id']
+ except KeyError:
+ return 400
+ with open('./api_keys.json', 'r') as f:
+ keys = json.load(f)
+ keys[discord_id] = src_id
+ with open('./api_keys.json', 'w') as f:
+ json.dump(keys, f, indent=4)
+ return web.json_response(keys)
+
+ self.webserver_port = os.environ.get('PORT', 5000)
+ app.add_routes(routes)
+
+ @tasks.loop()
+ async def web_server(self):
+ runner = web.AppRunner(app)
+ await runner.setup()
+ site = web.TCPSite(runner, host='0.0.0.0', port=self.webserver_port)
+ await site.start()
+
+ @web_server.before_loop
+ async def web_server_before_loop(self):
+ await self.bot.wait_until_ready()
+
+def setup(bot):
+ bot.add_cog(Webserver(bot)) \ No newline at end of file