mirror of
https://github.com/bsedin/matrix-webhook.git
synced 2026-04-09 11:25:40 +00:00
split code in utils / handler / app
This commit is contained in:
56
matrix_webhook/app.py
Normal file
56
matrix_webhook/app.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""Matrix Webhook app."""
|
||||
|
||||
import asyncio
|
||||
import logging
|
||||
from signal import SIGINT, SIGTERM
|
||||
|
||||
from aiohttp import web
|
||||
|
||||
from . import conf, handler, utils
|
||||
|
||||
LOGGER = logging.getLogger("matrix_webhook.app")
|
||||
|
||||
|
||||
async def main(event):
|
||||
"""
|
||||
Launch main coroutine.
|
||||
|
||||
matrix client login & start web server
|
||||
"""
|
||||
LOGGER.info(f"Log in {conf.MATRIX_ID=} on {conf.MATRIX_URL=}")
|
||||
await utils.CLIENT.login(conf.MATRIX_PW)
|
||||
|
||||
server = web.Server(handler.matrix_webhook)
|
||||
runner = web.ServerRunner(server)
|
||||
await runner.setup()
|
||||
LOGGER.info(f"Binding on {conf.SERVER_ADDRESS=}")
|
||||
site = web.TCPSite(runner, *conf.SERVER_ADDRESS)
|
||||
await site.start()
|
||||
|
||||
# Run until we get a shutdown request
|
||||
await event.wait()
|
||||
|
||||
# Cleanup
|
||||
await runner.cleanup()
|
||||
await utils.CLIENT.close()
|
||||
|
||||
|
||||
def terminate(event, signal):
|
||||
"""Close handling stuff."""
|
||||
event.set()
|
||||
asyncio.get_event_loop().remove_signal_handler(signal)
|
||||
|
||||
|
||||
def run():
|
||||
"""Launch everything."""
|
||||
LOGGER.info("Starting...")
|
||||
loop = asyncio.get_event_loop()
|
||||
event = asyncio.Event()
|
||||
|
||||
for sig in (SIGINT, SIGTERM):
|
||||
loop.add_signal_handler(sig, terminate, event, sig)
|
||||
|
||||
loop.run_until_complete(main(event))
|
||||
|
||||
LOGGER.info("Closing...")
|
||||
loop.close()
|
||||
Reference in New Issue
Block a user