RSSHub/lib/routes/sspai/bookmarks.ts

66 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { Route } from '@/types';
import got from '@/utils/got';
import { parseDate } from '@/utils/parse-date';
export const route: Route = {
path: '/bookmarks/:slug',
categories: ['new-media'],
example: '/sspai/bookmarks/urfp0d9i',
parameters: { slug: '用户 slug可在个人主页URL中找到' },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
radar: [
{
source: ['sspai.com/u/:slug/bookmark_posts'],
},
],
name: '用户收藏',
maintainers: ['curly210102'],
handler,
};
async function handler(ctx) {
const slug = ctx.req.param('slug');
const link = `https://sspai.com/u/${slug}/bookmark_posts`;
const articleList = (
await got({
method: 'get',
url: `https://sspai.com/api/v1/article/user/favorite/public/page/get?limit=10&offset=0&slug=${slug}&type=all`,
headers: {
Referer: link,
},
})
).data.data;
const user = (
await got({
method: 'get',
url: `https://sspai.com/api/v1/user/slug/info/get?slug=${slug}`,
headers: {
Referer: link,
},
})
).data.data;
const { nickname } = user;
return {
title: `${nickname} 的全部收藏 - 少数派`,
link,
description: `少数派用户「${nickname}」的全部收藏`,
item: articleList.map((article) => ({
title: article.title,
description: article.summary,
link: `https://sspai.com/post/${article.id}`,
pubDate: parseDate(article.released_time * 1000),
author: article.author.nickname,
})),
};
}