Skip to content

v1.6.0

Latest

Choose a tag to compare

@dikxingmengya dikxingmengya released this 23 Oct 01:42
· 1 commit to main since this release

🚀 MisMiss v1.6.0 — 临期会提醒,备注能写清

安全加固 · 开播临期提示 · 账户备注与昵称 · 直播间信息插件


v1.6.0 把「安全」和「日常使用」一起补了一轮:修掉一批能把面板凭据读走、
把插件装到账户目录之外、把消息接收循环打死的问题;同时加上开播临期提醒、
账户备注/昵称编辑,以及一个新的「直播间信息」插件。

🔐 安全修复

  • 插件 zip 解压的 Zip Slip:解压改为逐成员校验,tar 走 filter="data";
    安全路径实现收敛到核心层唯一一份,路由层不再各写一套。
  • 插件名目录穿越:metadata.yaml 的 name 与 API 传入的插件名统一白名单,
    安装/更新/卸载/数据目录全部经 realpath + commonpath 断言,../../ 不再能
    删改账户目录之外的文件。
  • 面板静态兜底目录穿越:SPA 的 full_path 先 resolve() 再断言仍在
    web/frontend/dist 内,../../../data/panel.json 这类匿名读取被拒绝。
  • 认证接口角色越权:/api/auth/change-password 只认管理员令牌;
    匿名可触达的 skip-first-login 改为自行校验管理员令牌。
  • 未 join 的直播间不再 500:/api/accounts/{id}/live 读主播 ID 时兜住
    CoreApiException,平台风控期间账户详情页不会整页挂掉。
  • WebSocket 断线补发方向修正:重连时补的是 last_seq 之后的日志,而不是
    更早的旧日志。
  • 插件重载不再丢启用状态:reload_plugin 在卸载前读取 was_enabled。
  • 异常隔离:单个事件处理器抛错不再中断同事件的其他监听器;指令缺参只记
    warning,不会再把该账户的弹幕接收循环打死。

⏳ 开播临期提示

直播间开播的瞬间检查账户剩余有效期:不足 3 天时,自动在直播间发一条
续期提醒。默认开启,同一场直播只提醒一次,下播后再开播可再次提醒。

  • 开关存在账户级偏好 expiry_notice_enabled,管理员与账户本人都能关;
  • 老账户没有这个字段时按「开启」处理,功能上线即生效;
  • 位置:账户概览「订阅」卡片、账户端首页「账户偏好」、管理端「编辑账户资料」。

🏷️ 账户备注与昵称

  • 管理端可为每个账户写独立备注(仅面板可见,不参与登录、不发给平台),
    总览卡片与详情页展示,搜索框也能按备注命中。
  • 管理端可直接修改账户昵称;登录用户名保持不变,仍走「重置登录凭据」。
  • 新增「编辑账户资料」弹窗,昵称、备注、临期提示开关一处置齐。

🔌 新插件:直播间信息

发送 直播间(别名 直播数据)输出实时数据卡片,默认仅房管/主播可用:

@触发人
直播间数据:
🎤分区:情感-闲聊
⏰直播时长:02:07:17
👪累计人数:42
💗关注数:576
☀️热度:2146
👩超粉:0
🍁贵宾:1
🏅️小时榜:暂无
💰小时榜差值/距离上榜:2015
📛勋章:z野玫瑰

数据走猫耳公开接口,分区/时长/人数/热度/超粉/贵宾/小时榜/勋章均为真实字段;
平台没有提供的分区排名、热度排名、Banner 位、推荐位、福星榜、PK 胜率
直接不输出。支持冷却、缓存、超长按行拆分,以及房管白名单。

🚦 出站节流与面板体验

  • 出站请求改为双车道:交互消息降速不停,后台轮询在平台限流时直接让路;
  • 新增在途并发上限与退避升档冷却,压住「限流 → 更多请求 → 更紧限流」的正反馈;
  • 日志页、账户筛选、更新页与移动端排版的一批改进同步进入本版本。

🧪 测试

test/ 下 36 个脚本全部通过,其中新增:

  • test_security_fixes.py — 目录穿越、Zip Slip、认证角色、WS 补发等回归;
  • test_expiry_notice.py — 临期判定、同场去重、开关与边界;
  • test_account_remark.py / test_account_profile_api.py — 备注、昵称、偏好接口;
  • test_room_info_plugin.py — 数据解析、输出格式、权限/冷却、消息拆分。

⚠️ 已知限制

  • 面板保存设置仍会用 yaml.dump 整表重写 config.yml,注释会丢失;
  • 「直播间信息」插件不输出猫耳公开接口没有的排名/推荐位/福星榜/PK 胜率字段。

MisMiss v1.6.0 — 该提醒的提醒,该藏好的藏好 🚀