Giter Club home page Giter Club logo

hikaribot's Introduction

Hikari

Hikari

战舰世界水表BOT

pypi python hits GitHub stars
QQ Chat Group QQ Channel

💘您不打算给可爱的Hikari点个Star吗QAQ

简介

战舰世界水表BOT,基于Nonebot2
水表人,出击!wws me recent!!!
QQ频道官方机器人已上线,请点击上方链接加入体验~
Hoshino版插件

特色

  • 账号总体、单船、近期战绩

  • 全指令支持参数乱序

  • 快速切换绑定账号

  • 实时推送对局信息

  • 支持@快速查询

  • 全异步,高并发下性能更优

  • 支持频道(非官方bot类型)

    点我查看功能列表
    • 绑定账号:wws bind/set/绑定 [服务器+游戏昵称]:
    • 查询账号绑定列表:wws [查询/查]绑定/绑定列表 [me/@群友]:
    • 切换删除绑定账号:wws [切换/删除]绑定 [序号]
    • 查询账号总体战绩:wws [(服务器+游戏昵称)/@群友/me]
    • 查询账号历史记录:wws [(服务器+游戏昵称)/@群友/me] record
    • 查询账号近期战绩:wws [(服务器+游戏昵称)/@群友/me] recent [日期]
    • 查询单船总体战绩:wws [(服务器+游戏昵称)/@群友/me] ship [船名]
    • 查询单船近期战绩:wws [(服务器+游戏昵称)/@群友/me] ship [船名] recent [日期]
    • 查询服务器排行榜:wws [服务器+战舰名] rank/ship.rank
    • 查询军团详细信息:wws [(服务器+军团名)/@群友/me] clan
    • 查询军团历史记录:wws [(服务器+军团名)/@群友/me] clan record
    • 查询舰船中英文名:wws [搜/查船名] [国家][等级][类型]
    • 添加游戏战绩监控: wws [添加监控] [服务器] [游戏昵称] [备注名]
    • 查询游戏战绩监控: wws [查询监控]
    • 删除游戏战绩监控: wws [删除监控] [监控序号]
    • 重置全部战绩监控: wws 重置监控
    • 检查版本更新:wws 检查更新
    • 更新:wws 更新Hikari
    • 查看帮助:wws help
    • 噗噗:一言
    点我查看与Hoshino版的区别
    • Hikari所使用的Nonebot2框架相比Hoshino更易部署,且两者在单环境下不兼容
    • 一些功能比如频道目前仅支持Hikari
    • Hoshino的插件生态更偏向PCR,具体可以查看Nonebot2商店Hoshino插件索引
    • 由于个人精力原因,主要功能开发和维护面向Hikari,Hoshino版仅做最低限度功能适配
    点我查看遇到问题如何解决
    • 请确认您已按文档中部署流程进行
    • 请确认您已完整浏览可能会遇到的问题,且仍无法自行解决
    • 提问的智慧
    • 提供系统环境和bot版本,以及出现问题前后至少 10 秒的完整日志内容。请自行删除日志内存在的个人信息及敏感内容

在Windows系统上快速部署

点我查看视频教程

windows安装python版本请勿大于3.11,建议版本3.10

  1. 下载Hikari的最新Release并解压到合适文件夹
  2. 复制一份.env.prod-example文件,并将其重命名为.env.prod,打开并按其中注释编辑

    只显示了.env,没有后面的后缀?请百度windows如何显示文件后缀名

    API_TOKEN = xxxxxxxx #无需引号,TOKEN即回复您的邮件所带的一串由[数字+冒号+英文/数字]组成的字符串
    SUPERUSERS=["QQ号"]
    
    • 最后TOKEN应该长这样 API_TOKEN = 123764323:ba1f2511fc30423bdbb183fe33
    • 从0.3.2.2版本开始,您没有填写的配置将按.env文件中的默认配置执行,具体逻辑为
      • 私聊、频道默认禁用
      • 群聊默认开启,默认屏蔽官方交流群
    • 从2024-04-23开始,不再推荐使用go-cqhttp作为无头协议端,请参考下方配置LLOneBot
  3. 参考LLOneBot配置教程,配置NoneBot+LLOneBot的端口号及连接token,记得点击保存
  4. 双击启动.bat

Linux一键脚本

仅支持Debian、CentOS、Ubuntu

wget -qO - https://fastly.jsdelivr.net/gh/benx1n/HikariBot@master/install.sh | bash

