From 2a9ab569b4538fee098f1c3ec8575ad1ac741a4d Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 6 Aug 2019 00:59:11 +0300 Subject: [PATCH] Only load users with a tgid at startup --- mautrix_telegram/abstract_user.py | 3 ++- mautrix_telegram/db/user.py | 4 ++-- mautrix_telegram/user.py | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mautrix_telegram/abstract_user.py b/mautrix_telegram/abstract_user.py index a78f5945..0acc0aed 100644 --- a/mautrix_telegram/abstract_user.py +++ b/mautrix_telegram/abstract_user.py @@ -222,8 +222,9 @@ class AbstractUser(ABC): async def ensure_started(self, even_if_no_session=False) -> 'AbstractUser': if not self.puppet_whitelisted or self.connected: return self - self.log.debug("ensure_started(%s, even_if_no_session=%s)", self.mxid, even_if_no_session) if even_if_no_session or self.session_container.has_session(self.mxid): + self.log.debug("Starting client due to ensure_started" + f"(even_if_no_session={even_if_no_session})") await self.start(delete_unless_authenticated=not even_if_no_session) return self diff --git a/mautrix_telegram/db/user.py b/mautrix_telegram/db/user.py index 812230a1..1580e277 100644 --- a/mautrix_telegram/db/user.py +++ b/mautrix_telegram/db/user.py @@ -41,8 +41,8 @@ class User(Base): saved_contacts=saved_contacts) @classmethod - def all(cls) -> Iterable['User']: - return cls._select_all() + def all_with_tgid(cls) -> Iterable['User']: + return cls._select_all(cls.c.tgid != None) @classmethod def get_by_tgid(cls, tgid: TelegramID) -> Optional['User']: diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index fb5a54fb..7b765335 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -414,4 +414,5 @@ def init(context: 'Context') -> Iterable[Awaitable['User']]: global config config = context.config - return (User.from_db(db_user).ensure_started() for db_user in DBUser.all() if db_user.tgid) + return (User.from_db(db_user).ensure_started() + for db_user in DBUser.all_with_tgid())