神代綺凜

[开源] 二次元搜图QQ机器人
↑↑↑推销搜图机器人↑↑↑ 终于算是完成了第一件假期想做的事情
扫描右侧二维码阅读全文
13
2018/07

[开源] 二次元搜图QQ机器人

↑↑↑推销搜图机器人↑↑↑

终于算是完成了第一件假期想做的事情

Head Pic: 「第六駆逐隊」/「ふわり」のイラスト [pixiv]

竹竹 v2.3.0

QQ:1485785264

目前会自动同意好友请求和进群邀请,欢迎各位测试
有什么 BUG 也希望能反馈下哇

目前机器人有可能出现群内发言被系统屏蔽的现象,不知道是不是腾讯有什么隐性的单位时间群内发言数限制
顺便,看了看日志发现竹竹已经加了近160个群(有点小开心
不过这也导致了这种问题频繁发生的可能性,决定暂时停止自动同意入群申请,如果以后将来还有这种情况发生,我说不定会手动退出一些群(希望不要这样吧
要是腾讯爸爸跟 Telegram 一样专门出个机器人号申请和官方 API,哪来这么多破事(

如果您觉得这个机器人挺有用的,想滋瓷我的开发维护,可以拉到文章最底部赞赏作者,这样我会更有动力哒~

开源

项目原来是使用酷Q的易语言SDK开发,目前使用 Nodejs 重写并开源

开源版本不含咬人功能,因为这个功能用 CoolQ HTTP API 来写实在是太麻烦,干脆就不移植了……

用法

开源版本不含某些功能,开源版功能请以 GitHub README 为准

  • 发送--help可查看下面可能没提到的一些稀奇古怪的用法帮助
    • 发送--help-pic可查看搜图附加参数
  • 私聊
    • 直接发送图片
  • 群组&讨论组
    • @机器人并发送图片
    • 在群组中可以发送“竹竹搜图”以进入搜图模式
      在搜图模式中,发送的所有图片即使不@也会被搜图,此功能通常用于在手机上无法在转发图片时@的情况
      另外,进入搜图模式后也请务必记得退出搜图模式啊
  • 可以在同一条消息中包含多张图片(针对PC),会自动批量搜索
  • 搜索图片时可以在消息内包含以下参数来指定搜索范围或者使用某项功能,参数之间互斥,优先级从上到下
    • --get-url获取图片的在线链接(不会搜图)
    • --pixiv只从P站中搜索
    • --danbooru只从Danbooru中搜索
    • --book搜索本子
    • --anime搜索番剧
  • 如果搜索到本子,会自动在 nhentai 中搜索并返回链接(如果有汉化本会返回汉化本链接)
  • 如果搜到番剧,会自动使用 WhatAnime 搜索番剧详细信息
    • AniDB 与 WhatAnime 的结果可能会不一致,是正常现象,毕竟这是两个不同的搜索引擎
    • 同时展示这两个搜索的目的是为了尽力得到你可能想要的识别结果
    • 如果使用 GIF 图进行搜索,Saucenao 会自动取第一帧进行搜索;而 WhatAnime 不支持 GIF,会发生错误
  • 竹竹会对搜索结果进行缓存,有效期两天,也就是说如果别人搜过的图你使用同一张图片搜可以立即得到结果
    • 如果你觉得缓存可能已经过时,你可以使用--purge参数无视缓存进行搜索
  • 有些隐藏功能……(群组限定)

TODO

  1. 人设相关(基友拖更中

示例

搜图

搜番

搜本子 and 搜图附加参数

想搜本子结果返回了本子画师在P站发布的预览封面图,怎么办?

别担心!搜图附加参数来帮你!

其他说明

隐私声明

竹竹会永久储存的数据只有某一次查询的{图片MD5,查询时间,查询参数,本次查询竹竹的回复内容},不会含有任何人的QQ或者QQ帐号信息之类的数据

竹竹的复读功能只会在内存中储存{QQ群,群内最后一句发言,发言者QQ号},这部分内容随时会被更新替换并且软件重启后会丢失

名字来源

实际上我一开始是向基友要了个QQ小号来实验,结果因为异地登陆发太多链接结果给冻结了,而且我基友注册这个QQ的那个手机号已经不在了……

为了纪念这一逝去的小号,故取基友爱称第一个字“竹”作为名称,头像也是用的我基友的老婆 エルエル

为什么有时候搜不想要的出结果?

需要说明的是,搜图引擎发现新图片并收录也是需要时间的,因此画师刚上传的画作一般情况下是没办法搜到的

另外,搜图时发送的图片必须是刚好完整的图片,使用以下几种情况的图片会导致大概率搜不到结果:

  • 使用的是原图的局部图,即因剪裁而不完整
  • 图片被 马赛克/图片马赛克等 遮挡的部分面积过大
  • 截图没截好,留有黑边,例如为了省事直接使用手机截屏或者电脑手动框选截图,这种情况请在搜图前自行编辑裁去与图片无关的部分
  • 清晰度过低的图片

以后会不会开发出其他的功能?

目前专门搜图,以后可能会看情况加入更多有用的娱乐功能吧~

鸣谢

更新日志

更新日志(点击展开/收拢)
status="false"]2018-12-05 v2.3.0
未在config.json中指定的配置将会使用config.default.json中的默认值
对 setu 功能进行了机制完善
稳定性提升

2018-11-27 v2.2.1
一大堆改动,忘了写懒得补了 _(:3」∠)_

2018-08-16 v2.1.0
(暴力地)修复了当图片标题含有 emoji 时分享不正常的 bug
根据 @fuochai 的建议,将p站链接替换成短链接

2018-07-16
增加搜图模式下的搜图范围指定功能

2018-07-13
竹 竹 v 2 . 0 . 1 !

2018-06-06

  1. 尽量修复了某些本子因含有特定符号而无法在nhentai搜索到(实际上nhentai有这本子
  2. 增加数个反代点以扩充API使用次数

2018-06-05

  1. 为了减少API的使用次数以及加快搜图速度,增加搜图缓存功能,某张图片(MD5作为凭证)的搜索结果会被缓存两天,也可以用--purge参数无视缓存强制更新搜图结果
  2. 本来这个功能我是不想做的,我今天凌晨在更新上面这个功能的时候,发现有个人,都已经报API次数不足了还在一个劲的私聊批量搜图,真好玩是不是?
    现在单个QQ每日私聊搜图限制30张,望各位自重。
    当然,并不是说不可以去“玩”搜图功能,只是请把握好度:>

2018-06-05的前一天
重大技术突破(大雾
现在已经可以用分享模式发出不可描述链接了

2018-05-30
增加--book参数,用于指定搜索本子

2018-05-19
增加--danbooru参数,用于指定搜索图库

2018-04-29
修复了部分本子无法在 nhentai 搜到结果而实际上有的问题
(实测是由于汉字与单引号同时存在时 nhentai 会出 bug 导致搜不到结果,所以解决方法就很暴力了,并且不排除得到错误结果的可能性)

2018-04-10
今天又修了一下无法搜图的问题(昨天修bug的时候又弄了一个新bug出来emmmm
修复了无法搜动漫的问题

2018-04-09
发现了最近搜图 bug 频出的真正原因,由于使用搜图的频率过高,导致 api 搜图次数达到上限,而且 saucenao 是记录 ip 的而不是 api,因此同一个 ip 怎么更换 api 都是没有用的(亏我还准备了好几个api)
总之是想办法解决了这个问题,暂时应该不会再出现这种情况……了吧……
希望大家还是尽量克制点,不要总是搜一些明知搜不出却就是要好奇去搜一搜的图……

2018-03-22
改进了搜索结果表示,不再啰嗦
弃用-s-c参数,使搜图监听模式的触发更人性化
使用--anime参数可以利用 whatanime 搜番(测试中,尚未作为正式功能,还有很大改进余地)

2018-02-24
改进-s搜图的逻辑,现在可以进入搜图模式之后一直发图片进行查询,直到用-c参数退出

2018-02-16
增加-s参数搜图模式,以应对类似“因转发图片至群里而无法@竹竹”导致搜图过程复杂的问题

2018-02-12
支持识别benzi的搜索结果

2018-01-24
感谢几位朋友的捐助,我得以购买 酷Q Pro 授权,目前查图结果表示已得到优化

2018-01-23
搜图支持批量了

2018-01-22
重写搜图结果识别方法与逻辑
修复了当图片不为消息最后一个内容时会导致无法搜图的BUG
新增“竹竹咬他”功能

2018-01-21
【竹竹 ver1.0】诞生啦

我的文章对您有帮助吗?
我很可爱 请给我钱
扫一扫拿红包 → 扫商家收款码 → 花呗支付比红包多1分钱的金额
既可免费赞赏,又可完成支付宝支付任务!
Last modification:December 6th, 2018 at 02:12 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

103 comments

  1. Cofalt  Windows 7 x64 Edition(Windows 7 x64 Edition) / Google Chrome 53.0.2785.104(Google Chrome 53.0.2785.104)

    感谢博主的机器人,简直是非常实用的发明.

    赞美之心|´・ω・)ノ

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.110(Google Chrome 70.0.3538.110)
      @Cofalt

      感谢支持

  2. 真央  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 63.0.3239.26(Google Chrome 63.0.3239.26)
    该评论仅登录用户可见
    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.110(Google Chrome 70.0.3538.110)
      @真央

      这个是在发送搜图结果的时候是否用文字而不用分享,不是pro自然要true,pro的话有时候如果出现分享发的太多被屏蔽的情况也可以true

      另外有一些机制我还没有设计完全目前程序有点乱……当时没开多一个分支,readme也没更新,如果要更新的话先等一阵子吧

      更新的话直接git pullnpm i,然后根据新增的配置内容修改自己的config就行

      1. 真央  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 63.0.3239.26(Google Chrome 63.0.3239.26)
        @神代綺凜

        好的非常感谢|´・ω・)ノ

  3. dMinor  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.81(Google Chrome 69.0.3497.81)
    该评论仅登录用户可见
    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.110(Google Chrome 70.0.3538.110)
      @dMinor

      也被举报?

      1. dMinor  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.81(Google Chrome 69.0.3497.81)
        @神代綺凜

        呆胶布,只是我们自己把群搞炸了(天知道是内鬼还是算法),新群木有竹竹van了好寂寞嘤嘤嘤(/ω\),然后就来发发牢骚,最近查的是真的严= =

  4. 猫宫Azusa  Windows 10 x64 Edition(Windows 10 x64 Edition) / uBrowser 6.2.4094.1(uBrowser 6.2.4094.1)

    难怪这几天没反应了…早就有预感会被举报啥的…
    话说搜gif的时候whatanime总是会说文件太大是无法解决的吧?

    1. 神代綺凜  Mac OS X(Mac OS X) / Safari(Safari)
      @猫宫Azusa

      嗯,实际上whatanime是不支持gif的,要搜的话建议截一帧出来搜

  5. shanai  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
     DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

    在群里搜图 只有精确度的回复 并没有图片链接 并且 log 中出现此警告 是什么原因呢(╯‵□′)╯︵┴─┴

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.102(Google Chrome 70.0.3538.102)
      @shanai

      这个警告可以无视

      没有图片链接是每次都有这个情况?

  6. zetalpha  Windows 7 x64 Edition(Windows 7 x64 Edition) / Google Chrome 62.0.3202.97(Google Chrome 62.0.3202.97)

    有tg的机器人版本吗?
    tg几个都试了不太好用

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.102(Google Chrome 70.0.3538.102)
      @zetalpha

      没有,但可以移植,这是后话了

  7. 楼顶的猫  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3493.3(Google Chrome 69.0.3493.3)

    尝试了一波,并没有成功,还请大佬把GitHub上的文档写详细一点 ..........

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.77(Google Chrome 70.0.3538.77)
      @楼顶的猫

      就是 酷Q->CQ HTTP->本程序 呀

  8.   Windows 7 x64 Edition(Windows 7 x64 Edition) / Google Chrome 49.0.2623.87(Google Chrome 49.0.2623.87)

    大佬,我看见一个机器人2131406931应该就是用你的项目做的,不过搜图模式下连熊猫头那种表情图都能搜出来,这是用了什么方法啊,自己添加的js嘛?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.77(Google Chrome 70.0.3538.77)
      @枫

      只是碰巧网络上有人传表情图而已,搜图最主要的作用是搜来源于p站/推特的图以及cos
      所有的搜图都利用saucenao

  9. 七曜星痕  Windows 10 x64 Edition(Windows 10 x64 Edition) / Yandex Browser 18.9.1.954(Yandex Browser 18.9.1.954)

    私聊30次是指群里私聊还是加了好友的单聊……另外坐等恢复加群功能

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 70.0.3538.77(Google Chrome 70.0.3538.77)
      @七曜星痕

      好友
      恢复加群是不可能的了,因为QQ有群上限

  10. A  Android 8.0.0(Android 8.0.0) / Google Chrome 70.0.3538.80(Google Chrome 70.0.3538.80)

    大佬有那种设定好时间就能主动给我发消息提醒的类似助理功能的机器人吗?还有这种机器人上哪去找?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @A

      那么你为什么不用系统自带的提醒呢……

      1. A  Android 8.0.0(Android 8.0.0) / Google Chrome 70.0.3538.80(Google Chrome 70.0.3538.80)
        @神代綺凜

        感觉在QQ上接收提醒更人性化,有些不是很重要的事情设置闹钟会感觉压力好大。

  11. 真央  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 63.0.3239.26(Google Chrome 63.0.3239.26)

    大大可以弄个概率按复读次数增长增高禁言复读机的插件吗୧(๑•̀⌄•́๑)૭

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @真央

      在后续计划中

  12. LoneFireBlossom  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)

    报个(可能的)问题,给竹竹发送其中的图片后,得到的结果如截图所示,这个链接在电脑上显示“需要用手机qq查看”而且也没有复制链接的按钮,在安卓手机和ipad上下载了qq浏览器也打不开这个链接。
    链接:https://pan.baidu.com/s/1tmgXwRMEgwzWJ_N2g8_UWA 密码:1gm1

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @LoneFireBlossom

      这并不是bug,因为原结果本来就没有链接
      你可以到 http://saucenao.com 上用这张图搜索试试,出来的匹配结果是没有出处的
      后续版本我对这种情况加一些提示之类的吧

      1. LoneFireBlossom  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
        @神代綺凜

        谢谢解惑。

  13. 都督  Windows 7 x64 Edition(Windows 7 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)

    看完 發現 完不懂怎麼用啊 大佬 (╯‵□′)╯︵┴─┴

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @都督

      救不了了

  14. 余生  Android 5.1(Android 5.1) / Google Chrome 57.0.2987.108(Google Chrome 57.0.2987.108)

    允许我加入我自己的机器人插件里吗?会不会骂我盗版?

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
      @余生

      注明功能来源即可

  15. fuochai  Mac OS X(Mac OS X) / Safari(Safari)

    提个小建议
    saucenao有多个结果时 匹配度差不多的情况下返回id最小的那个 如何
    id最大的一般是盗图的而非原画师
    赞美大佬୧(๑•̀⌄•́๑)૭

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.81(Google Chrome 69.0.3497.81)
      @fuochai

      id指的是什么

      1. Formateur  Windows 10 x64 Edition(Windows 10 x64 Edition) / Maxthon 5.2.3.4000(Maxthon 5.2.3.4000)
        @神代綺凜

        我去看了下saucenao搜到的图有一个【dA ID: xxxxxxx】,他可能说的是这个

        1. fuochai  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.100(Google Chrome 69.0.3497.100)
          @Formateur

          指pixiv的id,因为sauce对图片的排序默认是相似度优先,因此(有可能)会出现盗图比原图更靠前的情况

  16. fuochai  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)

    竹竹目前压力大吗 可以分享给其他人吗|´・ω・)ノ比如转载到资源整合帖里

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @fuochai

      呃,那可能压力有点大……

      1. fuochai  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 69.0.3497.81(Google Chrome 69.0.3497.81)
        @神代綺凜

        那行,摸了(话说这个回复没收到邮件提醒欸OωO)

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
          @fuochai

          好像邮件提醒没问题来着(

  17. 纯亦  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
    该评论仅登录用户可见
    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @纯亦

      能把本子图片发我一下来测试吗,发我邮箱就行

      1. 纯亦  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
        @神代綺凜

        我....我忘记了....我仔细找找

  18. 围观群众  Android 8.0.0(Android 8.0.0) / IBrowse r(IBrowse r)

    碰到过几次bug
    搜本子图时能搜到图
    返回的链接的缩略图也正确
    但是点开链接后却发现是另一部漫画
    这个情况碰到了好几次

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @围观群众

      能提供一下出错的图片吗
      https://sm.ms/
      去这里上传然后把链接发到评论(私密)

      1. 围观群众  Android 8.0.0(Android 8.0.0) / IBrowse r(IBrowse r)
        @神代綺凜

        我研究了一下发现……
        我找的是一个单行本的图……
        返回的nhentai打开却是一部短篇
        我找了一下发现……
        那个短篇的名字就是单行本的名字……
        那个单行本包含的链接返回的短篇和我搜索的图片……

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
          @围观群众

          重名就没办法了,因为识图也是只能拿到名字的,我这里只是多加了一部把名字拿到nhentai搜索然后取第一个搜索结果的链接

  19. fuochai  Mac OS X(Mac OS X) / Safari(Safari)

    汇报个bug,pixiv图有emoji的时候不能正确显示(ó﹏ò。)
    比如这个:pixiv.net/i/69998113
    还有,我觉得pixiv链接可以改成短链接(就像上面那样)
    赞美大佬o(*///▽///*)q

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
      @fuochai

      问题修复了,而且后来想了想显示短链接也蛮好的……

      1. fuochai  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)
        @神代綺凜

        真香 !

    2. 神代綺凜  Mac OS X(Mac OS X) / Safari(Safari)
      @fuochai

      这个bug我已经发现了,会研究修复
      短链接感觉就不是很必要了其实。。

      1. fuochai  Mac OS X(Mac OS X) / Safari(Safari)
        @神代綺凜

        因为我发现其他的链接大都在打开前就能看到id,pixiv不能,这样一来就必须在qq内打开一次pixiv>﹏<
        怕看h图被qq发现

        1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.106(Google Chrome 68.0.3440.106)
          @fuochai

          这个倒是好办,那我直接显示pid不显示链接就行了(

  20. 纯亦  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 67.0.3396.99(Google Chrome 67.0.3396.99)

    那个,有没有打算在telegram上也弄个类似的机器人?
    我觉得QQ这个机器人马上要阵亡了,先不说腾讯不支持机器人
    关键是你这个是可以搜本子的...吃枣药丸啊

    1. 神代綺凜  Windows 10 x64 Edition(Windows 10 x64 Edition) / Google Chrome 68.0.3440.75(Google Chrome 68.0.3440.75)
      @纯亦

      药丸了再说吧,炸了我就移植去tg