From 9c14c86358b2be36b6446972401943a30a1fdd41 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 15 Dec 2021 14:14:42 +0200 Subject: [PATCH] Update mautrix-python --- mautrix_telegram/__main__.py | 1 - mautrix_telegram/portal/base.py | 7 +++---- mautrix_telegram/portal/metadata.py | 9 +++++---- mautrix_telegram/user.py | 5 +++-- requirements.txt | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mautrix_telegram/__main__.py b/mautrix_telegram/__main__.py index 97f89825..cc36d976 100644 --- a/mautrix_telegram/__main__.py +++ b/mautrix_telegram/__main__.py @@ -53,7 +53,6 @@ class TelegramBridge(Bridge): command = "python -m mautrix-telegram" description = "A Matrix-Telegram puppeting bridge." repo_url = "https://github.com/mautrix/telegram" - real_user_content_key = "net.maunium.telegram.puppet" version = version markdown_version = linkified_version config_class = Config diff --git a/mautrix_telegram/portal/base.py b/mautrix_telegram/portal/base.py index b1080190..0f1ec276 100644 --- a/mautrix_telegram/portal/base.py +++ b/mautrix_telegram/portal/base.py @@ -479,14 +479,13 @@ class BasePortal(MautrixBasePortal, ABC): async def update_matrix_room(self, user: 'AbstractUser', entity: Union[TypeChat, User], direct: bool, puppet: p.Puppet = None, levels: PowerLevelStateEventContent = None, - users: List[User] = None, - participants: List[TypeParticipant] = None) -> None: + users: List[User] = None) -> None: pass @abstractmethod async def create_matrix_room(self, user: 'AbstractUser', entity: TypeChat = None, - invites: InviteList = None, update_if_exists: bool = True, - synchronous: bool = False) -> Optional[str]: + invites: InviteList = None, update_if_exists: bool = True + ) -> Optional[RoomID]: pass @abstractmethod diff --git a/mautrix_telegram/portal/metadata.py b/mautrix_telegram/portal/metadata.py index bf9d1bcf..34484d61 100644 --- a/mautrix_telegram/portal/metadata.py +++ b/mautrix_telegram/portal/metadata.py @@ -33,7 +33,8 @@ from mautrix.errors import MForbidden from mautrix.types import (RoomID, UserID, RoomCreatePreset, EventType, Membership, PowerLevelStateEventContent, RoomTopicStateEventContent, RoomNameStateEventContent, RoomAvatarStateEventContent, - StateEventContent, EventID) + StateEventContent, EventID, JoinRule) +from mautrix.appservice import DOUBLE_PUPPET_SOURCE_KEY from ..types import TelegramID from ..context import Context @@ -710,9 +711,9 @@ class PortalMetadata(BasePortal, ABC): if self.username: await self.main_intent.add_room_alias(self.mxid, self.alias_localpart, override=True) if self.public_portals: - await self.main_intent.set_join_rule(self.mxid, "public") + await self.main_intent.set_join_rule(self.mxid, JoinRule.PUBLIC) else: - await self.main_intent.set_join_rule(self.mxid, "invite") + await self.main_intent.set_join_rule(self.mxid, JoinRule.INVITE) if save: await self.save() @@ -724,7 +725,7 @@ class PortalMetadata(BasePortal, ABC): try: intent = sender.intent_for(self) if sender.is_real_user: - content[self.az.real_user_content_key] = True + content[DOUBLE_PUPPET_SOURCE_KEY] = self.bridge.name await intent.send_state_event(self.mxid, evt_type, content) except MForbidden: await self.main_intent.send_state_event(self.mxid, evt_type, content) diff --git a/mautrix_telegram/user.py b/mautrix_telegram/user.py index 84f89173..be20574d 100644 --- a/mautrix_telegram/user.py +++ b/mautrix_telegram/user.py @@ -34,6 +34,7 @@ from telethon.errors import AuthKeyDuplicatedError, RPCError, UnauthorizedError from mautrix.client import Client from mautrix.errors import MatrixRequestError, MNotFound from mautrix.types import UserID, RoomID, PushRuleScope, PushRuleKind, PushActionType, RoomTagInfo +from mautrix.appservice import DOUBLE_PUPPET_SOURCE_KEY from mautrix.bridge import BaseUser from mautrix.util.bridge_state import BridgeState, BridgeStateEvent from mautrix.util.logging import TraceLogger @@ -475,9 +476,9 @@ class User(AbstractUser, BaseUser): tag_info = await puppet.intent.get_room_tag(portal.mxid, tag) if active and tag_info is None: tag_info = RoomTagInfo(order=0.5) - tag_info[self.bridge.real_user_content_key] = True + tag_info[DOUBLE_PUPPET_SOURCE_KEY] = self.bridge.name await puppet.intent.set_room_tag(portal.mxid, tag, tag_info) - elif not active and tag_info and tag_info.get(self.bridge.real_user_content_key, False): + elif not active and tag_info and tag_info.get(DOUBLE_PUPPET_SOURCE_KEY) == self.bridge.name: await puppet.intent.remove_room_tag(portal.mxid, tag) @staticmethod diff --git a/requirements.txt b/requirements.txt index fc7bd5e2..244f3466 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ python-magic>=0.4,<0.5 commonmark>=0.8,<0.10 aiohttp>=3,<4 yarl>=1,<2 -mautrix>=0.13.1,<0.14 +mautrix>=0.13.2,<0.14 telethon>=1.24,<1.25 telethon-session-sqlalchemy>=0.2.14,<0.3 # Temporarily always depend on aiosqlite to prevent breaking old installs