介绍
RSSHub 是一个开源、简单易用、易于扩展的 RSS 生成器,可以给任何奇奇怪怪的内容生成 RSS 订阅源。RSSHub 借助于开源社区的力量快速发展中,目前已适配数百家网站的上千项内容。
https://docs.rsshub.app/
https://docs.rsshub.app/
路由脚本
我其实对rss没太大兴趣,有人有需求我就顺便看了下,挺有意思的,直接用邮箱(我用的是Foxmail)订阅新消息很方便。路由脚本是使用Javascript写的,我不会,但是照猫画老虎还是可以的。然后写了三个给别人用了。
下面是写的其中一个 RSS http://loog.xyz:1200/loog_zyc/gggs
const got = require('@/utils/got');
const cheerio = require('cheerio');
async function getNewsDetail(link) {
const res = await got.get(link);
const $ = cheerio.load(res.data);
return {
author: $('.article .fun span').eq(2).text(),
description: $('.article .det').html(),
};
}
module.exports = async (ctx) => {
const url = 'http://www.haedu.gov.cn/gggs/';
const response = await got.get(url);
const $ = cheerio.load(response.data);
const out = await Promise.all(
$('.list li')
.slice(0, 10)
.map(async (index, item) => {
item = $(item);
const link = $(item).find('li a').attr('href');
const title = $(item).find('li a').text();
const pubDate = $(item).find('li span').eq(0).text();
const single = {
title,
link,
pubDate,
};
let other = {};
const cache = await ctx.cache.get(link);
if (cache) {
other = JSON.parse(cache);
} else {
other = await getNewsDetail(link);
ctx.cache.set(link, JSON.stringify(other));
}
return Promise.resolve(Object.assign({}, single, other));
})
.get()
);
ctx.state.data = {
title: '河南省教育厅--公告告示',
link: url,
description: '公告告示',
item: out
};
};
部署方式
我用的手动部署,用npm或者yarn启动无法后台,最后用了PM2。