From d9f41423bf2b7ddbf947d9ebad3a008acc40f90a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=90M=E6=B0=8F?= Date: Wed, 7 Aug 2024 11:20:25 +0000 Subject: [PATCH 1/3] chore: modify getPost function to handle different message text classes --- src/lib/telegram/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/telegram/index.js b/src/lib/telegram/index.js index dddc5d7..1b28fe0 100644 --- a/src/lib/telegram/index.js +++ b/src/lib/telegram/index.js @@ -92,7 +92,9 @@ function modifyHTMLContent($, content, { index } = {}) { function getPost($, item, { channel, staticProxy, index = 0 }) { item = item ? $(item).find('.tgme_widget_message') : $('.tgme_widget_message') - const content = modifyHTMLContent($, $(item).find('.tgme_widget_message_text'), { index }) + const content = $(item).find('.js-message_reply_text').length > 0 + ? modifyHTMLContent($, $(item).find('.tgme_widget_message_text.js-message_text'), { index }) + : modifyHTMLContent($, $(item).find('.tgme_widget_message_text'), { index }) const title = content?.text()?.match(/[^。\n]*(?=[。\n]|http)/g)?.[0] ?? content?.text() ?? '' const id = $(item).attr('data-post')?.replace(`${channel}/`, '') From 2a4a3be3ccc926227b646a6583a6e8ecafd09fdc Mon Sep 17 00:00:00 2001 From: ccbikai Date: Wed, 7 Aug 2024 21:49:38 +0800 Subject: [PATCH 2/3] feat: enhance null safety in content retrieval Improved content retrieval logic to handle potential null values, enhancing robustness and reliability of the Telegram message parsing functionality. --- src/lib/telegram/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/telegram/index.js b/src/lib/telegram/index.js index b1d4969..5b4a04e 100644 --- a/src/lib/telegram/index.js +++ b/src/lib/telegram/index.js @@ -99,7 +99,7 @@ function modifyHTMLContent($, content, { index } = {}) { function getPost($, item, { channel, staticProxy, index = 0 }) { item = item ? $(item).find('.tgme_widget_message') : $('.tgme_widget_message') - const content = $(item).find('.js-message_reply_text').length > 0 + const content = $(item).find('.js-message_reply_text')?.length > 0 ? modifyHTMLContent($, $(item).find('.tgme_widget_message_text.js-message_text'), { index }) : modifyHTMLContent($, $(item).find('.tgme_widget_message_text'), { index }) const title = content?.text()?.match(/[^。\n]*(?=[。\n]|http)/g)?.[0] ?? content?.text() ?? '' From e7cd5d61ca70eee0ef6e5b3d114b9b6649c0a1e3 Mon Sep 17 00:00:00 2001 From: ccbikai Date: Wed, 7 Aug 2024 21:56:03 +0800 Subject: [PATCH 3/3] feat: enhance reply handling in posts Refactor to improve handling of reply links within posts by introducing a dedicated function, ensuring more accurate and consistent URL modifications. This enhancement simplifies future maintenance and scalability of the codebase. --- src/lib/telegram/index.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/lib/telegram/index.js b/src/lib/telegram/index.js index 5b4a04e..5d1b45f 100644 --- a/src/lib/telegram/index.js +++ b/src/lib/telegram/index.js @@ -83,6 +83,19 @@ function getLinkPreview($, item, { staticProxy, index }) { return $.html(link) } +function getReply($, item, { channel }) { + const reply = $(item).find('.tgme_widget_message_reply') + reply?.wrapInner('')?.wrapInner('
') + + const href = reply?.attr('href') + if (href) { + const url = new URL(href) + reply?.attr('href', `${url.pathname}`.replace(channel, 'posts')) + } + + return $.html(reply) +} + function modifyHTMLContent($, content, { index } = {}) { $(content).find('.emoji')?.attr('style', '') $(content).find('a')?.each((_index, a) => { @@ -117,7 +130,7 @@ function getPost($, item, { channel, staticProxy, index = 0 }) { tags, text: content?.text(), content: [ - $.html($(item).find('.tgme_widget_message_reply')?.wrapInner('')?.wrapInner('
')), + getReply($, item, { channel }), getImages($, item, { staticProxy, id, index, title }), getVideo($, item, { staticProxy, id, index, title }), getAudio($, item, { staticProxy, id, index, title }),