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':
|
async def ensure_started(self, even_if_no_session=False) -> 'AbstractUser':
|
||||||
if not self.puppet_whitelisted or self.connected:
|
if not self.puppet_whitelisted or self.connected:
|
||||||
return self
|
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):
|
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)
|
await self.start(delete_unless_authenticated=not even_if_no_session)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ class User(Base):
|
|||||||
saved_contacts=saved_contacts)
|
saved_contacts=saved_contacts)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def all(cls) -> Iterable['User']:
|
def all_with_tgid(cls) -> Iterable['User']:
|
||||||
return cls._select_all()
|
return cls._select_all(cls.c.tgid != None)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_by_tgid(cls, tgid: TelegramID) -> Optional['User']:
|
def get_by_tgid(cls, tgid: TelegramID) -> Optional['User']:
|
||||||
|
|||||||
@@ -414,4 +414,5 @@ def init(context: 'Context') -> Iterable[Awaitable['User']]:
|
|||||||
global config
|
global config
|
||||||
config = context.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