diff --git a/mautrix_telegram/db/puppet.py b/mautrix_telegram/db/puppet.py index b02b6710..fcc9b2cd 100644 --- a/mautrix_telegram/db/puppet.py +++ b/mautrix_telegram/db/puppet.py @@ -48,6 +48,7 @@ class Puppet: avatar_url: ContentURI | None name_set: bool avatar_set: bool + contact_info_set: bool is_bot: bool | None is_channel: bool is_premium: bool @@ -68,7 +69,7 @@ class Puppet: columns: ClassVar[str] = ( "id, is_registered, displayname, displayname_source, displayname_contact, " "displayname_quality, disable_updates, username, phone, photo_id, avatar_url, " - "name_set, avatar_set, is_bot, is_channel, is_premium, " + "name_set, avatar_set, contact_info_set, is_bot, is_channel, is_premium, " "custom_mxid, access_token, next_batch, base_url" ) @@ -108,6 +109,7 @@ class Puppet: self.avatar_url, self.name_set, self.avatar_set, + self.contact_info_set, self.is_bot, self.is_channel, self.is_premium, @@ -122,8 +124,9 @@ class Puppet: UPDATE puppet SET is_registered=$2, displayname=$3, displayname_source=$4, displayname_contact=$5, displayname_quality=$6, disable_updates=$7, username=$8, phone=$9, photo_id=$10, - avatar_url=$11, name_set=$12, avatar_set=$13, is_bot=$14, is_channel=$15, - is_premium=$16, custom_mxid=$17, access_token=$18, next_batch=$19, base_url=$20 + avatar_url=$11, name_set=$12, avatar_set=$13, contact_info_set=$14, is_bot=$15, + is_channel=$16, is_premium=$17, custom_mxid=$18, access_token=$19, next_batch=$20, + base_url=$21 WHERE id=$1 """ await self.db.execute(q, *self._values) @@ -133,9 +136,9 @@ class Puppet: INSERT INTO puppet ( id, is_registered, displayname, displayname_source, displayname_contact, displayname_quality, disable_updates, username, phone, photo_id, avatar_url, name_set, - avatar_set, is_bot, is_channel, is_premium, custom_mxid, access_token, next_batch, - base_url + avatar_set, contact_info_set, is_bot, is_channel, is_premium, custom_mxid, + access_token, next_batch, base_url ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, - $19, $20) + $19, $20, $21) """ await self.db.execute(q, *self._values) diff --git a/mautrix_telegram/db/upgrade/__init__.py b/mautrix_telegram/db/upgrade/__init__.py index 1d91c93e..34cedc6e 100644 --- a/mautrix_telegram/db/upgrade/__init__.py +++ b/mautrix_telegram/db/upgrade/__init__.py @@ -20,4 +20,5 @@ from . import ( v15_backfill_anchor_id, v16_backfill_type, v17_message_find_recent, + v18_puppet_contact_info_set, ) diff --git a/mautrix_telegram/db/upgrade/v00_latest_revision.py b/mautrix_telegram/db/upgrade/v00_latest_revision.py index f5eb7c3e..66c1989a 100644 --- a/mautrix_telegram/db/upgrade/v00_latest_revision.py +++ b/mautrix_telegram/db/upgrade/v00_latest_revision.py @@ -15,7 +15,7 @@ # along with this program. If not, see . from mautrix.util.async_db import Connection, Scheme -latest_version = 17 +latest_version = 18 async def create_latest_tables(conn: Connection, scheme: Scheme) -> int: @@ -113,6 +113,7 @@ async def create_latest_tables(conn: Connection, scheme: Scheme) -> int: avatar_url TEXT, name_set BOOLEAN NOT NULL DEFAULT false, avatar_set BOOLEAN NOT NULL DEFAULT false, + contact_info_set BOOLEAN NOT NULL DEFAULT false, is_bot BOOLEAN, is_channel BOOLEAN NOT NULL DEFAULT false, is_premium BOOLEAN NOT NULL DEFAULT false, diff --git a/mautrix_telegram/db/upgrade/v18_puppet_contact_info_set.py b/mautrix_telegram/db/upgrade/v18_puppet_contact_info_set.py new file mode 100644 index 00000000..edd8371c --- /dev/null +++ b/mautrix_telegram/db/upgrade/v18_puppet_contact_info_set.py @@ -0,0 +1,25 @@ +# mautrix-telegram - A Matrix-Telegram puppeting bridge +# Copyright (C) 2022 Tulir Asokan +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +from mautrix.util.async_db import Connection + +from . import upgrade_table + + +@upgrade_table.register(description="Add contact_info_set column to puppet table") +async def upgrade_v18(conn: Connection) -> None: + await conn.execute( + "ALTER TABLE puppet ADD COLUMN contact_info_set BOOLEAN NOT NULL DEFAULT false" + ) diff --git a/mautrix_telegram/puppet.py b/mautrix_telegram/puppet.py index a3d841a5..c96920d5 100644 --- a/mautrix_telegram/puppet.py +++ b/mautrix_telegram/puppet.py @@ -78,6 +78,7 @@ class Puppet(DBPuppet, BasePuppet): avatar_url: ContentURI | None = None, name_set: bool = False, avatar_set: bool = False, + contact_info_set: bool = False, is_bot: bool = False, is_channel: bool = False, is_premium: bool = False, @@ -100,6 +101,7 @@ class Puppet(DBPuppet, BasePuppet): avatar_url=avatar_url, name_set=name_set, avatar_set=avatar_set, + contact_info_set=contact_info_set, is_bot=is_bot, is_channel=is_channel, is_premium=is_premium, diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 764803d9..d6a17da5 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -541,7 +541,7 @@ class User(DBUser, AbstractUser, BaseUser): await self.stop() return None - async def update_info(self, info: TLUser = None) -> None: + async def update_info(self, info: TLUser | None = None) -> None: if not info: info = await self.get_me() if not info: