Coder Social home page Coder Social logo

gwyog-hoshino-plugins's Introduction

公主连结实用/娱乐插件 for HoshinoBot on Mirai

A repository for HoshinoBot(V2) based PCR plugins made by myself.

简介

一些基于 HoshinoBot(V2) 开发的公主连结实用插件或有趣的娱乐插件,开发环境为Mirai。(开发环境用的是go-cqhttp,理论上绝大部分插件也能在cqhttp-mirai上使用,但由于cqhttp-mirai最近没更新,进而导致cqhttp-mirai还未实现部分插件所用的的CQ码,因此会出现一些不兼容的情况,建议尽量还是使用go-cqhttp)

其他还有4(3?)个之前在酷Q Pro环境下开发的HoshinoBot插件,我没迁移到此仓库中,它们基本都可以直接装在Mirai的HoshinoBot上,它们是:

  • 轴管理插件:(支持Mirai)加入了向机器人录入图片或者文字轴的指令,之后可以方便地查询数据库中存放的轴。此插件可使公会在会战中更方便的查询、交流、优化轴,也可以让几个公会之间共享轴。

  • box统计插件:(支持Mirai)加入指令,在管理员设定好需要统计的角色星级后,机器人会自动私聊指定人员询问并统计汇总他们的角色星级。统计完毕后,在群内可以使用指令方便的查看分类汇总的统计结果;也可以自动生成统计结果的csv文件,或者把统计结果的表格以图片形式发送到群中(这个功能很实用!)。

  • 猜语音小游戏插件:(代码已重构,支持Mirai。如果用的是go-cqhttp,那么语音需要自己转码,具体流程请参看猜语音插件代码仓库的README 请使用最新版的go-cqhttp并配置ffmpeg,已支持全格式语音发送)机器人会自动从干炸里脊资源站下载所有角色的打开游戏时说的的那句"cygames"语音。之后机器人会随机发送一句语音到群里,让群友猜猜是哪位角色说的。

  • 会战名次查询插件:(已弃坑,勿用)使用查询指令后,机器人会从镜华会战名次查询网获取数据,把需要查询的公会的会战当前名次或历史名次发送到群里。这个插件功能刚写到一半就开巨蟹座会战了,所以功能比较简陋。打完会战发现github上有不少同类型的功能更完善的插件,所以就弃坑了(笑)。

此仓库插件介绍(基于Mirai开发)(目前共9个):

1. 猜角色小游戏插件pcrdescguess

注意:此插件的代码已被@Ice-Cirno 重构且并入了HoshinoBot本体。此仓库中此插件的代码仅供归档用,不再额外开发新功能。

指令 说明
猜角色 机器人会随机给出角色的一些描述,群友需要根据这些描述猜出是哪个角色
猜角色排行榜 显示猜角色小游戏猜对次数的群排行榜

2. 猜头像小游戏插件pcravatarguess

注意:此插件的代码已被@Ice-Cirno 重构且并入了HoshinoBot本体。此仓库中此插件的代码仅供归档用,不再额外开发新功能。

指令 说明
猜头像 机器人会发送某个角色头像随机截取的一小部分,群友需要猜出它来自哪个角色头像
猜头像排行榜 显示猜头像小游戏猜对次数的群排行榜

3. B站搜索爬虫bilisearchspider

这是B站视频搜索引擎的爬虫。在设定好爬取关键词后,每隔5分钟机器人会把这几分钟里以这些关键词搜索出来的新发布的视频推送到QQ群中。推送的内容包括:视频封面、视频标题、up主名字、链接。

这个插件主要是为了会战而生,比如如果设定关键词为“狮子座公会战”,那么会战期间所有在B站发布的轴都会推送到QQ群里。此外,也可以设置一些其他的关键词供娱乐使用。

需要注意的是,由于B站搜索引擎的特点,设定单一关键词“狮子座公会战”并不能把所有相关视频都搜出来。比如起名“狮子座工会战B2130W轴”的视频就没法靠这个关键词搜出来。这时需要再添加另一个关键词“狮子座会战”。插件支持任意多的关键词,这些关键词搜索出视频的并集会被推送到群里。

特别地,如果设置的关键词是up主名字,使用这个插件等价于自动收到这个up主新投稿的提醒。

只要存在关键词爬虫就会自动启动,如果想停用请使用指令把关键词全删掉。

指令 说明
添加B站爬虫 <关键词> 添加爬取关键词。每次添加一个,可添加多次
查看B站爬虫 查看当前爬取关键词列表
删除B站爬虫 <关键词> 删除指定爬取关键词

4. nga会战爬虫ngaclanbattlespider

