RSSHub/lib/routes/afdian/dynamic.ts

48 lines
1.5 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 got from '@/utils/got';
import type { Route } from '@/types';
export const route: Route = {
path: '/dynamic/:uid?',
categories: ['other'],
example: '/afdian/dynamic/@afdian',
parameters: { uid: '用户id用户动态页面url里可找到' },
name: '用户动态',
maintainers: ['sanmmm'],
handler,
};
async function handler(ctx) {
const url_slug = ctx.req.param('uid').replace('@', '');
const baseUrl = 'https://afdian.net';
const userInfoRes = await got(`${baseUrl}/api/user/get-profile-by-slug`, {
searchParams: {
url_slug,
},
});
const userInfo = userInfoRes.data.data.user;
const { user_id, name, avatar } = userInfo;
const dynamicRes = await got(`${baseUrl}/api/post/get-list`, {
searchParams: {
type: 'old',
user_id,
},
});
const list = dynamicRes.data.data.list.map((item) => {
const { publish_time, title, content, pics = [], post_id } = item;
return {
title,
description: [content, pics.map((url) => `<img src="${url}"/>`).join('')].filter((str) => !!str).join('<br/>'),
link: `${baseUrl}/p/${post_id}`,
pubDate: new Date(Number(publish_time) * 1000).toUTCString(),
};
});
return {
title: `${name}的爱发电动态`,
description: `${name}的爱发电动态`,
image: avatar,
link: `${baseUrl}/@${url_slug}`,
item: list,
};
}