diff --git a/package.json b/package.json index f041dd1..447944f 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/controllers/QuotLyController.ts b/src/controllers/QuotLyController.ts index 82170b2..4fc6311 100644 --- a/src/controllers/QuotLyController.ts +++ b/src/controllers/QuotLyController.ts @@ -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) { diff --git a/yarn-project.nix b/yarn-project.nix index bf92170..ec2ba71 100644 --- a/yarn-project.nix +++ b/yarn-project.nix @@ -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"; }; diff --git a/yarn.lock b/yarn.lock index e5426cf..78615f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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