From 200616c15ae173ef4882da92fd7aec48dcffefda Mon Sep 17 00:00:00 2001 From: AiraNadih <128119996+AiraNadih@users.noreply.github.com> Date: Thu, 3 Apr 2025 00:49:35 +0000 Subject: [PATCH] perf(route/baobua): cache paginated content to reduce API requests --- lib/routes/baobua/article.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/routes/baobua/article.ts b/lib/routes/baobua/article.ts index f9f90dd89f..882c692816 100644 --- a/lib/routes/baobua/article.ts +++ b/lib/routes/baobua/article.ts @@ -1,4 +1,5 @@ import { load } from 'cheerio'; +import cache from '@/utils/cache'; import got from '@/utils/got'; import { parseDate } from '@/utils/parse-date'; @@ -32,8 +33,12 @@ async function loadArticle(link) { const additionalContents = await Promise.all( Array.from({ length: totalPages - 1 }, async (_, i) => { try { - const response = await got(`${link}?page=${i + 2}`); - const pageDom = load(response.body); + const url = `${link}?page=${i + 2}`; + const html = await cache.tryGet(url, async () => { + const response = await got(url); + return response.body; + }); + const pageDom = load(typeof html === 'string' ? html : ''); return pageDom('.contentme2').html() ?? ''; } catch { return '';