美文网首页
RssHub 部署

RssHub 部署

作者: 上校的猫 | 来源:发表于2020-09-09 18:08 被阅读0次

介绍

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

相关文章

网友评论

      本文标题:RssHub 部署

      本文链接:https://www.haomeiwen.com/subject/lsfyektx.html