mirror of
https://github.com/nexus-stc/hyperboria
synced 2024-12-04 00:42:53 +01:00
43be16e4bc
- [nexus] Remove outdated protos - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Refactor views - [nexus] Update aiosumma - [nexus] Add tags - [nexus] Development - [nexus] Update repository - [nexus] Update repository - [nexus] Update dependencies - [nexus] Update dependencies - [nexus] Fixes for MetaAPI - [nexus] Support for new queries - [nexus] Adopt new versions of search - [nexus] Improving Nexus - [nexus] Various fixes - [nexus] Add profile - [nexus] Fixes for ingestion - [nexus] Refactorings and bugfixes - [idm] Add profile methods - [nexus] Fix stalled nexus-meta bugs - [nexus] Various bugfixes - [nexus] Restore IDM API functionality GitOrigin-RevId: a0842345a6dde5b321279ab5510a50c0def0e71a
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
from aiokit import AioRootThing
|
|
from idm.api.aioclient import IdmApiGrpcClient
|
|
from izihawa_utils.importlib import import_object
|
|
from library.telegram.base import BaseTelegramClient
|
|
from nexus.bot.promotioner import Promotioner
|
|
from nexus.bot.user_manager import UserManager
|
|
from nexus.hub.aioclient import HubGrpcClient
|
|
from nexus.meta_api.aioclient import MetaApiGrpcClient
|
|
|
|
|
|
class TelegramApplication(AioRootThing):
|
|
def __init__(self, config):
|
|
super().__init__()
|
|
self.config = config
|
|
self.telegram_client = BaseTelegramClient(
|
|
app_id=self.config['telegram']['app_id'],
|
|
app_hash=self.config['telegram']['app_hash'],
|
|
bot_token=self.config['telegram']['bot_token'],
|
|
database=self.config['telegram'].get('database'),
|
|
mtproxy=self.config['telegram'].get('mtproxy'),
|
|
)
|
|
self.hub_client = HubGrpcClient(endpoint=self.config['hub']['endpoint'])
|
|
self.starts.append(self.hub_client)
|
|
self.idm_client = None
|
|
if self.config['idm']['enabled']:
|
|
self.idm_client = IdmApiGrpcClient(endpoint=self.config['idm']['endpoint'])
|
|
self.starts.append(self.idm_client)
|
|
self.meta_api_client = MetaApiGrpcClient(endpoint=self.config['meta_api']['endpoint'])
|
|
self.starts.append(self.meta_api_client)
|
|
|
|
self.promotioner = Promotioner(promotions=self.config['promotions'])
|
|
self.user_manager = UserManager()
|
|
self._handlers = []
|
|
|
|
def set_handlers(self, telegram_client):
|
|
for handler in self.config['telegram']['handlers']:
|
|
import_object(handler)(self).register_for(telegram_client)
|
|
|
|
async def start(self):
|
|
self.set_handlers(self.telegram_client)
|
|
await self.telegram_client.start()
|
|
|
|
async def stop(self):
|
|
self.telegram_client.remove_event_handlers()
|
|
await self.telegram_client.stop()
|