使用Docker部署

  • Docker目录下是一个简单的Dockerfile,可以基于官方的Python容器封装一个完整的HikariBot
    • 12hydrogen/hikari-bot:latest上线官方仓库
  • 注意需要将内部的8080端口映射出来
    docker run -d -P 12hydrogen/hikari-bot:latest -t [token] -i [qqid] # 首次使用需输入token和qqid,-P表示将8080端口随机映射至主机
    docker run -d -p 12345:8080 12hydrogen/hikari-bot:latest -t [token] -i [qqid] # 使用-p以指定映射在外的端口
    
  • 运行上述指令后会在终端显示一串字符,即Docker容器的标识符,一般使用前几位即可唯一确定一个容器
    1a2b3c4d5e..... # 标识符
    docker stop 1a2b # 使用前四位确定,stop即停止容器
    1a2b3c4d5e.....
    docker start 1a2b # start即启动容器
    1a2b3c4d5e.....
    docker restart 1a2b # restart即重启容器
    1a2b3c4d5e.....
    
  • 在更新后即上传新版本容器
    docker pull 12hydrogen/hikari-bot:latest # 更新
    docker stop 1a2b
    1a2b...
    docker run -d --volumes-from 1a2b -P 12hydrogen/hikari-bot:latest -t [token] -i [qqid] # 随机映射
    or
    docker run -d --volumes-from 1a2b -p 12345:8080 12hydrogen/hikari-bot:latest -t [token] -i [qqid] # 指定映射
    9z8y... # 注意标识符变化了
    docker rm 1a2b # 删除旧容器,
    1a2b...
    
  • 将配置文件与容器分离 使用volume在宿主机保存相关账号信息,更新时按照相关步骤继承volume即可

