monolith/monolith.py

46 lines
938 B
Python
Raw Normal View History

import asyncio
from os import getenv
2022-09-30 14:23:00 +00:00
import uvloop
import util
from sources.ch4 import Chan4
from sources.dis import DiscordClient
from sources.ingest import Ingest
2022-09-23 06:20:30 +00:00
# Use UVLoop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
log = util.get_logger("monolith")
modules_enabled = getenv("MODULES_ENABLED", False)
token = getenv("DISCORD_TOKEN", None)
if not token:
raise Exception("No Discord token provided")
2022-09-04 12:47:32 +00:00
async def main(loop):
if "ingest" in modules_enabled:
ingest = Ingest()
loop.create_task(ingest.run())
2022-12-22 10:11:48 +00:00
if "dis" in modules_enabled:
client = DiscordClient()
loop.create_task(client.start(token))
if "ch4" in modules_enabled:
chan = Chan4()
loop.create_task(chan.run())
2022-09-30 14:23:00 +00:00
2022-09-04 12:47:32 +00:00
loop = asyncio.get_event_loop()
loop.create_task(main(loop))
2022-09-23 06:20:30 +00:00
try:
loop.run_forever()
except KeyboardInterrupt:
log.info("Process terminating")
finally:
loop.close()