Fix potential duplicate unauthenticated user join/leave message in Matrix

This commit is contained in:
Tulir Asokan
2018-05-19 16:18:04 +03:00
parent 87a715aa10
commit 0833850f4f
+10 -8
View File
@@ -584,10 +584,11 @@ class Portal:
async def leave_matrix(self, user, source, event_id):
if not user.logged_in:
response = await self.bot.client.send_message(
self.peer, f"__{user.displayname} left the room.__", markdown=True)
space = self.tgid if self.peer_type == "channel" else self.bot.tgid
self.is_duplicate(response, (event_id, space))
async with self.require_send_lock(self.bot.tgid):
response = await self.bot.client.send_message(
self.peer, f"__{user.displayname} left the room.__", markdown=True)
space = self.tgid if self.peer_type == "channel" else self.bot.tgid
self.is_duplicate(response, (event_id, space))
return
if self.peer_type == "user":
@@ -615,10 +616,11 @@ class Portal:
async def join_matrix(self, user, event_id):
if not user.logged_in:
response = await self.bot.client.send_message(
self.peer, f"__{user.displayname} joined the room.__", markdown=True)
space = self.tgid if self.peer_type == "channel" else self.bot.tgid
self.is_duplicate(response, (event_id, space))
async with self.require_send_lock(self.bot.tgid):
response = await self.bot.client.send_message(
self.peer, f"__{user.displayname} joined the room.__", markdown=True)
space = self.tgid if self.peer_type == "channel" else self.bot.tgid
self.is_duplicate(response, (event_id, space))
return
if self.peer_type == "channel":