sealdice / sealdice-core

海豹骰核心程序,船新的trpg骰点机器人。轻量易用,功能强大,支持所有主流IM平台,并能在win/linux/mac/android下使用。
https://sealdice.com
MIT License
133 stars 25 forks source link

[Bug]: Actions中的最新dev版本无法正确配置签名服务器 #173

Closed ShiaBox closed 11 months ago

ShiaBox commented 11 months ago

在提问之前...

问题描述

版本为develop-31a285b 使用安卓平板做登录时,日志提示如下

onebot | [2023-08-29 18:11:59] [WARNING]: no sign server configured

检查发现config.yml中

sign-server: http://127.0.0.1

正确应为

sign-server: 'http://127.0.0.1'

尝试点击了启用按钮,则配置文件中的签名服务器信息直接被注释掉了。

如何复现

使用安卓平板做登录时,正常使用签名服务器进行操作流程

你期望发生的

正常

实际上发生的

配置文件输出有误

日志文件

18:18:55 info onebot: 之前并未登录成功,删除设备文件和配置文件
18:18:55 info onebot: 成功创建设备文件
18:18:55 info onebot: 正在启动onebot客户端…… /workspace/go-cqhttp/go-cqhttp
18:18:55 info 保存数据
18:18:55 info onebot | [2023-08-29 18:18:55] [WARNING]: no sign server configured
18:18:55 info go-cqhttp 进程退出

截图

No response

海豹核心版本

develop-31a285b

操作系统

ubuntu arm64

帐号类型

qq-pad-qsign

使用协议

No response

附加内容

No response

JustAnotherID commented 11 months ago

I}6JRV9PZA0GZ85LC23C MI 0V@PZVDT))E7HI0E9$GM{HY 没能复现问题,怪。好像不同版本的gocq行为不一致,还是统一加上引号好了

ShiaBox commented 11 months ago

已发现问题,是最新版go-cqhttp的config.yml进行了破坏性的更新。

ShiaBox commented 11 months ago

  # 数据包的签名服务器列表,第一个作为主签名服务器,后续作为备用
  # 兼容 https://github.com/fuqiuluo/unidbg-fetch-qsign
  # 如果遇到 登录 45 错误, 或者发送信息风控的话需要填入一个或多个服务器
  # 不建议设置过多,设置主备各一个即可,超过 5 个只会取前五个
  # 示例:
  # sign-servers: 
  #   - url: 'http://127.0.0.1:8080' # 本地签名服务器
  #     key: "114514"  # 相应 key
  #     authorization: "-"   # authorization 内容, 依服务端设置
  #   - url: 'https://signserver.example.com' # 线上签名服务器
  #     key: "114514"  
  #     authorization: "-"   
  #   ...
  # 
  # 服务器可使用docker在本地搭建或者使用他人开放的服务
  sign-servers: 
    - url: '-'  # 主签名服务器地址, 必填
      key: '114514'  # 签名服务器所需要的apikey, 如果签名服务器的版本在1.1.0及以下则此项无效
      authorization: '-'   # authorization 内容, 依服务端设置,如 'Bearer xxxx'
    - url: '-'  # 备用
      key: '114514'  
      authorization: '-' 

  # 判断签名服务不可用(需要切换)的额外规则
  # 0: 不设置 (此时仅在请求无法返回结果时判定为不可用)
  # 1: 在获取到的 sign 为空 (若选此建议关闭 auto-register,一般为实例未注册但是请求签名的情况)
  # 2: 在获取到的 sign 或 token 为空(若选此建议关闭 auto-refresh-token )
  rule-change-sign-server: 1

  # 连续寻找可用签名服务器最大尝试次数
  # 为 0 时会在连续 3 次没有找到可用签名服务器后保持使用主签名服务器,不再尝试进行切换备用
  # 否则会在达到指定次数后 **退出** 主程序
  max-check-count: 0
  # 签名服务请求超时时间(s)
  sign-server-timeout: 60
  # 如果签名服务器的版本在1.1.0及以下, 请将下面的参数改成true
  # 建议使用 1.1.6 以上版本,低版本普遍半个月冻结一次
  is-below-110: false
  # 在实例可能丢失(获取到的签名为空)时是否尝试重新注册
  # 为 true 时,在签名服务不可用时可能每次发消息都会尝试重新注册并签名。
  # 为 false 时,将不会自动注册实例,在签名服务器重启或实例被销毁后需要重启 go-cqhttp 以获取实例
  # 否则后续消息将不会正常签名。关闭此项后可以考虑开启签名服务器端 auto_register 避免需要重启
  # 由于实现问题,当前建议关闭此项,推荐开启签名服务器的自动注册实例
  auto-register: false
  # 是否在 token 过期后立即自动刷新签名 token(在需要签名时才会检测到,主要防止 token 意外丢失)
  # 独立于定时刷新
  auto-refresh-token: false
  # 定时刷新 token 间隔时间,单位为分钟, 建议 30~40 分钟, 不可超过 60 分钟
  # 目前丢失token也不会有太大影响,可设置为 0 以关闭,推荐开启
  refresh-interval: 40