diff --git a/lib/routes/google/research.ts b/lib/routes/google/research.ts index 0d87123c83..db5acba430 100644 --- a/lib/routes/google/research.ts +++ b/lib/routes/google/research.ts @@ -2,6 +2,7 @@ import { Route } from '@/types'; import ofetch from '@/utils/ofetch'; import { load } from 'cheerio'; import { parseDate } from '@/utils/parse-date'; +import cache from '@/utils/cache'; const baseUrl = 'https://research.google'; @@ -10,7 +11,7 @@ export const route: Route = { categories: ['blog'], example: '/google/research', name: 'Research Blog', - maintainers: ['Levix'], + maintainers: ['Levix', 'cscnk52'], radar: [ { source: ['research.google'], @@ -19,7 +20,7 @@ export const route: Route = { handler: async () => { const response = await ofetch(`${baseUrl}/blog`); const $ = load(response); - const items = $('div.js-configurable-list .blog-posts-grid__cards .glue-grid__col') + const list = $('div.js-configurable-list .blog-posts-grid__cards .glue-grid__col') .toArray() .map((eleItem) => { const item = $(eleItem); @@ -36,6 +37,17 @@ export const route: Route = { }; }); + const items = await Promise.all( + list.map((item) => + cache.tryGet(item.link, async () => { + const response = await ofetch(item.link); + const $ = load(response); + item.description = $('.blog-detail-wrapper.js-gt-blog-detail-wrapper').html(); + return item; + }) + ) + ); + return { title: 'Google Research Blog', link: `${baseUrl}/blog`,