diff --git a/docs/bbs.md b/docs/bbs.md index f67b34415e..11302e5d3c 100644 --- a/docs/bbs.md +++ b/docs/bbs.md @@ -231,6 +231,10 @@ pageClass: routes +### 校招日程 + + + ## 书友社区 ### 导读 diff --git a/lib/router.js b/lib/router.js index 147fd393cd..c6904014c0 100755 --- a/lib/router.js +++ b/lib/router.js @@ -1275,6 +1275,7 @@ router.get('/hupu/bbs/:id/:order?', require('./routes/hupu/bbs')); // 牛客网 router.get('/nowcoder/discuss/:type/:order', require('./routes/nowcoder/discuss')); +router.get('/nowcoder/schedule/:propertyId?/:typeId?', require('./routes/nowcoder/schedule')); // Xiaomi.eu router.get('/xiaomieu/releases', require('./routes/xiaomieu/releases')); diff --git a/lib/routes/nowcoder/schedule.js b/lib/routes/nowcoder/schedule.js new file mode 100644 index 0000000000..2fc3d15b30 --- /dev/null +++ b/lib/routes/nowcoder/schedule.js @@ -0,0 +1,31 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const propertyId = ctx.params.propertyId ? ctx.params.propertyId : 0; + const typeId = ctx.params.typeId ? ctx.params.typeId : 0; + + const link = `https://www.nowcoder.com/school/schedule/data?token=&query=&typeId=${typeId}&propertyId=${propertyId}&onlyFollow=false&_=${new Date().getTime()}`; + const responseBody = (await got.get(link)).data; + if (responseBody.code !== 0) { + throw Error(`接口错误,错误代码:${responseBody.code},错误原因:${responseBody.msg}`); + } + const data = responseBody.data; + + ctx.state.data = { + title: '名企校招日程', + link: 'https://www.nowcoder.com/school/schedule', + description: '名企校招日程', + item: data.map((item) => { + let desc = ``; + item.schedules.forEach((each) => { + desc += `${each.content}${each.time}`; + }); + return { + title: item.name, + description: `${desc}
`, + pubDate: new Date(item.createTime).toUTCString(), + link: `https://www.nowcoder.com/school/schedule/${item.id}`, + }; + }), + }; +};