From dbd3826e80ef63472a51f072f38dc5cbf0959364 Mon Sep 17 00:00:00 2001 From: Sunny <76834004+tyl0622@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:00:07 +0800 Subject: [PATCH] feat(route): Add route for njuferret.github.io (#15219) * Add route for njuferret.github.io * Improve: use spread operator * Update lib/routes/njuferret/blog.ts --- lib/routes/njuferret/blog.ts | 41 +++++++++++++++++++++++++++++++ lib/routes/njuferret/namespace.ts | 10 ++++++++ 2 files changed, 51 insertions(+) create mode 100644 lib/routes/njuferret/blog.ts create mode 100644 lib/routes/njuferret/namespace.ts diff --git a/lib/routes/njuferret/blog.ts b/lib/routes/njuferret/blog.ts new file mode 100644 index 000000000..1014f6515 --- /dev/null +++ b/lib/routes/njuferret/blog.ts @@ -0,0 +1,41 @@ +import { Route } from '@/types'; +import ofetch from '@/utils/ofetch'; +import { load } from 'cheerio'; +import { parseDate } from '@/utils/parse-date'; + +export const route: Route = { + path: '/blog', + categories: ['blog'], + example: '/njuferret/blog', + radar: [ + { + source: ['njuferret.github.io'], + }, + ], + name: 'Blogs', + maintainers: ['tyl0622'], + handler, +}; + +async function handler() { + const baseUrl = 'https://njuferret.github.io'; + const response = await ofetch(baseUrl); + const $ = load(response); + + const items = $('div.post-block') + .toArray() + .map((item) => { + item = $(item); + const a = item.find('a').first(); + return { + title: a.text(), + link: `${baseUrl}${a.attr('href')}`, + pubDate: parseDate(item.find('time').attr('datetime')), + }; + }); + + return { + title: 'njuferret - blog', + item: items, + }; +} diff --git a/lib/routes/njuferret/namespace.ts b/lib/routes/njuferret/namespace.ts new file mode 100644 index 000000000..b566c2703 --- /dev/null +++ b/lib/routes/njuferret/namespace.ts @@ -0,0 +1,10 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: 'njuferret', + url: 'njuferret.github.io', + description: '', + zh: { + name: '有点博客', + }, +};