aboutsummaryrefslogtreecommitdiff
path: root/cogs/webserver.py
diff options
context:
space:
mode:
authorAnInternetTroll <lucafulger@gmail.com>2020-07-27 20:45:42 +0000
committerAnInternetTroll <lucafulger@gmail.com>2020-07-27 20:45:42 +0000
commit945777abb0136b1d8f9be858365efe55287e6f6c (patch)
treead37da3c22319feb19b9049efc87fbc483f68dec /cogs/webserver.py
parent27c6a4a11ecfecfc5c989c96d9b236e89faf5984 (diff)
downloadsteve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar.gz
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar.bz2
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar.lz
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar.xz
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.tar.zst
steve-bot-945777abb0136b1d8f9be858365efe55287e6f6c.zip
Added base for an API
Diffstat (limited to 'cogs/webserver.py')
-rwxr-xr-xcogs/webserver.py57
1 files changed, 57 insertions, 0 deletions
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