fix(route): Optimize link and name of 南方+ (#12339)

This commit is contained in:
Tim Wu 2023-04-17 22:49:33 +08:00 committed by GitHub
parent b99270bd6d
commit d465975cbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 5 deletions

View File

@ -7,11 +7,21 @@ const { parseArticle } = require('./utils');
module.exports = async (ctx) => {
const columnId = ctx.params.column ?? 38;
const currentUrl = `https://api.nfapp.southcn.com/nfplus-manuscript-web/article/list?columnId=${columnId}&nfhSubCount=1&pageNum=1&pageSize=20`; // this api only returns up to 10 articles
const { data: response } = await got(currentUrl);
const getColumnDetail = `https://api.nfapp.southcn.com/nanfang_if/getColumn?columnId=${columnId}`;
const { data: responseColumn } = await got(getColumnDetail);
const columnName = responseColumn.columnName === '' ? `南方+` : `南方+ - ${responseColumn.columnName}`;
const columnLink = responseColumn.linkUrl === '' ? `https://m.nfapp.southcn.com/${columnId}` : responseColumn.linkUrl;
const list = response.data.list
/* Notes of columnLink:
1) 南方号 uses responseColumn.linkUrl, e.g. https://static.nfapp.southcn.com/nfh/shareNFNum/index.html?nfhId=3392;
2) 栏目/频道's responseColumn.linkUrl is empty, we use its subpage on 南方+ mobile site, e.g. https://m.nfapp.southcn.com/38;
3) But https://m.nfapp.southcn.com/${columnId} may still be invalid for some higher-level columns, e.g. 20.
*/
const getArticleList = `https://api.nfapp.southcn.com/nfplus-manuscript-web/article/list?columnId=${columnId}&nfhSubCount=1&pageNum=1&pageSize=20`; // this api only returns up to 20 articles
const { data: responseArticle } = await got(getArticleList);
const list = responseArticle.data.list
.filter((i) => i.articleType === 0)
.map((item) => ({
title: '【' + item.columnName + '】' + item.title,
@ -28,8 +38,8 @@ module.exports = async (ctx) => {
const items = await Promise.all(list.map((item) => parseArticle(item, ctx.cache.tryGet)));
ctx.state.data = {
title: `南方+`,
link: `https://m.nfapp.southcn.com/${columnId}`,
title: columnName,
link: columnLink,
item: items,
};
};