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", "nodejs-base64": "^2.0.0",
"oicq": "https://0w.al/AhKp.tar.gz", "oicq": "https://0w.al/AhKp.tar.gz",
"prompts": "^2.4.2", "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", "sharp": "^0.31.3",
"silk-sdk": "^0.2.2", "silk-sdk": "^0.2.2",
"telegram": "^2.15.2", "telegram": "^2.15.2",

View File

@ -190,51 +190,54 @@ export default class {
last_name: sender.lastName, last_name: sender.lastName,
photo: photo ? { url: photo } : null, photo: photo ? { url: photo } : null,
}; };
quoteMessage.entities = originTgMessage.entities?.map?.(it => { if (originTgMessage.entities)
let type = ''; quoteMessage.entities = await Promise.all(originTgMessage.entities?.map?.(async it => {
let custom_emoji_id = ''; let type = '';
switch (it.className) { let emoji = '';
case 'MessageEntityBold': switch (it.className) {
type = 'bold'; case 'MessageEntityBold':
break; type = 'bold';
case 'MessageEntityItalic': break;
type = 'italic'; case 'MessageEntityItalic':
break; type = 'italic';
case 'MessageEntityStrike': break;
type = 'strikethrough'; case 'MessageEntityStrike':
break; type = 'strikethrough';
case 'MessageEntityUnderline': break;
type = 'underline'; case 'MessageEntityUnderline':
break; type = 'underline';
case 'MessageEntitySpoiler': break;
type = 'spoiler'; case 'MessageEntitySpoiler':
break; type = 'spoiler';
case 'MessageEntityCode': break;
case 'MessageEntityPre': case 'MessageEntityCode':
type = 'code'; case 'MessageEntityPre':
break; type = 'code';
case 'MessageEntityMention': break;
case 'MessageEntityMentionName': case 'MessageEntityMention':
case 'InputMessageEntityMentionName': case 'MessageEntityMentionName':
case 'MessageEntityHashtag': case 'InputMessageEntityMentionName':
case 'MessageEntityEmail': case 'MessageEntityHashtag':
case 'MessageEntityPhone': case 'MessageEntityEmail':
case 'MessageEntityBotCommand': case 'MessageEntityPhone':
case 'MessageEntityUrl': case 'MessageEntityBotCommand':
case 'MessageEntityTextUrl': case 'MessageEntityUrl':
type = 'mention'; case 'MessageEntityTextUrl':
break; type = 'mention';
case 'MessageEntityCustomEmoji': break;
type = 'custom_emoji'; case 'MessageEntityCustomEmoji':
custom_emoji_id = it.documentId.toString(); type = 'custom_emoji';
break; emoji = await convert.customEmoji(it.documentId.toString(16),
} () => this.tgBot.getCustomEmoji(it.documentId),
return { false);
type, custom_emoji_id, break;
offset: it.offset, }
length: it.length, return {
}; type, emoji,
}); offset: it.offset,
length: it.length,
};
}));
} }
if (originTgMessage.voice) { 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"; }; "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"; }; "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"; }; "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"; }; "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"; }; "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"; }; "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 nodejs-base64: ^2.0.0
oicq: "https://0w.al/AhKp.tar.gz" oicq: "https://0w.al/AhKp.tar.gz"
prompts: ^2.4.2 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 sharp: ^0.31.3
silk-sdk: ^0.2.2 silk-sdk: ^0.2.2
telegram: ^2.15.2 telegram: ^2.15.2
@ -3375,9 +3375,9 @@ __metadata:
languageName: node languageName: node
linkType: hard 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 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: dependencies:
canvas: "git+https://github.com/Automattic/node-canvas#198080580a0e3938c48daae357b88a1638a9ddcd" canvas: "git+https://github.com/Automattic/node-canvas#198080580a0e3938c48daae357b88a1638a9ddcd"
dotenv: ^7.0.0 dotenv: ^7.0.0
@ -3398,7 +3398,7 @@ __metadata:
sharp: ^0.30.5 sharp: ^0.30.5
smartcrop-sharp: ^2.0.4 smartcrop-sharp: ^2.0.4
telegraf: ^3.38.0 telegraf: ^3.38.0
checksum: 4c0193ad25f1ae77fc93cfc4f79cf5eceadad85b103d10ddc6eed7832e0dd37a200ea95194c1b0eef7ffbb3203492660ad95b844f4f950ac3fe62433c2ca1bee checksum: 3ab66e3bd6d45c77d01733a94c642ce03cda542d97f9da296cb4a73721d2d8a70b530b5e02c8906ede41a919970899712274a664921b2f991643aa916ebed99e
languageName: node languageName: node
linkType: hard linkType: hard