mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-24 23:12:34 +08:00
fix: url does not exist in 清华大学 & feet: add 洛谷近期比赛 & fix: 洛谷日报 (#4063)
This commit is contained in:
+2
-1
@@ -1262,8 +1262,9 @@ router.get('/12306/zxdt/:id?', require('./routes/12306/zxdt'));
|
||||
// 北京天文馆每日一图
|
||||
router.get('/bjp/apod', require('./routes/bjp/apod'));
|
||||
|
||||
// 洛谷日报
|
||||
// 洛谷
|
||||
router.get('/luogu/daily/:id?', require('./routes/luogu/daily'));
|
||||
router.get('/luogu/contest', require('./routes/luogu/contest'));
|
||||
|
||||
// 决胜网
|
||||
router.get('/juesheng', require('./routes/juesheng'));
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const resolve_url = require('url').resolve;
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = 'https://www.luogu.com.cn/';
|
||||
const response = await got.get(link);
|
||||
const $ = cheerio.load(response.data);
|
||||
const title = '洛谷近期比赛';
|
||||
|
||||
const out = $('.am-panel-hd ')
|
||||
.slice(0, 10)
|
||||
.map(function() {
|
||||
const info = {
|
||||
title:
|
||||
$(this)
|
||||
.find('a')
|
||||
.text() || $(this).text(),
|
||||
description:
|
||||
$(this).html() +
|
||||
$(this)
|
||||
.parent()
|
||||
.find('.am-panel-bd')
|
||||
.html(),
|
||||
link: resolve_url(
|
||||
'https://www.luogu.com.cn',
|
||||
$(this)
|
||||
.find('a')
|
||||
.attr('href')
|
||||
),
|
||||
};
|
||||
return info;
|
||||
})
|
||||
.get();
|
||||
|
||||
ctx.state.data = {
|
||||
title: title,
|
||||
link: link,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
@@ -2,12 +2,11 @@ const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const id = ctx.params.id || 92685;
|
||||
|
||||
const id = ctx.params.id || 179788;
|
||||
const link = `https://www.luogu.org/discuss/show/${id}`;
|
||||
const response = await got.get(link);
|
||||
const $ = cheerio.load(response.data);
|
||||
const title = $('#app-body-new div h1').text();
|
||||
const title = $('title').text();
|
||||
|
||||
const out = $('div.am-comment-main > div > p')
|
||||
.slice(0, 10)
|
||||
|
||||
@@ -60,8 +60,8 @@ module.exports = async (ctx) => {
|
||||
item: $('table>tbody>tr')
|
||||
.slice(0, 10)
|
||||
.map((_, elem) => ({
|
||||
link: resolve_url(base_url, $('td>a', elem).attr('href')),
|
||||
title: $('td>a', elem).text(),
|
||||
link: get_link($('td>a', elem).attr('href'), news_url + path),
|
||||
title: get_title($('td>a', elem).text(), $('td', elem).text()),
|
||||
pubDate: new Date(
|
||||
$('td>font>span', elem)
|
||||
.text()
|
||||
@@ -78,8 +78,8 @@ module.exports = async (ctx) => {
|
||||
item: $('.cont_list>li')
|
||||
.slice(0, 10)
|
||||
.map((_, elem) => ({
|
||||
link: resolve_url(base_url, $('a', elem).attr('href')),
|
||||
title: $('a', elem).text(),
|
||||
link: get_link($('a', elem).attr('href'), news_url + path),
|
||||
title: get_title($('a', elem).text(), $.text()),
|
||||
pubDate: new Date(
|
||||
$('time', elem)
|
||||
.text()
|
||||
@@ -90,3 +90,18 @@ module.exports = async (ctx) => {
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
function get_link(url, alter_url) {
|
||||
if (url !== undefined) {
|
||||
return resolve_url(base_url, url);
|
||||
} else {
|
||||
return alter_url;
|
||||
}
|
||||
}
|
||||
|
||||
function get_title(title, data) {
|
||||
if (title) {
|
||||
return title;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user