SPARON / linovel-rss

Deno 轻小说 RSS 爬虫

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

哔哩轻小说 RSS 生成器

通过小说 ID 抓取小说内容,生成 RSS 订阅内容,方便在订阅客户端阅读。

使用 Deno 开发,针对阿里云函数计算 custom runtime 优化,可直接部署到阿里云。

如果需要裸部署更改监听端口,可修改环境变量FC_SERVER_PORT

使用方法

访问https://www.linovelib.com/获取要阅读的小说ID:

如图所示,小说ID是一个数字,然后我们根据这个拼接链接。

这里使用示例链接:http://ln.rss.u1qo.com/

直接将小说ID拼接到链接后面,如:http://ln.rss.u1qo.com/2777

打开你喜欢的 RSS 订阅 App , 订阅上面的链接。

Enjoy

部署

示例地址不一定长期提供服务

此项目可自行部署使用,这里介绍两种部署方式。

裸部署

直接部署到普通服务器或 VPS ,根据需要修改环境变量FC_SERVER_PORT来改变监听的端口。

安装 Deno:

curl -fsSL https://x.deno.js.cn/install.sh | sh

然后执行以下命令:

deno run --allow-net --allow-env http://deno.u1qo.com/linovelib.ts

或者将本项目 Clone 下来执行:

deno run --allow-net --allow-env /path/to/linovelib.ts

阿里云函数计算

使用阿里云函数计算提供的 Custom Runtime 可以很方便部署本项目。

上面的示例地址就是使用这种方法部署。

准备:

  • 安装Funcraft
  • Linux版的Deno
  • 安装适合本地环境的Deno,注意,除了Linux系统,其他都需要两个可执行文件,一个用于本地开发,一个用于部署到服务器

创建一个文件夹,然后初始化:

mkdir xxx && cd xxx
fun init

选择http函数,如http-trigger-nodejs12,这样就会创建一个默认的模版。

删除没必要的文件,然后将Linux版的Deno复制到这个文件夹。

修改template.yml

# 注意,这个是示例文件,大多数都可以保持不变
ROSTemplateFormatVersion: '2015-09-01'
Transform: 'Aliyun::Serverless-2018-04-03'
Resources:
  # 服务名,可根据需要修改
  linovelib:
    Type: 'Aliyun::Serverless::Service'
    Properties:
      Description: 'helloworld'
    # 函数名,可根据需要修改
    linovelib:
      Type: 'Aliyun::Serverless::Function'
      Properties:
        Handler: index.handler
        # 运行时修改成custom
        Runtime: custom
        CodeUri: './'
        # 内存限制,可选修改
        MemorySize: 128
        # 超时,建议设置一个较大值,这里设成10秒
        Timeout: 10
      Events:
        httpTrigger:
          Type: HTTP
          Properties:
            AuthType: ANONYMOUS
            # 允许的请求方法,可选
            Methods: ['GET']

执行以下命令:

deno bundle http://deno.u1qo.com/linovelib.ts bundle.js

将会生成一个bundle.js文件,这个是打包好依赖的最终文件。

然后创建一个bootstrap文件:

#!/bin/bash
./deno run --allow-net --allow-env bundle.js

添加执行:

chmod +x bootstrap

此时该文件夹大概有以下几个文件

bootstrap      # 入口文件
bundle.js      # 打包好的脚本
deno           # Linux版的deno
template.yml   # 配置模版
.funignore     # 忽略配置文件

部署(记得先登录):

fun deploy -y

部署后需要绑定一个自定义域名,因为阿里云路由没有清除前缀,所以需要绑定一个自定义域名,并且访问到第一层

绑定自定义域名需要备案,如果域名没有备案,可部署到香港或者海外的服务器再绑定域名

如:http://example.com/1234

然后就可以使用了。

开源协议

MIT

About

Deno 轻小说 RSS 爬虫


Languages

Language:TypeScript 100.0%