/ clis / nowcoder / recommend.js
recommend.js
 1  import { cli, Strategy } from '@jackwener/opencli/registry';
 2  
 3  cli({
 4      site: 'nowcoder',
 5      name: 'recommend',
 6      description: 'Recommended feed',
 7      domain: 'www.nowcoder.com',
 8      strategy: Strategy.PUBLIC,
 9      browser: false,
10      args: [
11          { name: 'page', type: 'int', default: 1, help: 'Page number' },
12          { name: 'limit', type: 'int', default: 15, help: 'Number of items' },
13      ],
14      columns: ['rank', 'title', 'author', 'likes', 'comments', 'views', 'id'],
15      pipeline: [
16          { fetch: { url: 'https://gw-c.nowcoder.com/api/sparta/home/recommend?page=${{ args.page }}&size=${{ args.limit }}' } },
17          { select: 'data.records' },
18          { map: {
19                  rank: '${{ index + 1 }}',
20                  title: `\${{ item.momentData?.title || item.longContentData?.title || item.contentData?.title || '' }}`,
21                  author: `\${{ item.userBrief?.nickname || '' }}`,
22                  likes: '${{ item.frequencyData?.likeCnt || 0 }}',
23                  comments: '${{ item.frequencyData?.commentCnt || 0 }}',
24                  views: '${{ item.frequencyData?.viewCnt || 0 }}',
25                  id: `\${{ item.momentData?.uuid || item.longContentData?.uuid || item.contentData?.uuid || item.contentId || '' }}`,
26              } },
27          { filter: 'item.title' },
28          { limit: '${{ args.limit }}' },
29      ],
30  });