Only load users with a tgid at startup
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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']:
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user