feat(route/bestblogs): Add route for weekly selection (#21226)

* feat(route/bestblogs): Add route for weekly selection

* fix(route/thepaper): Linebreak style
This commit is contained in:
occam-7 2026-02-25 16:07:01 +08:00 committed by GitHub
parent 1ee25a0c52
commit 7d2bd7ced1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,49 @@
import type { Route } from '@/types';
import ofetch from '@/utils/ofetch';
import { parseDate } from '@/utils/parse-date';
export const route: Route = {
path: '/newsletter',
categories: ['programming'],
example: '/bestblogs/newsletter',
parameters: {},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
name: '精选推送',
maintainers: ['occam-7'],
handler,
};
async function handler(ctx) {
const pageSize = Number.parseInt(ctx.req.query('limit') ?? '10', 10);
const response = await ofetch('https://api.bestblogs.dev/api/newsletter/list', {
method: 'POST',
body: {
currentPage: 1,
pageSize,
userLanguage: 'zh',
},
});
const list = response.data?.dataList ?? [];
const items = list.map((item) => ({
title: item.title,
link: `https://www.bestblogs.dev/newsletter/${item.id}`,
description: item.summary,
pubDate: parseDate(item.createdTimestamp),
}));
return {
title: 'Bestblogs.dev - 精选推送',
link: 'https://www.bestblogs.dev/newsletter',
item: items,
};
}