QQ机器人实现RSS订阅(github项目)

文章的语雀地址

用户向机器人发送相应指令,就可以完成

  • 添加订阅
  • 修改订阅(包括更新频率、是否使用代理等)

等多种操作,并通过机器人接收相应更新通知。

系统组件

  1. RSSHub(可选):抓取网页,生成rss
  2. go-cqhttp:QQ机器人主体
  3. ELF_RSS:RSS订阅主体,通过机器人读取指令进行处理,再通过API发送相应QQ消息

RSSHub

项目主页:https://github.com/DIYgod/RSSHub
工作原理:(引用自常见问题

请求路由时,RSSHub 会按照给定规则请求源站数据,然后以 RSS 格式输出;如果在设定缓存时间内重新请求路由,则会直接返回缓存内容,不请求源站;再加一点点魔法。

目前找到了两个公开站点:

  1. https://rsshub.app
  2. https://rss.shab.fun

站点1是rsshub作者自己搭建的演示地址,需要科学上网且更新速度较慢(缓存时间20分钟);站点2是ELF_RSS的作者搭建的,能够正常访问且速度快。

此外,还可以自行搭建rsshub服务器,使用docker搭建非常方便。若想添加自己的规则,则需要在服务器端更新相应代码,因此推荐自行搭建。

docker pull diygod/rsshub
docker run -d --name rsshub -p 1200:1200 diygod/rsshub

go-cqhttp

项目主页:https://github.com/Mrs4s/go-cqhttp
QQ机器人,支持:

  • HTTP API
  • 反向HTTP POST
  • 正向WebSocket
  • 反向WebSocket
部署

直接在release页面下载相应文件,解压之后即可使用。在启动之前,新建config.yml文件:

# go-cqhttp 默认配置文件

account: # 账号相关
  uin: 1233456 # QQ账号
  password: '' # 密码为空时使用扫码登录
  encrypt: false  # 是否开启密码加密
  status: 0      # 在线状态 请参考 https://github.com/Mrs4s/go-cqhttp/blob/dev/docs/config.md#在线状态
  relogin: # 重连设置
    delay: 3   # 首次重连延迟, 单位秒
    interval: 3   # 重连间隔
    max-times: 0  # 最大重连次数, 0为无限制

  # 是否使用服务器下发的新地址进行重连
  # 注意, 此设置可能导致在海外服务器上连接情况更差
  use-sso-address: true

heartbeat:
  # 心跳频率, 单位秒
  # -1 为关闭心跳
  interval: 5

message:
  # 上报数据类型
  # 可选: string,array
  post-format: string
  # 是否忽略无效的CQ码, 如果为假将原样发送
  ignore-invalid-cqcode: false
  # 是否强制分片发送消息
  # 分片发送将会带来更快的速度
  # 但是兼容性会有些问题
  force-fragment: false
  # 是否将url分片发送
  fix-url: false
  # 下载图片等请求网络代理
  proxy-rewrite: ''
  # 是否上报自身消息
  report-self-message: false
  # 移除服务端的Reply附带的At
  remove-reply-at: false
  # 为Reply附加更多信息
  extra-reply-data: false

output:
  # 日志等级 trace,debug,info,warn,error
  log-level: warn
  # 是否启用 DEBUG
  debug: false # 开启调试模式

# 默认中间件锚点
default-middlewares: &default
  # 访问密钥, 强烈推荐在公网的服务器设置
  access-token: ''
  # 事件过滤器文件目录
  filter: ''
  # API限速设置
  # 该设置为全局生效
  # 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配
  # 目前该限速设置为令牌桶算法, 请参考:
  # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
  rate-limit:
    enabled: false # 是否启用限速
    frequency: 1  # 令牌回复频率, 单位秒
    bucket: 1     # 令牌桶大小

database: # 数据库相关设置
  leveldb:
    # 是否启用内置leveldb数据库
    # 启用将会增加10-20MB的内存占用和一定的磁盘空间
    # 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能
    enable: true

# 连接服务列表
servers:
  # HTTP 通信设置
  - http:
      # 服务端监听地址
      host: 127.0.0.1
      # 服务端监听端口
      port: 5700
      # 反向HTTP超时时间, 单位秒
      # 最小值为5,小于5将会忽略本项设置
      timeout: 5
      middlewares:
        <<: *default # 引用默认中间件
      # 反向HTTP POST地址列表
      post:
      #- url: '' # 地址
      #  secret: ''           # 密钥
      #- url: 127.0.0.1:5701 # 地址
      #  secret: ''          # 密钥
  # 正向WS设置
  - ws:
      # 正向WS服务器监听地址
      host: 127.0.0.1
      # 正向WS服务器监听端口
      port: 6700
      middlewares:
        <<: *default # 引用默认中间件
  # 反向WS设置
  - ws-reverse:
      # 反向WS Universal 地址
      # 注意 设置了此项地址后下面两项将会被忽略
      universal: ws://127.0.0.1:8080/cqhttp/ws/
      # 反向WS API 地址
      api: ws://your_websocket_api.server
      # 反向WS Event 地址
      event: ws://your_websocket_event.server
      # 重连间隔 单位毫秒
      reconnect-interval: 3000
      middlewares:
        <<: *default # 引用默认中间件
  # pprof 性能分析服务器, 一般情况下不需要启用.
  # 如果遇到性能问题请上传报告给开发者处理
  # 注意: pprof服务不支持中间件、不支持鉴权. 请不要开放到公网
  - pprof:
      # 是否禁用pprof性能分析服务器
      disabled: true
      # pprof服务器监听地址
      host: 127.0.0.1
      # pprof服务器监听端口
      port: 7700

  # 可添加更多
  # 添加方式,同一连接方式可添加多个,具体配置说明请查看 go-cqhttp 文档
  #- http: # http 通信
  #- ws:   # 正向 Websocket
  #- ws-reverse: # 反向 Websocket
  #- pprof: #性能分析服务器
运行

在配置文件中填写好机器人的账号以及密码之后,直接在目录下运行./go-cqhttp faststart

其他

帮助中心:https://docs.go-cqhttp.org

  • 在最新版本中,加入了频道相关的API,支持发送消息到子频道
  • 可以通过HTTP接口来实现相关操作

ELF_RSS

项目主页:https://github.com/Quan666/ELF_RSS
首先下载代码并构建docker镜像

git clone https://github.com/Quan666/ELF_RSS.git
cd ELF_RSS
docker build -t elfrss:latest .

然后将文件夹内的.env.dev复制一份为.env.prod,并填写:

  • 管理员QQ
  • rsshub地址、备用地址
  • IS_LINUX设置为true

然后启动容器,就会自动运行主体:

docker run --name elfrss -p 8080:8080 -v $(pwd)/:/app/ -e TZ=Asia/Shanghai -d elfrss:latest

使用

成功启动go-cqhttp以及ELF_RSS之后,就可以开始使用了。

添加订阅

add {订阅名称} {订阅地址}

  • 订阅名称:自定义
  • 订阅地址:可以使用普通rss地址,或者rsshub地址

若使用普通地址
在这里插入图片描述
若使用rsshub地址
在这里插入图片描述
此时格式需要参考rsshub文档(需要科学上网),能够支持非常多的订阅内容,并且已经支持不少高校的通知:Rsshub文档/路由/大学通知

效果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值