diff --git a/lib/routes/miui/community/user.ts b/lib/routes/miui/community/user.ts new file mode 100644 index 00000000000000..49f47bb755de74 --- /dev/null +++ b/lib/routes/miui/community/user.ts @@ -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 { + 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); + } +} diff --git a/lib/routes/miui/index.ts b/lib/routes/miui/firmware/index.ts similarity index 95% rename from lib/routes/miui/index.ts rename to lib/routes/miui/firmware/index.ts index ceb1ed8a76d69a..ffdeb734f61e6a 100644 --- a/lib/routes/miui/index.ts +++ b/lib/routes/miui/firmware/index.ts @@ -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'],