From add128017fde92fb9690f04be811d6bcf376f5bc Mon Sep 17 00:00:00 2001 From: morethanwords Date: Sat, 31 Oct 2020 01:30:43 +0200 Subject: [PATCH] Implement messageActionBotAllowed --- src/lib/appManagers/appMessagesManager.ts | 28 +++++++++++++++++------ src/lib/langPack.ts | 2 ++ src/lib/richtextprocessor.ts | 2 +- src/scss/partials/_chatBubble.scss | 10 ++++++++ 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/lib/appManagers/appMessagesManager.ts b/src/lib/appManagers/appMessagesManager.ts index 6edf38a8..16fa274c 100644 --- a/src/lib/appManagers/appMessagesManager.ts +++ b/src/lib/appManagers/appMessagesManager.ts @@ -1,7 +1,7 @@ import ProgressivePreloader from "../../components/preloader"; import { CancellablePromise, deferredPromise } from "../../helpers/cancellablePromise"; import { randomLong } from "../../helpers/random"; -import { Dialog as MTDialog, DialogFilter, DialogPeer, DocumentAttribute, InputMessage, Message, MessagesDialogs, MessagesFilter, MessagesMessages, MessagesPeerDialogs, MethodDeclMap, PhotoSize, SendMessageAction, Update } from "../../layer"; +import { Dialog as MTDialog, DialogFilter, DialogPeer, DocumentAttribute, InputMessage, Message, MessageAction, MessagesDialogs, MessagesFilter, MessagesMessages, MessagesPeerDialogs, MethodDeclMap, PhotoSize, SendMessageAction, Update } from "../../layer"; import { InvokeApiOptions, Modify } from "../../types"; import { langPack } from "../langPack"; import { logger, LogLevels } from "../logger"; @@ -2506,11 +2506,11 @@ export class AppMessagesManager { } public wrapMessageActionText(message: any) { - const action = message.action; + const action = message.action as MessageAction; let str = ''; - if(action.message) { - str = RichTextProcessor.wrapRichText(action.message, {noLinebreaks: true}); + if((action as MessageAction.messageActionCustomAction).message) { + str = RichTextProcessor.wrapRichText((action as MessageAction.messageActionCustomAction).message, {noLinebreaks: true}); } else { let _ = action._; let suffix = ''; @@ -2521,9 +2521,9 @@ export class AppMessagesManager { return title ? `
${title}
` : ''; }; - switch(_) { + switch(action._) { case "messageActionPhoneCall": { - _ += '.' + action.type; + _ += '.' + (action as any).type; const duration = action.duration; if(duration) { @@ -2539,14 +2539,28 @@ export class AppMessagesManager { } case 'messageActionChatDeleteUser': + // @ts-ignore case 'messageActionChatAddUsers': case 'messageActionChatAddUser': { - let users: number[] = action.users || [action.user_id]; + const users: number[] = (action as MessageAction.messageActionChatAddUser).users || [(action as MessageAction.messageActionChatDeleteUser).user_id]; l = langPack[_].replace('{}', users.map((userID: number) => getNameDivHTML(userID)).join(', ')); break; } + case 'messageActionBotAllowed': { + const anchorHTML = RichTextProcessor.wrapRichText(action.domain, { + entities: [{ + _: 'messageEntityUrl', + length: action.domain.length, + offset: 0 + }] + }); + + l = langPack[_].replace('{}', anchorHTML); + break; + } + default: str = langPack[_] || `[${action._}]`; break; diff --git a/src/lib/langPack.ts b/src/lib/langPack.ts index 5fd2d292..85b88791 100644 --- a/src/lib/langPack.ts +++ b/src/lib/langPack.ts @@ -24,4 +24,6 @@ export const langPack: {[actionType: string]: string} = { "messageActionPhoneCall.out_ok": "Outgoing Call", "messageActionPhoneCall.in_missed": "Missed Call", "messageActionPhoneCall.out_missed": "Cancelled Call", + + "messageActionBotAllowed": "You allowed this bot to message you when logged in {}" }; \ No newline at end of file diff --git a/src/lib/richtextprocessor.ts b/src/lib/richtextprocessor.ts index 33ac72fd..1fb38f0a 100644 --- a/src/lib/richtextprocessor.ts +++ b/src/lib/richtextprocessor.ts @@ -743,7 +743,7 @@ namespace RichTextProcessor { return wrapRichText(text, {entities}); } - export function wrapUrl(url: string, unsafe: number | boolean): string { + export function wrapUrl(url: string, unsafe?: number | boolean): string { if(!url.match(/^https?:\/\//i)) { url = 'https://' + url; } diff --git a/src/scss/partials/_chatBubble.scss b/src/scss/partials/_chatBubble.scss index 86c27873..8f0f403f 100644 --- a/src/scss/partials/_chatBubble.scss +++ b/src/scss/partials/_chatBubble.scss @@ -1187,6 +1187,16 @@ $bubble-margin: .25rem; font-style: normal; } + a { + color: #fff; + } + + a, .name { + &:hover { + text-decoration: underline; + } + } + .name { cursor: pointer; //margin-right: 5px;