mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-01 14:57:14 +08:00
feat(route): Add 小米社区用户发帖 (#14920)
* feat(route): Add 小米社区用户发帖 * fix: use logical operator * fix: apply radar suggestion Co-authored-by: Tony <TonyRL@users.noreply.github.com> * wip: migrate route to `miui` * fix: migrate miui firmware update to `firmware` ---------
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
import { Route, Data } from '@/types';
|
||||
import got from '@/utils/got';
|
||||
|
||||
export const route: Route = {
|
||||
path: '/community/user/:uid',
|
||||
categories: ['bbs'],
|
||||
example: '/miui/community/user/1200057564',
|
||||
parameters: {
|
||||
uid: '小米用户 UID,可于网页版用户主页链接中 `uid` 项获取',
|
||||
},
|
||||
features: {
|
||||
requireConfig: false,
|
||||
requirePuppeteer: false,
|
||||
antiCrawler: false,
|
||||
supportBT: false,
|
||||
supportPodcast: false,
|
||||
supportScihub: false,
|
||||
},
|
||||
radar: [
|
||||
{
|
||||
source: ['web.vip.miui.com/page/info/mio/mio/homePage'],
|
||||
target: (_, url) => `/miui/community/user/${new URL(url).searchParams.get('uid')}`,
|
||||
},
|
||||
],
|
||||
name: '小米社区用户发帖',
|
||||
maintainers: ['abc1763613206'],
|
||||
handler,
|
||||
};
|
||||
|
||||
const userRoot = 'https://web.vip.miui.com/page/info/mio/mio/homePage';
|
||||
const apiRoot = 'https://api.vip.miui.com/api/community/user/announce/list';
|
||||
const pageRoot = 'https://web.vip.miui.com/page/info/mio/mio/detail';
|
||||
|
||||
async function handler(ctx): Promise<Data> {
|
||||
const uid = ctx.req.param('uid');
|
||||
const apiLink = `${apiRoot}?uid=${uid}&limit=10`;
|
||||
const userLink = `${userRoot}?uid=${uid}`;
|
||||
const { data } = await got({
|
||||
method: 'get',
|
||||
url: apiLink,
|
||||
headers: {
|
||||
Referer: userLink,
|
||||
},
|
||||
});
|
||||
if (data.code === 200) {
|
||||
let authorName = '';
|
||||
const records = data.entity.records;
|
||||
const items = records.map((item) => {
|
||||
authorName = item.author.name;
|
||||
return {
|
||||
title: item.title || `${authorName} 的动态`,
|
||||
description: item.textContent,
|
||||
pubDate: new Date(item.createTime).toUTCString(),
|
||||
author: item.author.name,
|
||||
link: `${pageRoot}?postId=${item.id}`,
|
||||
image: item.pic || item.cover || '',
|
||||
};
|
||||
});
|
||||
return {
|
||||
title: `小米社区 - ${authorName} 的发帖`,
|
||||
link: userLink,
|
||||
description: `${authorName} 的发帖`,
|
||||
item: items,
|
||||
language: 'zh-cn',
|
||||
};
|
||||
} else {
|
||||
throw new Error(data.message);
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,9 @@ import got from '@/utils/got';
|
||||
import queryString from 'query-string';
|
||||
|
||||
export const route: Route = {
|
||||
path: '/:device/:type?/:region?',
|
||||
path: '/firmware/:device/:type?/:region?',
|
||||
categories: ['program-update'],
|
||||
example: '/miui/aries',
|
||||
example: '/miui/firmware/aries',
|
||||
parameters: { device: 'the device `codename` eg. `aries` for Mi 2S', type: 'type', region: 'Region, default to `cn`' },
|
||||
name: 'New firmware',
|
||||
maintainers: ['Indexyz'],
|
||||
Reference in New Issue
Block a user