From b07900aefaca314979981299ec1f9fab3d3bb44f Mon Sep 17 00:00:00 2001 From: Rnbsov Date: Sun, 10 Mar 2024 22:46:34 +0500 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=91=BE=20Handle=20text-formatted=20li?= =?UTF-8?q?nks=20in=20messages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deno.lock | 30 ++++++++++++++++++++++++++++++ src/utils/getUrlAndLabels.ts | 9 ++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/deno.lock b/deno.lock index 9077963..d3fe559 100644 --- a/deno.lock +++ b/deno.lock @@ -29,6 +29,25 @@ "https://deno.land/std@0.211.0/path/windows/basename.ts": "e2dbf31d1d6385bfab1ce38c333aa290b6d7ae9e0ecb8234a654e583cf22f8fe", "https://deno.land/std@0.211.0/streams/_common.ts": "4f9f2958d853b9a456be033631dabb7519daa68ee4d02caf53e2ecbffaf5805f", "https://deno.land/std@0.211.0/streams/iterate_reader.ts": "353e516908ce637e8b2a2e1301fa60316825667d0d880d47ea4c427a9a7758cf", + "https://deno.land/x/grammy@v1.20.3/bot.ts": "bbfc31f976a27a48992ebb21bcdc137f216eb28e32cc5de0041dcc8fca53d5b8", + "https://deno.land/x/grammy@v1.20.3/composer.ts": "a86dcd6c83e91f720ceb85dab2b1c7b966fc18fc6440848b87b4897fcaa63fc8", + "https://deno.land/x/grammy@v1.20.3/context.ts": "3e9b8e277f8b75bed20b46047ad93b027a182e9d3504f1f2d2bba0852d0bb77f", + "https://deno.land/x/grammy@v1.20.3/convenience/constants.ts": "8d7e2fb9b0f5bd4c10585d8a7528dee573dea5096041b35bebadbb943318d1fc", + "https://deno.land/x/grammy@v1.20.3/convenience/frameworks.ts": "77e2f9fc841ab92d4310b556126447a42f131ad976a6adfff454c016f339b28e", + "https://deno.land/x/grammy@v1.20.3/convenience/inline_query.ts": "409d1940c7670708064efa495003bcbfdf6763a756b2e6303c464489fd3394ff", + "https://deno.land/x/grammy@v1.20.3/convenience/input_media.ts": "7af72a5fdb1af0417e31b1327003f536ddfdf64e06ab8bc7f5da6b574de38658", + "https://deno.land/x/grammy@v1.20.3/convenience/keyboard.ts": "88aeab16f2aaf0b4098135b5f7a678f7d2ce288f28c7eba93eaa5553a7395152", + "https://deno.land/x/grammy@v1.20.3/convenience/session.ts": "f92d57b6b2b61920912cf5c44d4db2f6ca999fe4f9adef170c321889d49667c2", + "https://deno.land/x/grammy@v1.20.3/convenience/webhook.ts": "f1da7d6426171fb7b5d5f6b59633f91d3bab9a474eea821f714932650965eb9e", + "https://deno.land/x/grammy@v1.20.3/core/api.ts": "840c5d39ca953d5bdbf89e61836a8212b22110d142b1606127b9c1a5f7d0b96a", + "https://deno.land/x/grammy@v1.20.3/core/client.ts": "df622a135e71229ffe722406850c9c08b90dcdd4d049b46926128599c73f9dc5", + "https://deno.land/x/grammy@v1.20.3/core/error.ts": "4638b2127ebe60249c78b83011d468f5e1e1a87748d32fe11a8200d9f824ad13", + "https://deno.land/x/grammy@v1.20.3/core/payload.ts": "420e17c3c2830b5576ea187cfce77578fe09f1204b25c25ea2f220ca7c86e73b", + "https://deno.land/x/grammy@v1.20.3/filter.ts": "8bfd76005929c22c42c6fd70064467dd4e8cf6e83de3c8d9d0522930d433e45d", + "https://deno.land/x/grammy@v1.20.3/mod.ts": "7723e08709ff7fd01df3e463503e14e4fd1a581669380eed70351e1121e8a833", + "https://deno.land/x/grammy@v1.20.3/platform.deno.ts": "68272a7e1d9a2d74d8a45342526485dbc0531dee812f675d7f8a4e7fc8393028", + "https://deno.land/x/grammy@v1.20.3/types.deno.ts": "d43290407cdd90eaa67393f8ab53139bfb9f692335a92cb6f1c607ddac706b26", + "https://deno.land/x/grammy@v1.20.3/types.ts": "729415590dfa188dbe924dea614dff4e976babdbabb28a307b869fc25777cdf0", "https://deno.land/x/grammy@v1.21.1/bot.ts": "bbfc31f976a27a48992ebb21bcdc137f216eb28e32cc5de0041dcc8fca53d5b8", "https://deno.land/x/grammy@v1.21.1/composer.ts": "a86dcd6c83e91f720ceb85dab2b1c7b966fc18fc6440848b87b4897fcaa63fc8", "https://deno.land/x/grammy@v1.21.1/context.ts": "3e9b8e277f8b75bed20b46047ad93b027a182e9d3504f1f2d2bba0852d0bb77f", @@ -58,6 +77,17 @@ "https://deno.land/x/grammy_menu@v1.2.1/mod.ts": "ec3d890cabdb7ee1ea72f5fcd1b0b05a84c208975c34251e8a0e9a595e40713b", "https://deno.land/x/grammy_storages@v2.4.1/supabase/src/deps.deno.ts": "74b945bf5c1ade714a1e8de482d752bc952db909f8cffdcceb290d2d74aada3a", "https://deno.land/x/grammy_storages@v2.4.1/supabase/src/mod.ts": "dd28166e9cb8f93dcd67e0732df91753f60ce18da35b13299c3d7467a7d7aad3", + "https://deno.land/x/grammy_types@v3.4.6/api.ts": "ae04d6628e3d25ae805bc07a19475065044fc44cde0a40877405bc3544d03a5f", + "https://deno.land/x/grammy_types@v3.4.6/inline.ts": "594e1e487c94bde6f1d17f457b7b002786eb40b7b3b77ed32b830571e6285b7e", + "https://deno.land/x/grammy_types@v3.4.6/manage.ts": "1d2b76d8735cdb56a2afe89097169ff4403b14016adb73e682fce61bc4c2efad", + "https://deno.land/x/grammy_types@v3.4.6/markup.ts": "bef977ea4c2f17791d6f8a0a8f37f6f7f622967030da4f6b42e41c3a9d797113", + "https://deno.land/x/grammy_types@v3.4.6/message.ts": "24de17e147a992eedebc8b28a553eeb1d62b0aecb93649fbde5f642bd5ad2b47", + "https://deno.land/x/grammy_types@v3.4.6/methods.ts": "9c4d413f1a240e356b58c41a2c9417ccbd42b287d7cab9375c568d5d80ffcb2b", + "https://deno.land/x/grammy_types@v3.4.6/mod.ts": "7b5f421b4fbb1761f7f0d68328eaddd515f3222ce3f3cdfbedd8d5a4781e91a7", + "https://deno.land/x/grammy_types@v3.4.6/passport.ts": "e3fb63aec96510bcc317ef48fd25b435444b8f407502d7568c00fce15f2958fd", + "https://deno.land/x/grammy_types@v3.4.6/payment.ts": "d23e9038c5b479b606e620dd84e3e67b6642ada110a962f2d5b5286e99ec7de5", + "https://deno.land/x/grammy_types@v3.4.6/settings.ts": "5e989f5bd6c587d55673bd8052293869aa2f372e9223dd7f6e28632bfe021b6e", + "https://deno.land/x/grammy_types@v3.4.6/update.ts": "597465794cbf6a6ab8a6e69c24645ed928e79af3d384dce63ae83716ba78ba3e", "https://deno.land/x/grammy_types@v3.5.2/api.ts": "ae04d6628e3d25ae805bc07a19475065044fc44cde0a40877405bc3544d03a5f", "https://deno.land/x/grammy_types@v3.5.2/inline.ts": "12b33002c4d7880b2e80aaee68ac344110360886efe48ab20d40e93b90849f04", "https://deno.land/x/grammy_types@v3.5.2/manage.ts": "3bc9717ba157d3b0e076ff256322f9bf7ea2da28eaf25ea1dbcdc84c9f780804", diff --git a/src/utils/getUrlAndLabels.ts b/src/utils/getUrlAndLabels.ts index 6a360ed..212c23d 100644 --- a/src/utils/getUrlAndLabels.ts +++ b/src/utils/getUrlAndLabels.ts @@ -19,7 +19,14 @@ export function getUrlAndLabels(ctx: Filter) // parse url from the message if (startsWithUrl(message)) { - ({ url, labels } = parseUrls(message)[0]); + ;({ url, labels } = parseUrls(message)[0]) + } else if (ctx.entities('text_link')) { + // handle case when user sends a message with text formatted link + const linkEntity = ctx.entities('text_link').find((entity) => entity.type === 'text_link') + if (linkEntity && linkEntity.url) { + url = linkEntity.url + } + labels = [] } else { // retrieve the first url from the message const urlMatch = message.match(/(?:https?:\/\/|www\.)\S+?(?=\s|$)/); From 2c45bc444787a4d4d8f0abea25997a648a5ac29a Mon Sep 17 00:00:00 2001 From: Rnbsov Date: Sun, 10 Mar 2024 22:47:39 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8D=83=20Fix=20undefined=20case=20whe?= =?UTF-8?q?n=20user=20don't=20have=20last=5Fname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/getSourceLabel.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/getSourceLabel.ts b/src/utils/getSourceLabel.ts index 45cd35d..a1b81ca 100644 --- a/src/utils/getSourceLabel.ts +++ b/src/utils/getSourceLabel.ts @@ -6,7 +6,7 @@ export function getSourceLabel(source: MessageOrigin) { if (source) { switch (source.type) { case 'user': - sourceLabel = { name: `${source.sender_user.first_name} ${source.sender_user.last_name}` } + sourceLabel = { name: `${source.sender_user.first_name} ${source.sender_user.last_name || ''}` } break; case 'hidden_user': sourceLabel = { name: source.sender_user_name }