介紹
RSSHub 是一個開源、簡單易用、易于擴展的 RSS 生成器,可以給任何奇奇怪怪的內容生成 RSS 訂閱源挂疆。RSSHub 借助于開源社區(qū)的力量快速發(fā)展中,目前已適配數(shù)百家網站的上千項內容下翎。
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腾仅。