perf: support custom emoji

This commit is contained in:
Clansty 2023-01-16 15:53:59 +08:00
parent e383f67173
commit 8f65eebf4e
4 changed files with 54 additions and 51 deletions

View File

@ -39,7 +39,7 @@
"nodejs-base64": "^2.0.0",
"oicq": "https://0w.al/AhKp.tar.gz",
"prompts": "^2.4.2",
"quote-api": "https://github.com/Clansty/quote-api/archive/7ed021c0159f61cadc6ebe73e8da6e05695945aa.tar.gz",
"quote-api": "https://github.com/Clansty/quote-api/archive/7d9b4c56ab1e9f3cdf1cd7e108ec25821d89ad70.tar.gz",
"sharp": "^0.31.3",
"silk-sdk": "^0.2.2",
"telegram": "^2.15.2",

View File

@ -190,51 +190,54 @@ export default class {
last_name: sender.lastName,
photo: photo ? { url: photo } : null,
};
quoteMessage.entities = originTgMessage.entities?.map?.(it => {
let type = '';
let custom_emoji_id = '';
switch (it.className) {
case 'MessageEntityBold':
type = 'bold';
break;
case 'MessageEntityItalic':
type = 'italic';
break;
case 'MessageEntityStrike':
type = 'strikethrough';
break;
case 'MessageEntityUnderline':
type = 'underline';
break;
case 'MessageEntitySpoiler':
type = 'spoiler';
break;
case 'MessageEntityCode':
case 'MessageEntityPre':
type = 'code';
break;
case 'MessageEntityMention':
case 'MessageEntityMentionName':
case 'InputMessageEntityMentionName':
case 'MessageEntityHashtag':
case 'MessageEntityEmail':
case 'MessageEntityPhone':
case 'MessageEntityBotCommand':
case 'MessageEntityUrl':
case 'MessageEntityTextUrl':
type = 'mention';
break;
case 'MessageEntityCustomEmoji':
type = 'custom_emoji';
custom_emoji_id = it.documentId.toString();
break;
}
return {
type, custom_emoji_id,
offset: it.offset,
length: it.length,
};
});
if (originTgMessage.entities)
quoteMessage.entities = await Promise.all(originTgMessage.entities?.map?.(async it => {
let type = '';
let emoji = '';
switch (it.className) {
case 'MessageEntityBold':
type = 'bold';
break;
case 'MessageEntityItalic':
type = 'italic';
break;
case 'MessageEntityStrike':
type = 'strikethrough';
break;
case 'MessageEntityUnderline':
type = 'underline';
break;
case 'MessageEntitySpoiler':
type = 'spoiler';
break;
case 'MessageEntityCode':
case 'MessageEntityPre':
type = 'code';
break;
case 'MessageEntityMention':
case 'MessageEntityMentionName':
case 'InputMessageEntityMentionName':
case 'MessageEntityHashtag':
case 'MessageEntityEmail':
case 'MessageEntityPhone':
case 'MessageEntityBotCommand':
case 'MessageEntityUrl':
case 'MessageEntityTextUrl':
type = 'mention';
break;
case 'MessageEntityCustomEmoji':
type = 'custom_emoji';
emoji = await convert.customEmoji(it.documentId.toString(16),
() => this.tgBot.getCustomEmoji(it.documentId),
false);
break;
}
return {
type, emoji,
offset: it.offset,
length: it.length,
};
}));
}
if (originTgMessage.voice) {

View File

@ -402,7 +402,7 @@ cacheEntries = {
"aggregate-error@npm:3.1.0" = { filename = "aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip"; sha512 = "1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79"; };
"clean-stack@npm:2.2.0" = { filename = "clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip"; sha512 = "2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68"; };
"indent-string@npm:4.0.0" = { filename = "indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip"; sha512 = "824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612"; };
"quote-api@https://github.com/Clansty/quote-api/archive/7ed021c0159f61cadc6ebe73e8da6e05695945aa.tar.gz" = { filename = "quote-api-https-7249c153cc-4c0193ad25.zip"; sha512 = "4c0193ad25f1ae77fc93cfc4f79cf5eceadad85b103d10ddc6eed7832e0dd37a200ea95194c1b0eef7ffbb3203492660ad95b844f4f950ac3fe62433c2ca1bee"; };
"quote-api@https://github.com/Clansty/quote-api/archive/7d9b4c56ab1e9f3cdf1cd7e108ec25821d89ad70.tar.gz" = { filename = "quote-api-https-70c461cfa6-3ab66e3bd6.zip"; sha512 = "3ab66e3bd6d45c77d01733a94c642ce03cda542d97f9da296cb4a73721d2d8a70b530b5e02c8906ede41a919970899712274a664921b2f991643aa916ebed99e"; };
"dotenv@npm:7.0.0" = { filename = "dotenv-npm-7.0.0-9fbf3b4fd8-18a7b3ef0e.zip"; sha512 = "18a7b3ef0e90fd6fcce7c7cbdd48d923b0cb180807540b80c797bda4a098097e17820d6315ae28eec22f73954cd0ab9d81904d46370183817c09f694d40566ff"; };
"emoji-db@npm:14.0.1" = { filename = "emoji-db-npm-14.0.1-ddd447583f-c16918c3a5.zip"; sha512 = "c16918c3a56a86bccc990445c067ef858b60bee3e38e7d6456d46ee297eb3a11e99fb142fb9425bc29947680c7892264bb082b9dc90a9260d09ab9d59c0ca443"; };
"koa-response-time@npm:2.1.0" = { filename = "koa-response-time-npm-2.1.0-008d050cd4-c51c0e29aa.zip"; sha512 = "c51c0e29aa2c8863dfbce422565908b0356c04cab3fa6971c541ab222f3bb24a913ea00b2111cea13fd6b895cd95d4219e05b128bee90289eb2dc90f629b3b73"; };

View File

@ -3346,7 +3346,7 @@ __metadata:
nodejs-base64: ^2.0.0
oicq: "https://0w.al/AhKp.tar.gz"
prompts: ^2.4.2
quote-api: "https://github.com/Clansty/quote-api/archive/7ed021c0159f61cadc6ebe73e8da6e05695945aa.tar.gz"
quote-api: "https://github.com/Clansty/quote-api/archive/7d9b4c56ab1e9f3cdf1cd7e108ec25821d89ad70.tar.gz"
sharp: ^0.31.3
silk-sdk: ^0.2.2
telegram: ^2.15.2
@ -3375,9 +3375,9 @@ __metadata:
languageName: node
linkType: hard
"quote-api@https://github.com/Clansty/quote-api/archive/7ed021c0159f61cadc6ebe73e8da6e05695945aa.tar.gz":
"quote-api@https://github.com/Clansty/quote-api/archive/7d9b4c56ab1e9f3cdf1cd7e108ec25821d89ad70.tar.gz":
version: 0.12.1.clansty2
resolution: "quote-api@https://github.com/Clansty/quote-api/archive/7ed021c0159f61cadc6ebe73e8da6e05695945aa.tar.gz"
resolution: "quote-api@https://github.com/Clansty/quote-api/archive/7d9b4c56ab1e9f3cdf1cd7e108ec25821d89ad70.tar.gz"
dependencies:
canvas: "git+https://github.com/Automattic/node-canvas#198080580a0e3938c48daae357b88a1638a9ddcd"
dotenv: ^7.0.0
@ -3398,7 +3398,7 @@ __metadata:
sharp: ^0.30.5
smartcrop-sharp: ^2.0.4
telegraf: ^3.38.0
checksum: 4c0193ad25f1ae77fc93cfc4f79cf5eceadad85b103d10ddc6eed7832e0dd37a200ea95194c1b0eef7ffbb3203492660ad95b844f4f950ac3fe62433c2ca1bee
checksum: 3ab66e3bd6d45c77d01733a94c642ce03cda542d97f9da296cb4a73721d2d8a70b530b5e02c8906ede41a919970899712274a664921b2f991643aa916ebed99e
languageName: node
linkType: hard