mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-10-24 23:42:40 +08:00
@@ -268,6 +268,9 @@ RSSHub 是一个轻量、易于扩展的 RSS 生成器,可以给任何奇奇
|
||||
- 文章
|
||||
- 大连工业大学
|
||||
- 教务处新闻
|
||||
- 上海科技大学
|
||||
- 信息科技与技术学院
|
||||
- 活动
|
||||
- 上海交通大学
|
||||
- 电子信息与电气工程学院
|
||||
- 学术动态
|
||||
|
||||
@@ -2223,6 +2223,14 @@ type,分类
|
||||
|
||||
参数: 无
|
||||
|
||||
## 上海科技大学
|
||||
|
||||
### 信息科技与技术学院 -- 活动 <Author uid="HenryQW"/>
|
||||
|
||||
举例: [https://rsshub.app/shanghaitech/sist/activity](https://rsshub.app/shanghaitech/sist/activity)
|
||||
|
||||
路由: `/shanghaitech/sist/activity`
|
||||
|
||||
## 上海交通大学
|
||||
|
||||
### 电子信息与电气工程学院 -- 学术动态 <Author uid="HenryQW"/>
|
||||
|
||||
@@ -473,6 +473,9 @@ router.get('/mygalgame', require('./routes/galgame/mygalgame'));
|
||||
// DPU
|
||||
router.get('/dpu/jiaowu/:type?', require('./routes/dpu/jiaowu'));
|
||||
|
||||
// 上海科技大学
|
||||
router.get('/shanghaitech/sist/activity', require('./routes/shanghaitech/sist/activity'));
|
||||
|
||||
// 上海交通大学
|
||||
router.get('/sjtu/seiee/academic', require('./routes/sjtu/seiee/academic'));
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
const axios = require('../../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const url = require('url');
|
||||
|
||||
const host = 'http://sist.shanghaitech.edu.cn/';
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = url.resolve(host, 'cn/News.asp?mid=102');
|
||||
const response = await axios.get(link);
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.pagebv tr')
|
||||
.slice(0, 10)
|
||||
.map((i, e) => ({
|
||||
link: $(e)
|
||||
.find('td:nth-of-type(2) a')
|
||||
.attr('href'),
|
||||
date: $(e)
|
||||
.find('td:last-of-type')
|
||||
.text()
|
||||
.replace('[', '')
|
||||
.replace(']', ''),
|
||||
}))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const itemUrl = url.resolve(host, `cn/${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: $('.pagebv tr:first-of-type')
|
||||
.text()
|
||||
.trim(),
|
||||
link: itemUrl,
|
||||
author: '上海科技大学信息科技与技术学院',
|
||||
description: $('.pagebv tr:last-of-type')
|
||||
.html()
|
||||
.replace(/src="\//g, `src="${url.resolve(host, '.')}`)
|
||||
.trim(),
|
||||
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