Update mautrix-python again and fix bugs in accepting invites as puppets
This commit is contained in:
@@ -35,7 +35,7 @@ async def sync_state(evt: CommandEvent) -> EventID:
|
||||
elif not await user_has_power_level(evt.room_id, evt.az.intent, evt.sender, "bridge"):
|
||||
return await evt.reply(f"You do not have the permissions to synchronize this room.")
|
||||
|
||||
await portal.sync_matrix_members()
|
||||
await portal.main_intent.get_joined_members(portal.mxid)
|
||||
await evt.reply("Synchronization complete")
|
||||
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ class MatrixHandler(BaseMatrixHandler):
|
||||
async def handle_puppet_invite(self, room_id: RoomID, puppet: pu.Puppet, inviter: u.User,
|
||||
event_id: EventID) -> None:
|
||||
intent = puppet.default_mxid_intent
|
||||
self.log.debug(f"{inviter} invited puppet for {puppet.tgid} to {room_id}")
|
||||
self.log.debug(f"{inviter.mxid} invited puppet for {puppet.tgid} to {room_id}")
|
||||
if not await inviter.is_logged_in():
|
||||
await intent.error_and_leave(
|
||||
room_id, text="Please log in before inviting Telegram puppets.")
|
||||
@@ -87,11 +87,12 @@ class MatrixHandler(BaseMatrixHandler):
|
||||
await intent.join_room(room_id)
|
||||
return
|
||||
try:
|
||||
members = await self.az.intent.get_room_members(room_id)
|
||||
members = await intent.get_room_members(room_id)
|
||||
except MatrixError:
|
||||
members = []
|
||||
self.log.exception(f"Failed to get members after joining {room_id} as {intent.mxid}")
|
||||
return
|
||||
if self.az.bot_mxid not in members:
|
||||
if len(members) > 1:
|
||||
if len(members) > 2:
|
||||
await intent.error_and_leave(room_id, text=None, html=(
|
||||
f"Please invite "
|
||||
f"<a href='https://matrix.to/#/{self.az.bot_mxid}'>the bridge bot</a> "
|
||||
|
||||
@@ -172,17 +172,6 @@ class PortalMetadata(BasePortal, ABC):
|
||||
elif not self.bot or self.tg_receiver != self.bot.tgid:
|
||||
raise ValueError("Invalid peer type for Telegram user invite")
|
||||
|
||||
async def sync_matrix_members(self) -> None:
|
||||
resp = await self.main_intent.get_room_joined_memberships(self.mxid)
|
||||
members = resp["joined"]
|
||||
for mxid, info in members.items():
|
||||
member = Member(membership=Membership.JOIN)
|
||||
if "display_name" in info:
|
||||
member.displayname = info["display_name"]
|
||||
if "avatar_url" in info:
|
||||
member.avatar_url = info["avatar_url"]
|
||||
self.az.state_store.set_member(self.mxid, mxid, member)
|
||||
|
||||
# endregion
|
||||
# region Telegram -> Matrix
|
||||
|
||||
@@ -231,7 +220,7 @@ class PortalMetadata(BasePortal, ABC):
|
||||
self.save()
|
||||
await self.update_bridge_info()
|
||||
if self.sync_matrix_state:
|
||||
await self.sync_matrix_members()
|
||||
await self.main_intent.get_joined_members(self.mxid)
|
||||
puppet = p.Puppet.get_by_custom_mxid(user.mxid)
|
||||
if puppet:
|
||||
try:
|
||||
|
||||
+1
-1
@@ -4,6 +4,6 @@ ruamel.yaml>=0.15.35,<0.17
|
||||
python-magic>=0.4,<0.5
|
||||
commonmark>=0.8,<0.10
|
||||
aiohttp>=3,<4
|
||||
mautrix==0.6.0.beta5
|
||||
mautrix==0.6.0.beta6
|
||||
telethon>=1.13,<1.16
|
||||
telethon-session-sqlalchemy>=0.2.14,<0.3
|
||||
|
||||
Reference in New Issue
Block a user