diff --git a/mautrix_telegram/db/user.py b/mautrix_telegram/db/user.py index e7afbffb..af7a96db 100644 --- a/mautrix_telegram/db/user.py +++ b/mautrix_telegram/db/user.py @@ -79,9 +79,9 @@ class User(Base): @contacts.setter def contacts(self, puppets: Iterable[TelegramID]) -> None: self.db.execute(Contact.t.delete().where(Contact.c.user == self.tgid)) - if puppets: - self.db.execute(Contact.t.insert(), [{"user": self.tgid, "contact": tgid} - for tgid in puppets]) + insert_puppets = [{"user": self.tgid, "contact": tgid} for tgid in puppets] + if insert_puppets: + self.db.execute(Contact.t.insert(), insert_puppets) @property def portals(self) -> Iterable[Tuple[TelegramID, TelegramID]]: @@ -93,13 +93,13 @@ class User(Base): @portals.setter def portals(self, portals: Iterable[Tuple[TelegramID, TelegramID]]) -> None: self.db.execute(UserPortal.t.delete().where(UserPortal.c.user == self.tgid)) - if portals: - self.db.execute(UserPortal.t.insert(), - [{ - "user": self.tgid, - "portal": tgid, - "portal_receiver": tg_receiver - } for tgid, tg_receiver in portals]) + insert_portals = [{ + "user": self.tgid, + "portal": tgid, + "portal_receiver": tg_receiver + } for tgid, tg_receiver in portals] + if insert_portals: + self.db.execute(UserPortal.t.insert(), insert_portals) def delete(self) -> None: super().delete() @@ -125,4 +125,3 @@ class Contact(Base): user = Column(Integer, ForeignKey("user.tgid"), primary_key=True) # type: TelegramID contact = Column(Integer, ForeignKey("puppet.id"), primary_key=True) # type: TelegramID - diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index c3231e6e..5d847617 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -133,8 +133,7 @@ class User(AbstractUser): def new_db_instance(self) -> DBUser: return DBUser(mxid=self.mxid, tgid=self.tgid, tg_username=self.username, - contacts=self.db_contacts, saved_contacts=self.saved_contacts, - portals=self.db_portals) + saved_contacts=self.saved_contacts, portals=self.db_portals) def save(self, contacts: bool = False, portals: bool = False) -> None: self.db_instance.update(tgid=self.tgid, tg_username=self.username, tg_phone=self.phone,