顾名思义,这是爬取nga会战相关帖子的HoshinoBot爬虫插件。目前内置的关键词只会爬取一些有价值信息的帖子,包括但不限于会战轴。无意义的感叹帖、水贴不会爬取。目前暂不支持外部指令添加自定义关键词。

注意!安装此插件需先安装第三方库selenium,并配置好chrome和chromedriver,windows系统可参考这篇文章。之后再使用通常方法安装此插件到HoshinoBot上。

指令 说明
启用nga会战爬虫 [国服/日服/台服] 启用nga会战爬虫并设置爬取版块为:国服讨论/日服讨论/台服讨论,默认是国服讨论。每隔一段时间爬虫将自动爬取nga会战相关帖子
禁用nga会战爬虫 关闭nga会战爬虫服务

5. 公主连结午间音乐pcrmiddaymusic

插件汇总了公主连结全活动ed、游戏主线op/ed以及一些角色歌。每日午间会随机推送一首音乐到群中。机器人首先会发送一些歌曲的基本信息:包括音乐出处、相关图片、歌名和歌手名,如果是活动ed还会包含活动剧情简介。之后机器人会发送音乐的qq音乐/网易云音乐/B站视频卡片。

平时也可以使用以下指令直接请求机器人推送一首pcr音乐。

推荐使用v0.9.24+的go-cqhttp,老版本的go-cqhttp使用xml发送音乐卡片容易被腾讯风控。

指令 说明
来点音乐 随机推送一首公主连结相关音乐
来点音乐 [关键词] 寻找活动名/歌曲名含有关键词的音乐并推送

6. 公主连结记忆小游戏pcrmemorygames

两个公主连结主题的记忆力小游戏。刚上手可能有点难,不过熟悉规则、掌握技巧后应该蛮容易的。如果还是觉得难可以自己修改相关参数。

目前存在作弊手段,全凭自觉。真想根除作弊只能等go-cqhttp把闪照功能实现,不过那样游戏性估计会降低。

完美配对小游戏的记忆技巧是联想记忆法,把图案和周围的图案联想记忆,比如如果看到"亚里莎"和"鱼竿"两个图案靠的近,就联想亚里莎在钓鱼,一次记住两张图。

指令 说明
完美配对 idea来自糖豆人的完美配对关卡。规则类似:4×4方格内藏有16种不同图案,初始不显示其内容。每次机器人会随机展示其中8个位置的图案,持续若干秒,共展示3轮,请记住各个图案所在的位置。之后机器人会随机提问一种图案,请回答这个图案在4×4方格中的位置编号。
完美配对排行榜 显示完美配对小游戏分数排行榜
神经衰弱 老实说我不清楚这种游戏该叫什么,暂时借用《狂赌之渊》中纸牌游戏“双重神经衰弱”之名。4×4方格中放置了8种不同的图案,每种图案共两张。机器人首先会给几秒钟时间记忆,然后把全部图片翻面并随机翻开其中一张。玩家需要在规定时间内回答另一张相同图案所在位置的编号。
神经衰弱排行榜 显示神经衰弱小游戏分数排行榜

7. 反并发插件anticoncurrency

在大群中使用多个不同的插件时容易出现非计划内的并发:比如群友A想玩猜角色、群友B想玩猜语音,他们不小心同时发送了指令,这时机器人会同时开始两个不同的游戏,而小游戏一般持续时间都比较长,这样会造成混乱。

anticoncurrency插件解决了这一问题。给插件设置好不想并发的指令后,只有当一个指令执行完毕,另一个指令才会被机器人接受并开始执行,否则会自动忽略。

从理论上来说,在设置好相关参数后,这个插件可以防止任何插件(哪怕被魔改过)的指令出现并发,适用范围很广。

安装和使用方式:先用常规方式安装插件进HoshinoBot,然后使用notepad++之类的文本编辑器打开文件anticoncurrency/anti_concurrency.py,参照里面的注释修改ANTI_CONCURRENCY_GROUPSSELF_CONCURRENCY的值。之后再启动bot就可以了。

8. 戳机器人集卡小游戏pokemanpcr

试试戳一戳机器人~ 她可能会回戳你,也可能会送你随机的公主连结角色卡片,尝试通过卡片交换和融合实现卡片全收集吧!

插件需要 go-cqhttp v0.9.25+, 并在配置文件中把protocol改成Android Phone,详见go-cqhttp的doc。此外,插件需要使用字体arial.ttf,Linux系统请自行下载字体并放在HoshinoBot的主目录下(即和run.py放在同一目录)。

图鉴中的卡片可以自己添加、删除、修改,但请使用相同的命名格式。所用资源来自干炸里脊资源站 新版插件会自动生成图鉴中卡片,详情请见下方的更新2说明。

