From f68f81c49df9ae797f4450cbbbf643c4453535c9 Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 6 May 2025 02:07:35 +0800 Subject: [PATCH] fix(utils/common-config): import parseDate and timezone functions for date handling (#19023) --- lib/routes/jewishmuseum/exhibitions.ts | 4 ++-- lib/setup.test.ts | 2 ++ lib/utils/common-config.test.ts | 5 +++-- lib/utils/common-config.ts | 8 +++++++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/routes/jewishmuseum/exhibitions.ts b/lib/routes/jewishmuseum/exhibitions.ts index 2077f35ad8..47caa13fdf 100644 --- a/lib/routes/jewishmuseum/exhibitions.ts +++ b/lib/routes/jewishmuseum/exhibitions.ts @@ -28,8 +28,8 @@ async function handler() { title: 'Jewish Museums - Exhibitions', item: { item: '#current article.exhibition, #upcoming article, #past article.exhibition', - title: `$('article.exhibition h3').text()`, - link: `$('article.exhibition > a').attr('href')`, + title: `$('h3').text()`, + link: `$('h3').parent().attr('href')`, }, }); } diff --git a/lib/setup.test.ts b/lib/setup.test.ts index d4c65a009f..b479f4f9a9 100644 --- a/lib/setup.test.ts +++ b/lib/setup.test.ts @@ -48,10 +48,12 @@ const server = setupServer(
  • 1
    RSSHub1
    +
    2025-01-01
  • 2
    RSSHub2
    +
    2025-01-02
  • `) diff --git a/lib/utils/common-config.test.ts b/lib/utils/common-config.test.ts index 57839fd38e..d739ffeb3f 100644 --- a/lib/utils/common-config.test.ts +++ b/lib/utils/common-config.test.ts @@ -51,6 +51,7 @@ describe('index', () => { title: `$('a').text() + ' - %title%'`, link: `$('a').attr('href')`, description: `$('.description').html()`, + pubDate: `timezone(parseDate($('.date').text(), 'YYYY-MM-DD'), 0)`, }, }); @@ -62,14 +63,14 @@ describe('index', () => { description: 'RSSHub1', guid: undefined, link: '/1', - pubDate: undefined, + pubDate: new Date('2025-01-01T00:00:00Z'), title: '1 - buildData', }, { description: 'RSSHub2', guid: undefined, link: '/2', - pubDate: undefined, + pubDate: new Date('2025-01-02T00:00:00Z'), title: '2 - buildData', }, ], diff --git a/lib/utils/common-config.ts b/lib/utils/common-config.ts index 4dfe54d16e..d06b2aad86 100644 --- a/lib/utils/common-config.ts +++ b/lib/utils/common-config.ts @@ -1,10 +1,16 @@ import { load } from 'cheerio'; import ofetch from '@/utils/ofetch'; import iconv from 'iconv-lite'; +import { parseDate as _parseDate } from '@/utils/parse-date'; +import _timezone from '@/utils/timezone'; function transElemText($, prop) { const regex = /\$\((.*)\)/g; let result = prop; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const parseDate = _parseDate; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const timezone = _timezone; if (regex.test(result)) { // eslint-disable-next-line no-eval result = eval(result); @@ -43,7 +49,7 @@ async function buildData(data) { let charset = 'utf-8'; for (const attr of contentType.split(';')) { if (attr.includes('charset=')) { - charset = attr.split('=').pop() || 'utf-8'; + charset = (attr.split('=').pop() || 'utf-8').toLowerCase(); } } // @ts-expect-error custom property