diff --git a/bot.py b/bot.py index 1a18947..174694d 100755 --- a/bot.py +++ b/bot.py @@ -38,6 +38,7 @@ l_extensions = ( 'cogs.utility', 'cogs.vocal', 'cogs.private', + 'cogs.monitoring', 'jishaku' ) diff --git a/cogs/monitoring.py b/cogs/monitoring.py new file mode 100644 index 0000000..8edcb06 --- /dev/null +++ b/cogs/monitoring.py @@ -0,0 +1,41 @@ +import asyncio +import threading +from aiohttp import web + +from discord.ext import commands +from bot import TuxBot + + +class Monitoring(commands.Cog): + + def __init__(self): + self.app = web.Application() + + t = threading.Thread( + target=self.run_server, + args=(self.aiohttp_server(),) + ) + t.start() + + def aiohttp_server(self): + async def hi(request): + return web.Response(text="I'm alive !") + + self.app.add_routes([web.get('/', hi)]) + runner = web.AppRunner(self.app) + + return runner + + @staticmethod + def run_server(runner): + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + loop.run_until_complete(runner.setup()) + site = web.TCPSite(runner, '0.0.0.0', 3389) + loop.run_until_complete(site.start()) + loop.run_forever() + + +def setup(bot: TuxBot): + bot.add_cog(Monitoring()) +