added file
This commit is contained in:
1 parent
cc433bd065
commit
c07cd997c9
10 files changed
+754
-1
No files matched your search
@@ -0,0 +1,52 @@
|
||||
import asyncio
|
||||
import sys
|
||||
import traceback
|
||||
import login
|
||||
import callbacks
|
||||
|
||||
from nio import (
|
||||
RoomMessageText,
|
||||
InviteMemberEvent,
|
||||
MegolmEvent,
|
||||
KeyVerificationEvent
|
||||
)
|
||||
|
||||
async def main():
|
||||
callbacks.client = await login.login_from_credentials()
|
||||
|
||||
# Критично для E2EE: загружаем ключи бота на сервер,
|
||||
# чтобы другие устройства могли с ним общаться
|
||||
if callbacks.client.should_upload_keys:
|
||||
await callbacks.client.keys_upload()
|
||||
print("[INFO] Ключи E2EE загружены на сервер.")
|
||||
|
||||
# Регистрируем обработчики
|
||||
callbacks.client.add_event_callback(callbacks.message_callback, RoomMessageText)
|
||||
callbacks.client.add_event_callback(callbacks.megolm_callback, MegolmEvent)
|
||||
callbacks.client.add_event_callback(callbacks.invite_callback, InviteMemberEvent)
|
||||
callbacks.client.add_to_device_callback(callbacks.to_device_callback, KeyVerificationEvent)
|
||||
|
||||
print("[INFO] Эхо-бот запущен. Для выхода нажмите Ctrl+C.")
|
||||
|
||||
after_sync_task = asyncio.ensure_future(callbacks.after_first_sync())
|
||||
sync_task = asyncio.ensure_future(
|
||||
callbacks.client.sync_forever(timeout=30000, full_state=True)
|
||||
)
|
||||
|
||||
try:
|
||||
await asyncio.gather(after_sync_task, sync_task)
|
||||
except asyncio.CancelledError:
|
||||
pass
|
||||
finally:
|
||||
await callbacks.client.close()
|
||||
print("[INFO] Клиент закрыт.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
asyncio.run(main())
|
||||
except KeyboardInterrupt:
|
||||
print("\n[INFO] Остановка бота.")
|
||||
except Exception:
|
||||
print(traceback.format_exc())
|
||||
sys.exit(1)
|
||||
Reference in new issue
Block a user