mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-09 14:40:23 +08:00
@@ -989,6 +989,10 @@ GitHub 官方也提供了一些 RSS:
|
||||
|
||||
<route name="Post" author="xyqfer" example="/sankakucomplex/post" path="/sankakucomplex/post"/>
|
||||
|
||||
### 高清电台
|
||||
|
||||
<route name="最新电影" author="Songkeys" example="/gaoqing/latest" path="/gaoqing/latest"/>
|
||||
|
||||
## 图片
|
||||
|
||||
### 妹子图
|
||||
|
||||
@@ -1019,6 +1019,9 @@ router.get('/jpmorganchase', require('./routes/jpmorganchase/research'));
|
||||
// 美拍
|
||||
router.get('/meipai/user/:uid', require('./routes/meipai/user'));
|
||||
|
||||
// 高清电台
|
||||
router.get('/gaoqing/latest', require('./routes/gaoqing/latest'));
|
||||
|
||||
// 轻小说文库
|
||||
router.get('/wenku8/chapter/:id', require('./routes/wenku8/chapter'));
|
||||
|
||||
|
||||
28
lib/routes/gaoqing/latest.js
Normal file
28
lib/routes/gaoqing/latest.js
Normal file
@@ -0,0 +1,28 @@
|
||||
const axios = require('../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
const util = require('./utils');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const response = await axios({
|
||||
method: 'get',
|
||||
url: 'https://gaoqing.fm/',
|
||||
headers: {
|
||||
Referer: 'https://gaoqing.fm/',
|
||||
},
|
||||
});
|
||||
|
||||
const data = response.data;
|
||||
|
||||
const $ = cheerio.load(data);
|
||||
const list = $('#result1 > li').get();
|
||||
|
||||
let result = await util.ProcessFeed(list, ctx.cache);
|
||||
result = result.slice(0, 10);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '高清电台',
|
||||
link: 'https://gaoqing.fm',
|
||||
description: $('meta[name="description"]').attr('content'),
|
||||
item: result,
|
||||
};
|
||||
};
|
||||
59
lib/routes/gaoqing/utils.js
Normal file
59
lib/routes/gaoqing/utils.js
Normal file
@@ -0,0 +1,59 @@
|
||||
const axios = require('../../utils/axios');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
// 加载详情页
|
||||
async function load(link) {
|
||||
const response = await axios.get(link);
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
// 提取标题
|
||||
const title = $('#mainrow > div:nth-child(2) > div.col-md-9 > div.row > div.col-md-12').html();
|
||||
|
||||
// 提取图片
|
||||
const img = $('.x-m-poster').html();
|
||||
|
||||
// 提取资料
|
||||
$('#viewfilm')
|
||||
.find('img')
|
||||
.remove();
|
||||
const info = $('#viewfilm').html();
|
||||
|
||||
// 提取简介
|
||||
const intro = $('#des-ex').html() || $('#des-full').html();
|
||||
|
||||
// 合并为描述
|
||||
const description = title + img + info + intro;
|
||||
|
||||
return { description };
|
||||
}
|
||||
|
||||
const ProcessFeed = async (list, caches) =>
|
||||
await Promise.all(
|
||||
list.map(async (item) => {
|
||||
const $ = cheerio.load(item);
|
||||
|
||||
// 获取链接
|
||||
const $title = $('div.item-desc.pull-left > p > a');
|
||||
const itemUrl = $title.attr('href');
|
||||
|
||||
// 获取评分
|
||||
const rate = $('div.item-desc.pull-left > p > span').text();
|
||||
|
||||
// 列表上提取到的信息
|
||||
const single = {
|
||||
title: $title.text() + ' - ' + rate,
|
||||
link: itemUrl,
|
||||
guid: itemUrl,
|
||||
};
|
||||
|
||||
// 缓存
|
||||
const other = await caches.tryGet(itemUrl, async () => await load(itemUrl));
|
||||
|
||||
// 合并结果
|
||||
return Promise.resolve(Object.assign({}, single, other));
|
||||
})
|
||||
);
|
||||
|
||||
module.exports = {
|
||||
ProcessFeed,
|
||||
};
|
||||
Reference in New Issue
Block a user