在Windows系统上完整部署(gocq部分已过时)

  1. 下载GitPython并安装

    Python版本需>3.8,或参考Hoshino版插件中使用Conda虚拟环境

    请注意python安装时勾选或点击添加到环境变量,可以安装后cmd中输入python --version来验证是否成功

    否则请自行百度如何添加python到环境变量

  2. 打开一个合适的文件夹,鼠标右键——Git Bash here,输入以下命令(任选一条)克隆本Hikari仓库

    git clone https://github.com/benx1n/HikariBot.git
    
    git clone https://gitee.com/benx1n/HikariBot.git
    
  3. 以管理员身份运行一键安装.bat

    等效于在cmd中执行如下代码

    python -m pip install nb-cli hikari-bot nonebot-plugin-apscheduler nonebot-plugin-gocqhttp -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  4. 复制一份.env.prod-example文件,并将其重命名为.env.prod,打开并按其中注释编辑

    只显示了.env,没有后面的后缀?请百度windows如何显示文件后缀名

    API_TOKEN = xxxxxxxx #无需引号,TOKEN即回复您的邮件所带的一串由[数字+冒号+英文/数字]组成的字符串
    SUPERUSERS=["QQ号"]
    
    • 最后TOKEN应该长这样 API_TOKEN = 123764323:ba1f2511fc30423bdbb183fe33
    • 从0.3.2.2版本开始,您没有填写的配置将按.env文件中的默认配置执行,具体逻辑为
      • 私聊、频道默认禁用
      • 群聊默认开启,默认屏蔽官方交流群`
      • 默认WEB登录账号密码为admin/admin,如有需要请自行修改,无需设置密码请删除env.prod中的配置项
      • 默认开启噗噗
      • 默认开启缓存上报
      • 默认关闭代理
  5. 双击启动.bat,在打开的浏览器中添加bot账号密码,重新启动Hikari

    • 页面加载不出请尝试刷新一下,已知IE浏览器可能存在一些问题
    • 此时若没有报错,您可以在打开的页面http://127.0.0.1:8080/go-cqhttp/中 点击左侧添加账号,重启bot即可在网页上看到相应信息(大概率需要扫码)
    • 如果重启后go-cqhhtp一直卡在扫码或无限重启,请跳转无法使用内嵌go-cqhttp登录

在Linux上完整部署

  • 需要Python基本环境
  • Clone本仓库
  • 使用./manage.sh,基于原有批处理脚本
  • 无参数调用以获取使用帮助
  1. install
    • 安装必须的依赖与bot本体
  2. update
    • 更新bot
  3. start [-t/--token] [token] [-i/--id] [qqid]
    • 运行bot
    • 在当前目录下不存在.env.prod的情况下从参数获取token和qqid以创建相应文件,否则直接运行
    • 考虑到使用Linux部署时多数情况下本地不存在图形界面,有风险的向公网开放访问
    • 加入验证机制(listed)

作为已有Bot的插件部署(如真寻、Haruka)

  1. 如果您已经有了一个基于Nonebot2的机器人(例如真寻),您可以直接
    pip install hikari-bot
    
  2. 在bot的bot.py中加入
    nonebot.load_plugin('nonebot_plugin_htmlrender')
    nonebot.load_plugin('hikari_bot')
    
  3. 在环境文件中加入以下配置项
    API_TOKEN = xxxxxxxxxxxx
    SUPERUSERS=["QQ号"]             #超级管理员,填写你需要控制机器人的QQ号
    private = false                 #开启私聊
    group = true                    #开启群聊
    channel = false                 #开启频道
    all_channel = false             #是否全频道生效,无论此项配置如何,channel_list中的频道一定会开启
    channel_list = []               #频道列表白名单,数组形式,可在控制台中获取相应的channel_id
    admin_list = []                 #管理员列表,可以添加删除监控等权限,但无法控制机器人
    ban_group_list = [967546463]    #群列表黑名单,默认屏蔽了开发者交流群
    pupu = true                     #是否开启噗噗
    check_cache = true              #是否开启缓存上报,可降低高峰期延迟,如果错误日志中频繁报错上报url:XXXXXXXX,请关闭此项或配置代理
    proxy_on = false                #是否启用代理
    proxy = http://localhost:7890   #代理地址,如果上面选项开启,这边替换为你本地的
    ocr_on = true                   #是否开启ocr(识图指令)
    ocr_offline = false             #是否只使用hash验证,即设置为true后只能识别服务器已记录的图片,如果群较多(>300)导致响应延迟较高可以开启
    ocr_url = http://ocr.benx1n.com:23338           #默认ocr地址,一般不用动
    http2 = true                    #是否开启http2,默认开启,如果有问题请设置为false
    battle_listen_time = 1          #监控刷新时间,分钟级,如果性能或流量不够可以适当延长,推荐在5分钟以内
    htmlrender_browser = "chromium"         #默认使用chromium启动,出现问题了请改为"firefox"尝试
    

    一般来说该文件为.env.dev 也有可能是.env.pord,具体需要看.env中是否有指定

  4. 重启bot

更新

实验性更新指令:wws 更新Hikari 请确保在能登录上服务器的情况下使用 以下是旧更新方法

  1. 按不同版本
    • Windows一键包:下载最新一键包,复制旧版本中accounts文件夹和env.prod文件替换至新版文件夹中即可
    • 完整版:以管理员身份运行更新.bat或执行./manage.sh update

      等效于在cmd中执行如下代码

      pip install --upgrade hikari-bot
      git pull
      
    • 插件版:在cmd中执行如下代码
      pip install --upgrade hikari-bot
      
  2. 对比.env.prod-example中新增的配置项,并同步至你本地的env.prod
    • install结束后会打印当前版本
    • 您也可以通过pip show hikari-bot查看当前Hikari版本
    • 如果没有更新到最新版请等待一会儿,镜像站一般每五分钟同步
    • 从0.3.2.2版本开始,您没有填写的配置将按.env文件中的默认配置执行,具体逻辑为
      • 私聊、频道默认禁用
      • 群聊默认开启,默认屏蔽官方交流群

最近的更新日志

23-08-29 v1.0.0

  • [!]本次为重要版本更新,请重新下载一键包或配置Hikari
  • [+]重构代码,功能更新移至hikari-core
  • [+]添加监控功能

23-05-07 v0.3.9

  • [+]重构代码
  • [#]替换默认OCR接口

23-04-07 v0.3.8

  • [+]新增国服封号记录查询,指令wws ban/wws 封号记录
  • [#]修复了上次修复排行榜新产生的bug

23-04-04 v0.3.7

  • [+]添加获取随机表情包,指令wws 随机表情包
  • [+]更新船只选择界面
  • [#]更新Linux脚本托管

23-02-22 v0.3.6.4

  • [+]添加随机嘴臭,概率千分之一
  • [+]添加ocr启动报错提示
  • [#]修复一键包及Docker依赖问题 @94Bo @12hydrogen

22-11-18 v0.3.6 包含配置项更新,请添加env.prod-example中新增的配置

  • [+]新增噗噗(已于0.3.5.2实装)
  • [+]新增OCR(已于0.3.5.5实装)
  • [+]新增扫雪统计和圣诞船池检查
  • [+]新增国服排行榜
  • [#]大幅优化高峰期响应速度(已于0.3.5.3实装)
  • [#]Linux下支持微软雅黑(已热更新)

22-10-29 v0.3.5.5 添加测试功能OCR,支持图片指令

22-10-27 v0.3.5.4 修复一键更新指令bug

22-10-26 v0.3.5.3 添加缓存上报机制,修复噗噗误触发的bug

22-10-25 v0.3.5.2 新增噗噗

22-07-24 v0.3.5 适配nontbo2 v2.0.0rc1

22-07-24 v0.3.4 配置项及入口文件更新 请完整拉取最新仓库,并同步添加env.prod-example中新增的配置

  • 重要更新,完整版安装请拉取最新仓库代码,一键包请下载最新版本
  • [+]新增一键更新指令,指令wws 更新Hikari
  • [+]新增Linux一键脚本 @94Bo
  • [#]修改部分依赖版本
  • [#]大幅改动了模板以适配后续功能
  • [#]修改框架
  • [#]修改接口url
  • [#]修复了没有完全修复的兼容性问题#11
  • [#]修改日志输出等级,现在控制台只会打印SUCCESS级以上的日志

22-07-14 v0.3.3 积累更新

  • [+]新增群聊黑名单,默认屏蔽开发者群"
  • [+]docker添加CI/CD构建发布 @12hydrogen
  • [#]修复与其他插件的兼容性问题
  • [#]更改了请求域名
  • [#]修复manage.sh会更改toml的问题
  • [#]修复了hoshino排行榜选择船只样式问题
  • [#]修复仅打过PVE的单船仍会显示战绩详情的问题
  • [#]info适配v4接口
  • [+]新增配置项ban_group_list
更以前的更新日志

22-07-05 v0.3.2.2 一些修复

  • [#]修复切换、删除绑定的bug
  • [#]默认配置改为不启用WEB登陆验证
  • [#]修复.bat的环境变量问题 @94Bo

22-07-04 v0.3.2.1 配置项及入口文件更新 请完整拉取最新仓库,并同步添加env.prod-example中新增的配置

  • [+]新增对QQ频道的适配(非官方bot接入,官方版bot已上线yuyuko频道)
  • [+]新增自定义开启群聊、私聊、QQ频道
  • [+]新增web登录密码
  • [+]新增默认配置项
  • [+]新增PR彩蛋
  • [#]info适配V3接口
  • [#]recent显示时间区间

22-06-23 v0.3.1 重要功能更新

  • [+]新增单船近期战绩,可显示每日详细信息,指令wws ship recent
  • [+]新增docker部署 @12hydrogen
  • [#]修复国服特殊字符ID无法查询的bug
  • [#]修复船只选择过期后发送数字序号仍被识别的bug

22-06-15 v0.3.0.1 重要功能更新

  • [+]支持显示军团评级颜色
  • [#]排行榜内部逻辑改动,现在仅显示前十,不更新将无法使用
  • [#](hotfix)wws recent现在无随机战绩不会显示PR和上方战斗信息

22-06-08 v0.2.9.4 重要功能更新

  • [+]新增单船的服务器排行,显示在wws ship的详情页面下
  • [#]修复0.2.9后无法启动的bug
  • [#]js依赖改为本地
  • [#]修改recent样式,不更新可能会导致错位
  • [#]优化报错提示

22-06-03 v0.2.8 一些修复

  • [+]新增删除绑定功能
  • [#]修复wws ship总览经验和胜率不上色的bug
  • [#]修复wws ship详情只有单野场均被上色的bug
  • [#]修复wws 查船名中搜不到德国船的bug

22-06-03 v0.2.6 [#]修复wws recent胜率颜色的bug

22-06-03 v0.2.5 [#]修复wws recent击杀显示成命中的bug

22-06-03 v0.2.4 重要功能更新 否则您将无法使用wws recent功能

  • [+]全指令在游戏名外带上括号即可强制指定昵称,以适配一些带有空格、特殊字符、指令字符的昵称
  • [+]新增特殊绑定,请配合网页端食用,复制后发送给Hikari即可一键绑定
  • [+]新增部分报错提示
  • [#]更改ship,rank,recent样式,现在没有战斗场次的类型不会被显示
  • [#]优化Hikari的部署流程
  • [#]修复me大写不被识别的问题

22-06-02 v0.2.3 一些修复

  • [+]全指令支持大写
  • [#]修复Linux上可能出现的报错
  • [#]修改部分图片的样式

22-06-01 v0.2.2 修复了一个VSC导致的依赖错误

22-06-01 v0.2.1 修复问题

22-06-01 v0.2.0 重要功能更新

  • [+]新增排位数据
  • [+]支持国服
  • [+]单船战绩显示单野、自行车、三轮车
  • [+]启用gzip,试图改善请求Timeout
  • [+]增加3s指令CD和每日100次上限
  • [#]修复图片内字符不对称的bug(强迫症)
  • [#]修改未绑定账号时的返回
  • [#]修复网络问题与找不到游戏名时相同返回的bug
  • [#]适配HarukaBot

22-05-31 v0.1.9 一些修复

  • [#]解决由于QQ风控导致的船只选择列表无法发送的问题
  • [#]修复带非me/@参数查询绑定时引起的报错

22-05-30 v0.1.8 重要更新

  • [+]所有带请求参数的部分添加log输出以方便查找问题
  • [+]添加平台报错时返回以和Hikari内部错误区分
  • [#]移除bat脚本中的utf8以支持部分英文服务器
  • [#]试图减少因网络导致的报错问题

22-05-30 v0.1.7 一些修复

  • [#]修复排行榜查询报错
  • [#]修复部分环境可能出现的单船查询无法选择问题

22-05-28 v0.1.6 重要功能更新

  • [+]新增排行榜查询 指令wws rank/ship.rank
  • [+]新增是否开启内置go-cqhttp,默认开启

22-05-28 v0.1.5 一些功能更新

  • [+]添加等级显示,适配新舰船数据
  • [+]新增wws 检查更新
  • [+]配置项添加Bot管理员
  • [#]修复定时任务不触发的bug

22-05-27 v0.1.4 一些功能优化

  • [+]添加在windows下的一键安装、更新、启动脚本
  • [#]修复数字ID的recent匹配问题
  • [#]优化提示逻辑

22-05-27 v0.1.3 一些修复和适配

  • [+]适配包括真寻等大部分Nonebot2机器人
  • [#]修复自动更新的bug

22-05-27 v0.1.2 调整info接口,不更新无法使用

22-05-27 v0.1.1 一些小改动

22-05-27 v0.1.0 一些更新

  • [+]新增定时检查更新
  • [+]新增部署教程
  • [+]添加11级战绩信息
  • [#]优化账号总体和单船图片样式

可能会遇到的问题

go-cqhttp扫码后提示异地无法登录

  • 一般提示需要扫码,扫码后提示异地无法登录
  • 关于该问题,您可以查看这里获得相应解决办法,这里简单列举三种办法
    • 启动时登录方式选择浏览器滑条,按后续提示登录
    • 手机下载爱加速等代理,连接到服务器对应市级地区
    • 在本地电脑使用go-cqhttp登录成功后,将会在exe同级目录下生成session.tokendevice.json两个文件 将这两个文件复制到服务器对应目录下并重启
      • 内嵌go-cqhttp为account\QQ号
      • 独立go-cqhttp为exe所在同级目录下,请注意使用独立go-cqhttp时需要将.env.prodUSE_PLUGIN_GO_CQHTTP的值改为false

无法使用内嵌go-cqhttp登录bot

  1. 下载 go-cqhttp 至合适的文件夹

    您需要根据自己的机器架构选择版本,Windows一般为x86/64架构,通常选择go-cqhttp_windows_amd64.exe

  2. 双击go-cqhttp,提示释出bat,重新运行bat,选择websocket反向代理,go-cqhttp将会在同文件夹内自动创建一个config.yml,右键使用notepad++打开,根据注释填写QQ账号密码,并将以下内容写入文件结尾(需替换原有的ws-reverse节点):

      - ws-reverse:
          universal: ws://127.0.0.1:8080/onebot/v11/ws
          reconnect-interval: 5000
          middlewares:
            <<: *default

    关于go-cqhttp的配置,你可以在这里找到更多说明。

  3. 启动go-cqhttp,按照提示登录。

    此处如出现异地登陆保护,请尝试

    • 在本地电脑使用go-cqhttp登录成功后,将会在exe同级目录下生成session.tokendevice.json两个文件
    • 将这两个文件复制到服务器对应go-cqhttp目录下并重启

    此处如出现Code:45,请参考该视频配置签名服务

  4. 修改Hikari文件夹下.env.prod中USE_PLUGIN_GO_CQHTTP的值为false

    USE_PLUGIN_GO_CQHTTP = false
    
  5. 在文件夹下打开终端,输入python bot.py启动bot

    • 一键包双击启动.bat即可

出现ZoneInfoNotFoundError报错

您可以在这里找到相关解决办法

Recent和绑定提示'鉴权失败'

  1. 检查Token是否配置正确,token格式为XXXXX:XXXXXX
  2. 如果配置正确可能是Token失效了,请重新申请

'Config' Object has no attribute XXXX

  1. 检查视力,重新阅读更新章节

Failed to import "nonebot_plugin_guild_patch"

以下方法任选一种

  • 更新python版本至3.9+
  • 降低Hikari版本至3.1,等待后续版本修复
  • 使用Hikari一键包,其中自带了3.10的python虚拟环境
  • 修改依赖包代码,见这里

Ubuntu系统下部署字体不正常(针对一些云服务器的Ubuntu镜像,不保证成功,只是提供一个解决方案)

  1. 执行以下命令,完善字体库并将中文设置成默认语言(部分Ubuntu可能不需要该步骤,可直接从第二步开始)
sudo apt install fonts-noto  
sudo locale-gen zh_CN zh_CN.UTF-8  
sudo update-locale LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8  
sudo fc-cache -fv
  1. 在你的Windows电脑上打开C:\Windows\fonts文件夹,找到里面的微软雅黑字体,将其复制出来,放在任意目录,应该会得到msyh.ttcmshybd.ttcmsyhl.ttc三个文件。(不会有人还用Win7吧?)

  2. 进入到/usr/share/fonts文件夹下,创建一个文件夹命名为msyh,然后进入其中

cd /usr/share/fonts 
sudo mkdir msyh 
cd msyh
  1. 将三个字体文件上传到msyh文件夹中(过程中遇到的问题请自行解决)

  2. 执行以下命令(此时你应该是在msyh文件夹下),加载字体

sudo mkfontscale 
sudo mkfontdir 
sudo fc-cache -fv
  1. (可选,若不正常可尝试)重启Hikari。

首次启动时plugin-gocqhttp的startup方法报错(traceback中一般还有ssl的错误)

  1. 下载 go-cqhttp

    您需要根据自己的机器架构选择版本,Windows一般为x86/64架构,通常选择go-cqhttp_windows_amd64.exe

  2. 重命名为go-cqhttp.*(*为所选择版本后缀,如windowx就是go-cqhttp.exe)并放入HikariBot\accounts\binary文件夹下

  3. 重新启动Hikari

贡献代码

请向dev分支提交PR

鸣谢

感谢以下开发者及项目做出的贡献与支持

Nonebot2
go-cqhttp
战舰世界API平台

开源相关

MIT 修改、分发代码时请保留原作者相关信息

赞助

afdian

hikaribot's People

Contributors

12hydrogen avatar 94bo avatar benx1n avatar c1ystal avatar justonesummer avatar nortchell avatar shoucandanghehe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hikaribot's Issues

Docker部署,ocr报错

Docker部署HikariBot,启动时downlod_OcrResult()报JSONDecodeError

02-16 01:47:46 [SUCCESS] nonebot | Running NoneBot...
02-16 01:47:48 [ERROR] hikari_bot | Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/hikari_bot/__init__.py", line 262, in startup
    await downlod_OcrResult()
  File "/usr/local/lib/python3.10/site-packages/hikari_bot/game/ocr.py", line 78, in downlod_OcrResult
    ocr_filename_data = json.load(open(ocr_data_path, 'r', encoding='utf8'))
  File "/usr/local/lib/python3.10/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/usr/local/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
02-16 01:53:10 [WARNING] nonebot_plugin_gocqhttp | [*QQ*ID*] 账号密码未配置, 将使用二维码登录.

收到群图片时pic2txt_byOCR()报NameError

02-16 01:53:59 [SUCCESS] nonebot | OneBot V11 *QQ*ID* | [message.group.normal]: Message *MESSAGE*ID* from *QQ*ID*@[群:*GROUP*ID*] '[*IMAGE*URL*]'
02-16 01:53:59 [ERROR] hikari_bot | Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/hikari_bot/game/ocr.py", line 26, in pic2txt_byOCR
    if filename in ocr_filename_data:
NameError: name 'ocr_filename_data' is not defined
02-16 01:54:02 [SUCCESS] nonebot | OneBot V11 *QQ*ID* | [message.group.normal]: Message *下*一*条*消*息*

Windows部署,env.prod中使用如下ocr设置时,相同图片可以正常触发查询。

ocr_on = true
ocr_offline = false
ocr_url = http://mc.youthnp.cn:23338/OCR/

Win10 21H2,WSL 2,Docker Desktop 4.16.3
Docker image: 12hydrogen/hikari-bot:latest
sha256:0a16f81294d70505e5bf54ea84622705b1f57236321e0bfc630acc6781c249d9

【报错】自动更新失败

指令wws 更新Hikari,由于启动是python3而不是python,导致的错误
没截全)

xt', data={'text': '正在更新Hikari,完成后将自动重启,如果没有回复您已上线的消息,请登录服务器查看'})]}
sh: 1: python: not found
sh: 1: python: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.9/multiprocessing/spawn.py", line 115, in spawn_main
    parent_sentinel = os.dup(pipe_handle)
OSError: [Errno 9] Bad file descriptor

Docker部署,Nonebot FastAPI ImportError

Docker部署HikariBot,更新后报Nonebot FastAPI ImportError。
删除image后重新pull未能解决。
Win10 21H2,WSL 2,Docker Desktop 4.16.3

C:\Users\SinCerely>docker pull 12hydrogen/hikari-bot:latest
latest: Pulling from 12hydrogen/hikari-bot
Digest: sha256:d482d7c1080223ccfbc7f330d131d2625d6365f99c0830fac73fa3a60ec8c135
Status: Image is up to date for 12hydrogen/hikari-bot:latest
docker.io/12hydrogen/hikari-bot:latest

C:\Users\SinCerely>docker run -d -p 10888:8080 12hydrogen/hikari-bot:latest -t TOKENTOKENTOKENTOKEN -i 526909856
0f29f02d12db31e3a8da888fcafcef4379f26e813e700b30173b4ad1c3df0c89

C:\Users\SinCerely>docker start -a 0f29
OK
02-12 03:38:18 [SUCCESS] nonebot | NoneBot is initializing...
Traceback (most recent call last):
  File "/home/HikariBot/bot.py", line 9, in <module>
    nonebot.init()
  File "/usr/local/lib/python3.10/site-packages/nonebot/__init__.py", line 256, in init
    DriverClass = _resolve_combine_expr(config.driver)
  File "/usr/local/lib/python3.10/site-packages/nonebot/__init__.py", line 195, in _resolve_combine_expr
    DriverClass = _resolve_dot_notation(
  File "/usr/local/lib/python3.10/site-packages/nonebot/__init__.py", line 184, in _resolve_dot_notation
    module = importlib.import_module(modulename)
  File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/local/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 41, in <module>
    raise ImportError(
ImportError: Please install FastAPI by using `pip install nonebot2[fastapi]`

请更新env配置项列表

如题
当插件配置新版本时发现缺配置项
从一件包的env找着了
(emm太长时间没发言被从群里撅出去了 悲)

更新到0.3.9.1之后无法载入插件

更到0.3.9.1之后无法启动插件,Python版本是3.11
代码如下

`05-11 13:12:39 [ERROR] nonebot | Failed to import "hikari_bot"
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\test\first\bot.py", line 18, in
nonebot.load_from_toml("pyproject.toml")
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\load.py", line 125, in load_from_toml
return load_all_plugins(plugins, plugin_dirs)
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\load.py", line 62, in load_all_plugins
return manager.load_all_plugins()
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\manager.py", line 175, in load_all_plugins
return set(
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\manager.py", line 176, in
filter(None, (self.load_plugin(name) for name in self.available_plugins))

File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\manager.py", line 141, in load_plugin
module = importlib.import_module(name)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\importlib_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1206, in _gcd_import
File "", line 1178, in _find_and_load
File "", line 1149, in _find_and_load_unlocked
File "", line 690, in _load_unlocked
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\nonebot\plugin\manager.py", line 240, in exec_module
super().exec_module(module)
File "", line 940, in exec_module
File "", line 241, in call_with_frames_removed
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\hikari_bot_init
.py", line 29, in
from .command_select import select_command
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\hikari_bot\command_select.py", line 4, in
from .game.ban_search import get_BanInfo
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\hikari_bot\game\ban_search.py", line 13, in
from ..HttpClient_pool import client_yuyuko
File "C:\Users\Administrator\Desktop\test\first.venv\Lib\site-packages\hikari_bot\HttpClient_pool.py", line 31, in
http2 = config.http2
AttributeError: 'Config' object has no attribute 'http2'`

在将这个路径
C:\Users\Administrator\Desktop\test\first\.venv\Lib\site-packages\hikari_bot\HttpClient_pool.py下的 http2 = config.http2改为
http2 = getattr(config, 'http2', None)之后可以载入了

uvicorn报错

最开始报错

[WARNING] nonebot_plugin_gocqhttp | [**********] 连接到反向WebSocket Universal服务器 ws://127.0.0.1:8080/onebot/v11/ws 时出现错误: dial tcp 127.0.0.1:8080: connect: connection refused

然后报错

07-18 12:45:19 [WARNING] uvicorn | Invalid HTTP request received.
07-18 12:51:59 [WARNING] uvicorn | Invalid HTTP request received.
07-18 13:10:19 [WARNING] uvicorn | Invalid HTTP request received.
07-18 13:43:06 [WARNING] uvicorn | Invalid HTTP request received.
07-18 14:22:20 [WARNING] uvicorn | Invalid HTTP request received.
07-18 14:56:30 [WARNING] uvicorn | Invalid HTTP request received.

这可能不是HikariBot自身的问题,但是另一个kokomibot并没有出现这个问题

群晖Docker部署运行卡住无法继续

从Windows上运行了一下机器人正常使用,想部署到群晖上

通过命令启动镜像 token和qq都配置无误
docker run -d -p 12345:8080 12hydrogen/hikari-bot:latest -t token -i qqid
运行容器后卡到running nonebot 无法继续下去
04-09 14:56:15 [SUCCESS] nonebot | Running NoneBot...

通过端口进入网页提示 {"detail":"Not Found"}

特定表情会误触发hikaribot

01-07 18:34:45 [SUCCESS] nonebot | OneBot V11 ***| [message.private.friend]: Message 538493596 from ***'[image:file=5839febb6cf0ebc577fae63ea595cc78.image,url=https://c2cpicdw.qpic.cn/offpic_new///-3463767722...]'
01-07 18:34:45 [INFO] nonebot | Event will be handled by Matcher(type='message', module=hikari_bot, lineno=53)
01-07 18:34:45 [INFO] nonebot | Matcher(type='message', module=hikari_bot, lineno=53) running complete
01-07 18:34:45 [INFO] nonebot | Event will be handled by Matcher(type='message', module=hikari_bot, lineno=54)
01-07 18:34:45 [SUCCESS] hikari_bot | filename匹配,跳过OCR:5839febb6cf0ebc577fae63ea595cc78
01-07 18:34:45 [INFO] hikari_core | POST https://v3-api.wows.shinoaki.com:8443/api/wows/cache/check
01-07 18:34:45 [INFO] hikari_core | 本次响应的状态码:200 HTTP/2 <Request('POST', 'https://v3-api.wows.shinoaki.com:8443/api/wows/cache/check')>
01-07 18:34:45 [SUCCESS] hikari_core | 跳过上报数据,直接请求
{'server': 'QQ', 'accountId': '***', 'dateTime': '2024-01-07', 'day': 0, 'shipId': 0}
01-07 18:34:45 [INFO] hikari_core | GET https://recent.wows.shinoaki.com:8890/api/wows/recent/day/info?server=QQ&accountId=***&dateTime=2024-01-07&day=0&shipId=0
01-07 18:34:46 [INFO] hikari_core | 本次响应的状态码:200 HTTP/2 <Request('GET', 'https://recent.wows.shinoaki.com:8890/api/wows/recent/day/info?server=QQ&accountId=***&dateTime=2024-01-07&day=0&shipId=0')>
01-07 18:34:46 [INFO] nonebot | Matcher(type='message', module=hikari_bot, lineno=54) running complete

敏感信息已打码处理

触发的表情:
QQ图片20240107183801

image

无法启动bot

try to launch the HikariBot
01-08 04:39:04 [SUCCESS] nonebot | NoneBot is initializing...
Traceback (most recent call last):
File "C:\HikariBot\bot.py", line 13, in
driver.register_adapter(ONEBOT_V11Adapter)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\internal\driver\driver.py", line 69, in register_adapter
self._adapters[name] = adapter(self, **kwargs)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\adapters\onebot\v11\adapter.py", line 72, in init
self._setup()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\adapters\onebot\v11\adapter.py", line 85, in _setup
self.setup_http_server(http_setup)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\internal\adapter\adapter.py", line 76, in setup_http_server
self.driver.setup_http_server(setup)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\nonebot\drivers\fastapi.py", line 116, in setup_http_server
self._server_app.add_api_route(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\fastapi\applications.py", line 304, in add_api_route
self.router.add_api_route(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\fastapi\routing.py", line 572, in add_api_route
route = route_class(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\fastapi\routing.py", line 400, in init
self.response_field = create_response_field(
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\fastapi\utils.py", line 90, in create_response_field
raise fastapi.exceptions.FastAPIError(
fastapi.exceptions.FastAPIError: Invalid args for response field! Hint: check that <class 'starlette.responses.Response'> is a valid pydantic field type

真寻bot加载插件报错

系统:CentOS 7.5 64位
通过pip install hikari-bot安装
nonebot.load_plugin('hikari_bot')引入插件
配置项已在.env.dev中添加
报错如图:
image

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.