Skip to content

Commit

Permalink
feat(route): Add 小米社区用户发帖 (DIYgod#14920)
Browse files Browse the repository at this point in the history
* feat(route): Add 小米社区用户发帖

* fix: use logical operator

* fix: apply radar suggestion

Co-authored-by: Tony <[email protected]>

* wip: migrate route to `miui`

* fix: migrate miui firmware update to `firmware`

---------
  • Loading branch information
abc1763613206 authored Mar 28, 2024
1 parent 9080e16 commit 0526c2c
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
69 changes: 69 additions & 0 deletions lib/routes/miui/community/user.ts
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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'],
Expand Down

0 comments on commit 0526c2c

Please sign in to comment.