用RSSHub订阅你的爱豆并推送到QQ群

一个活跃的应援群怎么能没有一个推送君呢,人力成本又太高,于是就诞生了这个机器人@(脸红)。定时抓取Twitter和Instagram并进行翻译后推送到QQ群

效果预览

使用

下载酷 Q,文中使用的是酷 Q Pro 版本。然后安装 HTTP API 插件

申请一个 有道翻译的 API

credentials.js 相关配置

在根目录新建一个 credentials.js 文件,内容为

module.exports = {
    // 酷Q授权
    accessToken: 'mikutoken',
    secret: 'mikuqwq',
    rsshub: 'http://rsshub.app',
    // 有道翻译
    youdao: {
        appid: '',
        key: ''
    }
}

HTTP API 的相关配置

依次进入 酷Q Pro/data/app/io.github.richardchien.coolqhttpapi/config 目录,编辑对应的 json 文件(bot的QQ号.json)。用以下内容覆盖,access_token 和 secret 记得自己修改

{
    "host": "0.0.0.0",
    "port": 5700,
    "use_http": true,
    "ws_host": "0.0.0.0",
    "ws_port": 6700,
    "use_ws": false,
    "post_url": "http://127.0.0.1:8989",
    "access_token": "mikutoken",
    "secret": "mikuqwq",
    "post_message_format": "string",
    "serve_data_files": true,
    "update_source": "github",
    "update_channel": "stable",
    "auto_check_update": false,
    "auto_perform_update": false,
    "show_log_console": true,
    "log_level": "info"
}

添加订阅信息

打开 db/rss.json 文件,添加需要订阅推送的内容

{
    "Twitter-Ice_Hazymoon": { // 订阅名称
        "url": "/twitter/user/Ice_Hazymoon", // rsshub 路由
        "group": [ // 要推送的群组
            117474650
        ],
        "translate": false, // 是否启用翻译
        "proxy": true // 是否启用代理(主机为国内服务器,推送地址为国外时可以用到,比如Twitter),使用 http://127.0.0.1:1080 作为代理
    }
}

运行

$ yarn install # or npm install
$ node index

其他

  • 使用了 RSSHub 来实现订阅功能
  • 推荐使用 supervisor 模块,炸了可以自动重启
  • 虽然 酷 Q Air 也能用,但不能发图,未测试过
  • 推荐使用有道或者Google翻译,百度翻译效果不是很好,可以自行修改 src/translate.js 文件
  • 可能有很多 bug,慢慢修复
  • 我永远爱着[email protected](干杯)

