mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-14 01:00:38 +08:00
添加了对上海交通大学本科生教务办公室的支持 (#1206)
收录了「阶段性工作」的四个页面:分专业、转专业、直升研究生、交换交流。 http://bjwb.seiee.sjtu.edu.cn/bkjwb/list/1503-1-20.htm
This commit is contained in:
@@ -1256,6 +1256,14 @@ GitHub 官方也提供了一些 RSS:
|
||||
|
||||
<route name="电子信息与电气工程学院学术动态" author="HenryQW" example="/sjtu/seiee/academic" path="/universities/sjtu/seiee/academic"/>
|
||||
|
||||
<route name="电子信息与电气工程学院本科教务办 -- 分专业" author="SkyZH" example="/sjtu/seiee/bjwb/major_select" path="/universities/sjtu/seiee/bjwb/major_select"/>
|
||||
|
||||
<route name="电子信息与电气工程学院本科教务办 -- 转专业" author="SkyZH" example="/sjtu/seiee/bjwb/major_transfer" path="/universities/sjtu/seiee/bjwb/major_transfer"/>
|
||||
|
||||
<route name="电子信息与电气工程学院本科教务办 -- 交换交流" author="SkyZH" example="/sjtu/seiee/bjwb/abroad" path="/universities/sjtu/seiee/bjwb/abroad"/>
|
||||
|
||||
<route name="电子信息与电气工程学院本科教务办 -- 直升研究生" author="SkyZH" example="/sjtu/seiee/bjwb/postgraduate" path="/universities/sjtu/seiee/bjwb/postgraduate"/>
|
||||
|
||||
<route name="研究生通知公告" author="mzr1996" example="/sjtu/gs/tzgg/pyxx" path="/universities/sjtu/gs/tzgg/:type?" :paramsDesc="['默认列举所有通知公告']">
|
||||
|
||||
| 通知公告 | 工作信息 | 招生信息 | 培养信息 | 学位学科 | 国际交流 | 创新工程 |
|
||||
|
||||
@@ -544,6 +544,11 @@ router.get('/shanghaitech/sist/activity', require('./routes/universities/shangha
|
||||
|
||||
// 上海交通大学
|
||||
router.get('/sjtu/seiee/academic', require('./routes/universities/sjtu/seiee/academic'));
|
||||
router.get('/sjtu/seiee/bjwb/major_select', require('./routes/universities/sjtu/seiee/bjwb/major_select'));
|
||||
router.get('/sjtu/seiee/bjwb/major_transfer', require('./routes/universities/sjtu/seiee/bjwb/major_transfer'));
|
||||
router.get('/sjtu/seiee/bjwb/postgraduate', require('./routes/universities/sjtu/seiee/bjwb/postgraduate'));
|
||||
router.get('/sjtu/seiee/bjwb/abroad', require('./routes/universities/sjtu/seiee/bjwb/abroad'));
|
||||
|
||||
router.get('/sjtu/gs/tzgg/:type?', require('./routes/universities/sjtu/gs/tzgg'));
|
||||
|
||||
// 江南大学
|
||||
|
||||
57
routes/universities/sjtu/seiee/bjwb/abroad.js
Normal file
57
routes/universities/sjtu/seiee/bjwb/abroad.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const axios = require('../../../../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const url = require('url');
|
||||
|
||||
const host = 'http://bjwb.seiee.sjtu.edu.cn';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = url.resolve(host, `bkjwb/list/1507-1-20.htm`);
|
||||
const response = await axios.get(link);
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.list_box_5 li')
|
||||
.map((i, e) => ({
|
||||
date: $(e)
|
||||
.children('span')
|
||||
.text()
|
||||
.slice(1, -1),
|
||||
title: $(e)
|
||||
.children('a')
|
||||
.text()
|
||||
.slice(2),
|
||||
link: $(e)
|
||||
.children('a')
|
||||
.attr('href'),
|
||||
}))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemUrl = url.resolve(host, item.link);
|
||||
const cache = await ctx.cache.get(itemUrl);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
|
||||
const response = await axios.get(itemUrl);
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const single = {
|
||||
title: item.title,
|
||||
link: itemUrl,
|
||||
author: '上海交通大学电子信息与电气工程学院本科教务办',
|
||||
description: $('.article_content').text(),
|
||||
pubDate: new Date(item.date),
|
||||
};
|
||||
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
|
||||
return Promise.resolve(single);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '上海交通大学电子信息与电气工程学院本科教务办 -- 交换交流',
|
||||
link,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
57
routes/universities/sjtu/seiee/bjwb/major_select.js
Normal file
57
routes/universities/sjtu/seiee/bjwb/major_select.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const axios = require('../../../../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const url = require('url');
|
||||
|
||||
const host = 'http://bjwb.seiee.sjtu.edu.cn';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = url.resolve(host, 'bkjwb/list/1503-1-20.htm');
|
||||
const response = await axios.get(link);
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.list_box_5 li')
|
||||
.map((i, e) => ({
|
||||
date: $(e)
|
||||
.children('span')
|
||||
.text()
|
||||
.slice(1, -1),
|
||||
title: $(e)
|
||||
.children('a')
|
||||
.text()
|
||||
.slice(2),
|
||||
link: $(e)
|
||||
.children('a')
|
||||
.attr('href'),
|
||||
}))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemUrl = url.resolve(host, item.link);
|
||||
const cache = await ctx.cache.get(itemUrl);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
|
||||
const response = await axios.get(itemUrl);
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const single = {
|
||||
title: item.title,
|
||||
link: itemUrl,
|
||||
author: '上海交通大学电子信息与电气工程学院本科教务办',
|
||||
description: $('.article_content').text(),
|
||||
pubDate: new Date(item.date),
|
||||
};
|
||||
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
|
||||
return Promise.resolve(single);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '上海交通大学电子信息与电气工程学院本科教务办 -- 分专业',
|
||||
link,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
57
routes/universities/sjtu/seiee/bjwb/major_transfer.js
Normal file
57
routes/universities/sjtu/seiee/bjwb/major_transfer.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const axios = require('../../../../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const url = require('url');
|
||||
|
||||
const host = 'http://bjwb.seiee.sjtu.edu.cn';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = url.resolve(host, 'bkjwb/list/1505-1-20.htm');
|
||||
const response = await axios.get(link);
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.list_box_5 li')
|
||||
.map((i, e) => ({
|
||||
date: $(e)
|
||||
.children('span')
|
||||
.text()
|
||||
.slice(1, -1),
|
||||
title: $(e)
|
||||
.children('a')
|
||||
.text()
|
||||
.slice(2),
|
||||
link: $(e)
|
||||
.children('a')
|
||||
.attr('href'),
|
||||
}))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemUrl = url.resolve(host, item.link);
|
||||
const cache = await ctx.cache.get(itemUrl);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
|
||||
const response = await axios.get(itemUrl);
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const single = {
|
||||
title: item.title,
|
||||
link: itemUrl,
|
||||
author: '上海交通大学电子信息与电气工程学院本科教务办',
|
||||
description: $('.article_content').text(),
|
||||
pubDate: new Date(item.date),
|
||||
};
|
||||
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
|
||||
return Promise.resolve(single);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '上海交通大学电子信息与电气工程学院本科教务办 -- 转专业',
|
||||
link,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
57
routes/universities/sjtu/seiee/bjwb/postgraduate.js
Normal file
57
routes/universities/sjtu/seiee/bjwb/postgraduate.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const axios = require('../../../../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const url = require('url');
|
||||
|
||||
const host = 'http://bjwb.seiee.sjtu.edu.cn';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = url.resolve(host, 'bkjwb/list/1506-1-20.htm');
|
||||
const response = await axios.get(link);
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.list_box_5 li')
|
||||
.map((i, e) => ({
|
||||
date: $(e)
|
||||
.children('span')
|
||||
.text()
|
||||
.slice(1, -1),
|
||||
title: $(e)
|
||||
.children('a')
|
||||
.text()
|
||||
.slice(2),
|
||||
link: $(e)
|
||||
.children('a')
|
||||
.attr('href'),
|
||||
}))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemUrl = url.resolve(host, item.link);
|
||||
const cache = await ctx.cache.get(itemUrl);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
|
||||
const response = await axios.get(itemUrl);
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const single = {
|
||||
title: item.title,
|
||||
link: itemUrl,
|
||||
author: '上海交通大学电子信息与电气工程学院本科教务办',
|
||||
description: $('.article_content').text(),
|
||||
pubDate: new Date(item.date),
|
||||
};
|
||||
ctx.cache.set(itemUrl, JSON.stringify(single), 24 * 60 * 60);
|
||||
return Promise.resolve(single);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '上海交通大学电子信息与电气工程学院本科教务办 -- 直升研究生',
|
||||
link,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user