rewrite: Analytics client-server model.

This commit is contained in:
2022-11-18 18:53:02 +02:00
parent b471e78a75
commit fe51a8d150
11 changed files with 559 additions and 11 deletions

44
bot/analytics/server.py Normal file
View File

@@ -0,0 +1,44 @@
import asyncio
import logging
from meta import conf, appname
from meta.logger import log_context, log_action_stack, logging_context, log_app
from meta.ipc import AppClient
from data import Database
from .events import command_event_handler, guild_event_handler, voice_event_handler
from .data import AnalyticsData
logger = logging.getLogger(__name__)
for name in conf.config.options('LOGGING_LEVELS', no_defaults=True):
logging.getLogger(name).setLevel(conf.logging_levels[name])
db = Database(conf.data['args'])
async def main():
log_action_stack.set(['Analytics'])
log_app.set(conf.analytics['appname'])
async with await db.connect():
db.load_registry(AnalyticsData())
analytic_talk = AppClient(
conf.analytics['appname'],
appname,
{'host': conf.analytics['server_host'], 'port': int(conf.analytics['server_port'])},
{'host': conf.appipc['server_host'], 'port': int(conf.appipc['server_port'])}
)
await analytic_talk.connect()
cmd = await command_event_handler.attach(analytic_talk)
guild = await guild_event_handler.attach(analytic_talk)
voice = await voice_event_handler.attach(analytic_talk)
logger.info("Finished initialising, waiting for events.")
await asyncio.gather(cmd._consumer_task, guild._consumer_task, voice._consumer_task)
if __name__ == '__main__':
asyncio.run(main())