评论

  1. 喵喵喵
    Windows Firefox 52.0
    3年前
    2018-10-18 23:24:43

    有了机器人后,的确可以替代一些锁事处理

  2. 4Rou
    Windows Chrome 70.0.3538.77
    3年前
    2018-11-04 21:39:39

    好漂亮的主题@(亲亲)

  3. jiuchi
    Windows Chrome 63.0.3239.132
    3年前
    2018-11-19 17:05:23

    哇,厉害了|´・ω・)ノ

  4. 沙缸过滤器
    Windows Chrome 69.0.3497.92
    3年前
    2018-12-07 15:10:42

    看不懂日语

  5. 网站一起来
    Windows Chrome 70.0.3538.110
    3年前
    2019-1-23 11:37:32

    TypeError: Cannot read property ‘forEach’ of undefined代码报错了index.js中,求up主帮忙看看

    • Ice-Hazymoon 博主
      Windows Chrome 70.0.3538.110
      3年前
      2019-1-23 13:02:12

      能否提供详细的截图,和 credentials.js 的文件内容

      • 网站一起来
        Windows Chrome 70.0.3538.110
        3年前
        2019-1-24 11:14:01

        PS C:\Users\Administrator> node index
        19年1月24日10:57:05:首次请求Twitter-Ice_Hayzmoon
        19年1月24日11:02:07:Twitter-Ice_Hayzmoon 没有更新 最后更新于:19年1月23日19:31:02
        19年1月24日11:07:08:Twitter-Ice_Hayzmoon 没有更新 最后更新于:19年1月23日19:31:02
        19年1月24日11:12:08:Twitter-Ice_Hayzmoon 没有更新 最后更新于:19年1月23日19:31:02
        感谢提醒,我把 credentials.js改了就成功了,这样的提示说明成功了吗?

        • Ice-Hazymoon 博主
          Windows Chrome 70.0.3538.110
          3年前
          2019-1-24 14:18:18

          如果有推送的话,应该是成功了

          • 网站一起来
            Windows Chrome 70.0.3538.110
            3年前
            2019-1-24 14:47:16

            好的,感谢博主୧(๑•̀⌄•́๑)૭

  6. 闲云遮月
    Windows Chrome 71.0.3578.98
    2年前
    2019-2-15 1:17:30

    作者你好,在抓取图片的时候出现:图片抓取失败RequestError: Error: connect ECONNREFUSED 127.0.0.1:1080,这是什么缘故?

    • Ice-Hazymoon 博主
      Windows Chrome 71.0.3578.98
      2年前
      2019-2-15 1:20:50

      默认需要SSR代理的支持,因为我是在国内机子上使用,如果不需要的话可以删掉第(101-105)行的内容,过几天重新更新一遍

      • 闲云遮月
        Windows Chrome 71.0.3578.98
        2年前
        2019-2-15 17:35:46

        呃,更新之后,反而没有任何反应了(除了首次得到有一个log),更新推特也没有成功或失败的反馈。而db.json里面是有抓取到东西的,tmp也有定时更新缓存。

        • Ice-Hazymoon 博主
          Windows Chrome 71.0.3578.98
          2年前
          2019-2-15 17:40:23

          推特更新后要等rsshub缓存刷新后才能生效,默认是十分钟,你可以去rsshub上看看页面有没有刷新,如果还有问题可以加我QQ:1733708055

        • Ice-Hazymoon 博主
          Windows Chrome 71.0.3578.98
          2年前
          2019-2-15 17:44:17

          抱歉,出了个bug,pull后再试试

  7. MikuSama
    Windows Chrome 72.0.3626.121
    2年前
    2019-3-08 22:57:56

    翻译能用谷歌翻译就好了,百度这个翻译太生硬了。

  8. 王太虚
    Windows Chrome 75.0.3770.100
    2年前
    2019-6-26 21:29:58

    请问配置中的access token 和secret是什么……

    • Ice-Hazymoon 博主
      Windows Chrome 75.0.3770.80
      2年前
      2019-6-26 21:33:37

      自己随便输点东西就行,鉴权用的

      • 王太虚
        Windows Chrome 75.0.3770.100
        2年前
        2019-6-26 21:50:04

        还有一个问题是抓取时报错 error: rss:请求RSSHUB失败 ==> Twitter-Ice_Hazymoon ==> RequestError: Error: Invalid URI “undefined/twitter/user/Ice_Hazymoon”
        查看代码后发现undefined的部分是rss.js中${rsshub}这个东西,这个东西引用的是
        const {
        rsshub
        } = require(‘../credentials’);
        我已经在根目录下建立了同名文件并把上面的内容完整粘贴进去了
        请问这是什么原因……

        • Ice-Hazymoon 博主
          Windows Chrome 75.0.3770.80
          2年前
          2019-6-26 21:52:34

          credentials.js 里需要有一个 rsshub 字段,且credentials.js所在的目录要和 index.js 同级,具体参数可以看 https://github.com/Ice-Hazymoon/rsshub2qq

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-6-26 22:08:47

            将blog和github上的结合之后可以正常运行 但是出现下面这种情况……是因为我在本地运行但是却关闭了代理的原因么……
            info: rss:开始执行任务
            info: rss:开始抓取:Twitter-Ice_Hazymoon
            info: rss:首次请求 ==> Twitter-Ice_Hazymoon
            info: rss:开始执行任务
            info: rss:开始抓取:Twitter-Ice_Hazymoon
            info: rss:开始执行任务
            info: rss:开始抓取:Twitter-Ice_Hazymoon

          • Ice-Hazymoon 博主
            Windows Chrome 75.0.3770.80
            2年前
            2019-6-26 22:10:56

            这种情况应该是正常运行了,如果出现更新log里会打印的,rsshub.app 的缓存在十分钟左右,所以更新推送会有延迟

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-6-26 22:45:52

            似乎并没有正常运行..
            我在30分钟和15分钟前分别用自己的twitter发了两条测试tweet,但是到目前为止仍然只显示
            info: rss:开始执行任务
            info: rss:开始抓取:Twitter-test
            info: rss:开始执行任务
            info: rss:开始抓取:Twitter-test
            并没有更新的log打印……
            直接访问rsshub.app的url可以发现有第一条tweet的记录

          • Ice-Hazymoon 博主
            Windows Chrome 75.0.3770.80
            2年前
            2019-6-27 12:51:08

            检查下 /db/db.json 里的文件有没有更新,还有就是Twitter的回复推文不会推送,微博的转发推文不会推送

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-6-26 22:57:18

            查看了一下代码……
            似乎是解析出错……?
            原本对于rsshub.app的api返回内容做的解析对现在返回的内容不匹配?
            一点小猜测。

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-6-28 14:11:32

            error: rss:发送失败 ==> https://twitter.com/xfause/status/1143888801028165632 ==> [object Object]
            提示发送失败
            错误原因是群组号错误
            因为我想要自用 所以是把小号直接传到大号上 而不是发送到群里
            需要更改哪里呢。

          • Ice-Hazymoon 博主
            Windows Chrome 75.0.3770.80
            2年前
            2019-6-28 16:39:44

            可以把index.js 里的

            bot(‘send_group_msg’, {
            group_id: group,
            message: msg
            }).then(resolve).catch(reject);

            改为:

            bot(‘send_private_msg’, {
            user_id: QQ号,
            message: msg
            }).then(resolve).catch(reject);

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-6-28 14:16:23

            另外在我通过创建群聊解决上面的问题后出现了403错误
            Error: Request failed with status code 403
            这又是什么导致的呢……

          • Ice-Hazymoon 博主
            Windows Chrome 75.0.3770.80
            2年前
            2019-6-28 16:37:37

            这应该是RSSHub的问题,可以手动打开rsshub的链接查看

          • 王太虚
            Windows Chrome 75.0.3770.100
            2年前
            2019-7-06 20:07:43

            时隔多日又来打扰博主
            现在出现了多次复读的情况,比如一条tweet会在间隔一段时间后重新推送一遍…
            这大概会是什么问题
            是否有可能是我对转推屏蔽部分代码的修改导致的?
            let url = o.guid;
            let user_id = config.url.substring(config.url.lastIndexOf(‘/’)+1,config.url.length+1);
            let flag = title.search(‘Re’) !== -1 || title.search(‘转发了’) !== -1 || url.search(user_id) == -1;
            我添加了一段对于url中user id的查找来进行屏蔽

          • Ice-Hazymoon 博主
            Windows Chrome 75.0.3770.80
            2年前
            2019-7-06 20:50:06

            猜测可能是因为:默认只缓存5条发送过的推文,然后每次再抓取5条,进行diff,过滤与缓存里不同的,如果订阅的地址【删除过推文】的话那么就会diff出来旧的推文再推送一遍,我找时间解决一下这个问题,应该和你修改的代码没关系

  9. 彬彬
    Windows Chrome 63.0.3239.132
    2年前
    2019-8-21 22:54:44

    博主可以看下qq私聊解答问题吗?

  10. 彬彬
    Windows Chrome 63.0.3239.132
    2年前
    2019-8-22 2:45:44

    只选择一个推特时,显示发现更新和发送成功,但是没有看见发送到群里的消息。选择两个以上推特时出现错误,db/index有问题;开启翻译true时,也是出现错误,读rss有问题。求助解答!已经加了您ice 的Q号好友了,跪求解答,真的很感谢!

  11. VPS234主机测评
    Windows Chrome 76.0.3809.132
    2年前
    2019-9-19 22:17:51

    封面图片是亮点啊OωO

  12. Lingki Chin
    Windows Chrome 78.0.3904.108
    2年前
    2019-12-01 18:46:24

    来逛逛@[剪刀手]

  13. 七安
    Android UC Browser 12.6.1.1041
    2年前
    2019-12-29 23:42:09

    博主,我想要加群wuwu

  14. fsjgd
    Windows Chrome 79.0.3945.130
    1年前
    2020-1-30 0:25:23

    抓B站动态有时候不成功?第一次抓的时候能抓成功,并且发送成功,对应的群也有收到,但是那条消息之后后续的都抓取不到了,一直都在抓取,对应的B站动态更新后的内容没有抓取到,db.json也没追加新内容,尝试过开关proxy参数没有变化,机子在墙外,抓的是B站,群也在墙内,这种情况需要开proxy吗,还有就是能不能设置抓取的时间间隔?

  15. 3I6N
    Linux Chrome 78.0.3904.97
    1年前
    2020-1-30 14:41:31

    看完技术,我倒是略懂了,但是没有爱豆咋办!@[酷]

  16. 鹭泽
    Windows Chrome 74.0.3729.169
    1年前
    2020-3-02 18:18:15

    请问这个插件怎么样才能订阅多个rsshub呢?简单粗暴地在rss.json下加路由会导致index错误

  17. 今日新鲜事
    Windows Chrome 78.0.3904.108
    1年前
    2020-4-08 0:54:52

    文章不错非常喜欢

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