From 1d388fe62a545294a92f6172d49f6bfb99fd73b1 Mon Sep 17 00:00:00 2001 From: morethanwords Date: Wed, 27 Oct 2021 20:31:05 +0300 Subject: [PATCH] Support new /joinchat/ url format --- src/lib/appManagers/appImManager.ts | 3 ++- src/lib/richtextprocessor.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/appManagers/appImManager.ts b/src/lib/appManagers/appImManager.ts index 119a3797..d34c8db2 100644 --- a/src/lib/appManagers/appImManager.ts +++ b/src/lib/appManagers/appImManager.ts @@ -308,12 +308,13 @@ export class AppImManager { } }); + // Support old t.me/joinchat/asd and new t.me/+asd this.addAnchorListener<{pathnameParams: ['joinchat', string]}>({ name: 'joinchat', callback: ({pathnameParams}) => { const link: InternalLink = { _: INTERNAL_LINK_TYPE.JOIN_CHAT, - invite: pathnameParams[1] + invite: pathnameParams[1] || decodeURIComponent(pathnameParams[0]).slice(1) }; this.processInternalLink(link); diff --git a/src/lib/richtextprocessor.ts b/src/lib/richtextprocessor.ts index 46d8d0e4..45eafc33 100644 --- a/src/lib/richtextprocessor.ts +++ b/src/lib/richtextprocessor.ts @@ -847,6 +847,12 @@ namespace RichTextProcessor { url = 'tg://unsafe_url?url=' + encodeURIComponent(url); } else */if((tgMeMatch = url.match(/^(?:https?:\/\/)?t(?:elegram)?\.me\/(.+)/))) { const fullPath = tgMeMatch[1]; + + if(/^\W/.test(fullPath)) { + onclick = 'joinchat'; + return {url, onclick}; + } + const path = fullPath.split('/'); switch(path[0]) { case 'joinchat':