get-sspai-rank
Retrieve trending tech and lifestyle content rankings from Sspai, including product reviews, app recommendations, and productivity tips, filtered by category and limit.
Instructions
获取少数派热榜,包含数码产品评测、软件应用推荐、生活方式指南及效率工作技巧的优质中文科技生活类内容
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| tag | No | 分类 | 热门文章 |
Implementation Reference
- src/tools/sspai.ts:4-11 (schema)Zod schema defining the input parameters for the get-sspai-rank tool: tag (optional category enum, default '热门文章') and limit (optional number, default 40).const sspaiRequestSchema = z.object({ tag: z .enum(['热门文章', '应用推荐', '生活方式', '效率技巧', '少数派播客']) .optional() .default('热门文章') .describe('分类'), limit: z.number().int().optional().default(40), });
- src/tools/sspai.ts:17-46 (handler)Handler function that fetches data from SSPAI API using http.get, parses args with schema, processes response, and maps to output format with title, summary, author, timestamps, counts, and link.func: async (args) => { const { tag, limit } = sspaiRequestSchema.parse(args); const resp = await http.get<{ error: number; msg: string; data: any[]; }>('https://sspai.com/api/v1/article/tag/page/get', { params: { tag, limit, }, }); if (resp.data.error !== 0 || !Array.isArray(resp.data.data)) { throw new Error(resp.data.msg || '获取少数派热榜失败'); } return resp.data.data.map((item) => { return { title: item.title, summary: item.summary, author: item.author.nickname, released_time: dayjs.unix(item.released_time).toISOString(), comment_count: item.comment_count, like_count: item.like_count, view_count: item.view_count, link: `https://sspai.com/post/${item.id}`, }; }); },
- src/tools/sspai.ts:13-47 (registration)Tool registration using defineToolConfig, specifying name, description, zodSchema, and func handler.export default defineToolConfig({ name: 'get-sspai-rank', description: '获取少数派热榜,包含数码产品评测、软件应用推荐、生活方式指南及效率工作技巧的优质中文科技生活类内容', zodSchema: sspaiRequestSchema, func: async (args) => { const { tag, limit } = sspaiRequestSchema.parse(args); const resp = await http.get<{ error: number; msg: string; data: any[]; }>('https://sspai.com/api/v1/article/tag/page/get', { params: { tag, limit, }, }); if (resp.data.error !== 0 || !Array.isArray(resp.data.data)) { throw new Error(resp.data.msg || '获取少数派热榜失败'); } return resp.data.data.map((item) => { return { title: item.title, summary: item.summary, author: item.author.nickname, released_time: dayjs.unix(item.released_time).toISOString(), comment_count: item.comment_count, like_count: item.like_count, view_count: item.view_count, link: `https://sspai.com/post/${item.id}`, }; }); }, });