diff --git a/docs/university.md b/docs/university.md index 8f53b8966..a4373c492 100644 --- a/docs/university.md +++ b/docs/university.md @@ -362,6 +362,12 @@ pageClass: routes 由于学校官网对非大陆 IP 的访问存在限制,需自行部署。 ::: +## 北京协和医学院 + +### “4+4” 试点班招生网通知公告 + + + ## 北京邮电大学 ### 硕士研究生招生通知 diff --git a/lib/v2/pumc/maintainer.js b/lib/v2/pumc/maintainer.js new file mode 100644 index 000000000..a1ee34142 --- /dev/null +++ b/lib/v2/pumc/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/mdadmission': ['nczitzk'], +}; diff --git a/lib/v2/pumc/mdadmission.js b/lib/v2/pumc/mdadmission.js new file mode 100644 index 000000000..0be2fbf84 --- /dev/null +++ b/lib/v2/pumc/mdadmission.js @@ -0,0 +1,62 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const limit = ctx.query.limit ? parseInt(ctx.query.limit) : 100; + + const rootUrl = 'https://mdadmission.pumc.edu.cn'; + const currentUrl = `${rootUrl}/mdweb/site!noticeList?param.infoTypeId=&rows=${limit}&pages=1`; + + const response = await got({ + method: 'get', + url: currentUrl, + https: { + rejectUnauthorized: false, + }, + }); + + const $ = cheerio.load(response.data); + + let items = $('div.media') + .toArray() + .map((item) => { + item = $(item); + + const a = item.find('h4.media-heading a'); + + return { + title: a.text(), + link: new URL(a.attr('href'), currentUrl).href, + pubDate: parseDate(item.find('span').first().text(), 'DDYYYY-MM'), + }; + }); + + items = await Promise.all( + items.map((item) => + ctx.cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + https: { + rejectUnauthorized: false, + }, + }); + + const content = cheerio.load(detailResponse.data); + + content('h3').remove(); + + item.description = content('div.media-body div').last().html(); + + return item; + }) + ) + ); + + ctx.state.data = { + title: '北京协和医学院招生网 - 通知公告', + link: currentUrl, + item: items, + }; +}; diff --git a/lib/v2/pumc/radar.js b/lib/v2/pumc/radar.js new file mode 100644 index 000000000..26152642a --- /dev/null +++ b/lib/v2/pumc/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'pumc.edu.cn': { + _name: '北京协和医学院', + mdadmission: [ + { + title: '“4+4”试点班招生网通知公告', + docs: 'https://docs.rsshub.app/university.html#bei-jing-xie-he-yi-xue-yuan', + source: ['/mdweb/site', '/'], + target: '/pumc/mdadmission', + }, + ], + }, +}; diff --git a/lib/v2/pumc/router.js b/lib/v2/pumc/router.js new file mode 100644 index 000000000..17aeb4169 --- /dev/null +++ b/lib/v2/pumc/router.js @@ -0,0 +1,3 @@ +module.exports = function (router) { + router.get('/mdadmission', require('./mdadmission')); +};