aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbot.py1
-rwxr-xr-xcogs/utils.py10
-rwxr-xr-xcogs/webserver.py57
-rwxr-xr-x[-rw-r--r--]readme.md0
-rwxr-xr-x[-rw-r--r--]requirements.txt2
5 files changed, 65 insertions, 5 deletions
diff --git a/bot.py b/bot.py
index 30d8b1f..ced13ca 100755
--- a/bot.py
+++ b/bot.py
@@ -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