From 437dee0ddb9906c1839e01117bfbf59350e81606 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 30 Nov 2017 20:42:07 +0200 Subject: [PATCH] Invite all users sent in initial group create action --- src/portal.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/portal.js b/src/portal.js index 214eb040..06293012 100644 --- a/src/portal.js +++ b/src/portal.js @@ -146,16 +146,7 @@ class Portal { switch (evt.action._) { case "messageActionChatCreate": await this.createMatrixRoom(evt.source, { invite: [evt.source.matrixUser.userID] }) - break - case "messageActionChatDeleteUser": - matrixUser = await this.app.getMatrixUserByTelegramID(evt.action.user_id) - if (matrixUser) { - matrixUser.leave(this) - this.kick(matrixUser.userID, "Left Telegram chat") - } - telegramUser = await this.app.getTelegramUser(evt.action.user_id) - telegramUser.intent.leave(this.roomID) - break + // Falls through to invite everyone in initial user list case "messageActionChatAddUser": for (const userID of evt.action.users) { matrixUser = await this.app.getMatrixUserByTelegramID(userID) @@ -167,6 +158,19 @@ class Portal { telegramUser.intent.join(this.roomID) } break + case "messageActionChannelCreate": + // Channels don't send initial user lists 3:< + await this.createMatrixRoom(evt.source, { invite: [evt.source.matrixUser.userID] }) + break + case "messageActionChatDeleteUser": + matrixUser = await this.app.getMatrixUserByTelegramID(evt.action.user_id) + if (matrixUser) { + matrixUser.leave(this) + this.kick(matrixUser.userID, "Left Telegram chat") + } + telegramUser = await this.app.getTelegramUser(evt.action.user_id) + telegramUser.intent.leave(this.roomID) + break default: console.log("Unhandled service message of type", evt.action._) console.log(evt.action)