import asyncio import os import sys import aiogram as telegram import nio as matrix MATRIX_HOMESERVER_URL = os.environ['MATRIX_HOMESERVER_URL'] MATRIX_FULL_USER_ID = os.environ['MATRIX_FULL_USER_ID'] MATRIX_PASSWORD = os.environ['MATRIX_PASSWORD'] TELEGRAM_BOT_TOKEN = os.environ['TELEGRAM_BOT_TOKEN'] async def main(): try: matrix_client = \ matrix.AsyncClient(MATRIX_HOMESERVER_URL, MATRIX_FULL_USER_ID) matrix_client.add_event_callback(matrix_on_message, matrix.RoomMessage) await matrix_client.login(MATRIX_PASSWORD) telegram_bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN) telegram_dispatcher = telegram.Dispatcher(bot=telegram_bot) telegram_dispatcher.register_message_handler(telegram_on_message) await asyncio.gather( matrix_loop(matrix_client), telegram_loop(), ) finally: if matrix_client: await matrix_client.close() async def matrix_loop(client): await client.sync_forever(timeout=30000) async def telegram_loop(): print(456, file=sys.stderr) async def matrix_on_message(room, event): print(room, event, file=sys.stderr) async def telegram_on_message(msg): print(msg, file=sys.stderr) if __name__ == '__main__': asyncio.run(main())