fix: url does not exist in 清华大学 & feet: add 洛谷近期比赛 & fix: 洛谷日报 (#4063)

This commit is contained in:
prnake
2020-02-25 00:13:25 +08:00
committed by GitHub
parent 5429e46157
commit 14e2c3dbe6
6 changed files with 76 additions and 14 deletions
+2 -1
View File
@@ -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'));
+41
View File
@@ -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 -3
View File
@@ -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)
+19 -4
View File
@@ -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;
}