diff options
-rwxr-xr-x | bot.py | 1 | ||||
-rwxr-xr-x | cogs/utils.py | 10 | ||||
-rwxr-xr-x | cogs/webserver.py | 57 | ||||
-rwxr-xr-x[-rw-r--r--] | readme.md | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | requirements.txt | 2 |
5 files changed, 65 insertions, 5 deletions
@@ -13,6 +13,7 @@ extensions = [ "cogs.trans", "cogs.player", "cogs.general", + "cogs.webserver", "cogs.logs" ] 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 diff --git a/readme.md b/readme.md index 245abe1..245abe1 100644..100755 --- a/readme.md +++ b/readme.md diff --git a/requirements.txt b/requirements.txt index cf3df87..57d4bd7 100644..100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ asyncio==3.4.3 -discord.py>=discord.py==1.4.0a2409+gb77af19 +discord.py>=1.4.0a2409+gb77af19 colorama==0.4.3 GitPython==2.1.15 google-api-core==1.17.0 |