每人每天戳一戳机器人得卡的次数有上限,想要修改数量请改代码开头部分的相关参数。同样在代码开头部分还有其他一些供自定义的参数,包括但不限于生成仓库图片时每行显示的图片个数、获取不同稀有度卡的概率等等。

更新2: 得到了@A-kirami 的许多帮助,此插件目前已大更新完毕。原有需要自定义添加的卡库改为使用Hoshino自带的res资源包中的角色头像。所有res/img/priconne/unit文件夹中文件名格式为icon_unit_[四位数角色id][1/3/6]1.[后缀名]的角色头像将被自动纳入卡库(同时需要在Hoshino的_pcr_data.py中添加对应角色的昵称)。这样,插件卡库会随着res资源包的更新自动扩充了。此外,新版插件戳一戳时一次能获取多张卡了,这样一定程度可减少刷屏现象。 注:新版插件兼容老版本数据库,但卡片资源不通用。老版本插件可在仓库的Release页面中找到。

更新:感谢@var-mixer 的PR,当前版本插件图鉴已自带全部149个角色(启动Bot时插件会预加载全部图片至内存,这样生成仓库图的速度有较大提升)

指令 说明
查看仓库 查看自己的仓库、卡片收集情况和排名
查看仓库 [@某人] 查看指定群友的仓库、卡片收集情况和排名
合成 [卡片1昵称] [卡片2昵称] 消耗两张卡片以获得一张新的卡片。如是稀有或超稀有卡片请在卡片昵称前加上"稀有"或''超稀有",如"稀有黑猫"
赠送 [@某人] [赠送的卡片名] 将自己的卡片赠予别人
交换 [卡片1昵称] [@某人] [卡片2昵称] 向某人发起卡片交换请求,用自己的卡片1交换他的卡片2。同样,如是稀有卡片请在卡片昵称前加上"稀有"二字。
确认交换 收到换卡请求后一定时间内输入这个指令可完成换卡

9. 海豹杀手pcrsealkiller

公会群里被海豹骑脸的非酋们的福音(雾)。

简单来说,这个插件会自动检测群员发的图片,并使用QQ自带的OCR提取图中文字。如果发现是抽卡截图,且抽卡次数未达阈值就抽中NEW的话,则被判定为海豹,享受撤回消息+禁言二连击。只支持识别公主连结抽卡截图,国服/台服/日服均可。

由于需使用.ocr_imageAPI,请使用v0.9.26+的go-cqhttp。此外,请给机器人管理员权限,群主权限最佳。最新版插件需使用opencv-python库,请自行安装,安装方式:pip install opencv-python

更新2:目前新版插件使用了opencv,极大程度提高了识别准确度。使用插件前请自行安装opencv-python库。如实在不想额外安装库,可在代码前部把USE_OPENCV改为False(注:这样会降低识别准确度,不推荐)。

更新1:STRICT MODE: 由于不同手机分辨率不同和QQ压图的原因,有时并不能很好地识别出抽卡图中的文字“NEW”。为了防止漏鲨海豹,新增STRICT MODE,默认为开启状态,可在代码开头部分修改,开启后对于检测不出“NEW”的未达抽卡阈值的抽卡图,同样视为海豹图,不过不再禁言,只撤回。(EDIT: 在更新2后已经基本不会识别不出“NEW”了~)

目前还处于实验性阶段,由于插件会对群里发送的大部分图片(EDIT: 感谢HoshinoBot群友们提供的思路,通过进行文件大小过滤,表情包被滤掉很多。现在插件只会对小部分图片OCR了,因此一直开着此插件也无妨)进行文字识别,不清楚会不会因此产生风控之类的不可测后果(小规模测试尚未发现)。

指令 说明
启用海豹杀手 [海豹判定阈值] 在当前群启用海豹杀手插件。如果不输入参数,默认阈值是100抽,小于100抽出货的均判定为海豹。
禁用海豹杀手 在当前群禁用海豹杀手插件。

安装方式

  1. clone或者下载此仓库的代码

  2. 将需要安装的插件文件夹放在hoshino/modules/文件夹中。比如如果想安装pcrdescguess插件,那么就把pcrdescguess文件夹放入。

  3. 打开hoshino/config/文件夹中的__bot__.py文件,在MODULES_ON中加入插件的名称。比如如果想安装pcrdescguess插件,那么就加入一行'pcrdescguess',

  4. 个别插件可能需要安装额外的第三方库。如果插件有需要安装的前置依赖,我在此README的插件介绍一节中注明。

注意事项

最好事先下载全角色头像放在HoshinoBot的资源文件夹中。虽然机器人在发现需要发送的角色头像缺失时也会自动从干炸里脊资源站下载,不过这样机器人会变卡。

gwyog-hoshino-plugins's People

Contributors

gwyog avatar a-kirami avatar sudingquan avatar var-mixer avatar guch8017 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.