云端客 32b950d6a9 [0.0.3版本迭代]--活动期限/周本通知器 (#2591)
* feat(activity): 优化活动筛选逻辑并添加白名单功能

- 新增 relationship 配置项,控制剩余时间与白名单的逻辑关系
- 将 activityNameList 重命名为 whiteActivityNameList 作为白名单功能
- 实现白名单与黑名单的互斥过滤机制
- 更新活动筛选逻辑,支持按剩余时间或白名单条件过滤
- 修改通知标题构建逻辑,显示剩余时间与白名单配置信息
- 更新 README 文档说明白名单与逻辑关系配置使用方法

* chore(ActivitySwitchNotice): 更新版本号

- 将版本号从 0.0.2 更新到 0.0.3

* fix(ActivitySwitchNotice): 修正活动识别日志消息

- 修正了未识别到活动时的日志消息文案,从"未识别到任何活动"改为"不存在符合条件的活动"

* refactor: 优化秘境征讨提醒逻辑代码结构

* fix(activity): 修复活动白名单过滤逻辑

- 修复了当配置了关系条件时活动白名单过滤的问题
- 添加了对 config.relationship 的检查以决定是否跳过活动处理
- 确保在没有关系配置的情况下仍然按照白名单过滤活动

* fix(ActivitySwitchNotice): 修复活动白名单逻辑判断错误

- 修正了白名单活动匹配时的关系判断逻辑
- 将 !config.relationship 条件改为 config.relationship
- 确保只有在关系配置正确时才跳过非白名单活动

* refactor(ActivitySwitchNotice): 优化OCR识别函数命名

- 将OcrRemainingTime函数重命名为OcrKey以提高通用性
- 更新函数调用以使用新的函数名称
- 保持原有功能逻辑不变,仅优化函数命名规范

* fix(activity): 修复OCR识别和活动过滤逻辑

- 修复OCR识别时资源释放位置,添加try-finally确保截图资源正确释放
- 修改OCR识别逻辑,支持返回多个匹配结果并用'<-->'连接
- 修复活动名称过滤条件中的逻辑运算符空格问题
- 优化代码结构,提高OCR识别的稳定性和准确性

* fix(ActivitySwitchNotice): 修复活动识别结果处理逻辑

- 将 Set 数据结构改为数组并使用 push 方法添加元素
- 保持原有的文本识别和日志记录功能
- 确保返回识别到的文本结果

* feat(ActivitySwitchNotice): 添加根据键名部分内容获取Map值的工具函数

- 新增getMapByKey函数,支持通过键名部分匹配获取Map中的值
- 更新needOcrOtherMap配置,为"飒勇争锋"和"幽境危战"活动添加OCR识别项
- 修改代码逻辑,使用getMapByKey函数替代原有的精确匹配方式
- 优化活动OCR处理流程,提升键名匹配的灵活性

* refactor(ActivitySwitchNotice): 优化OCR识别功能

- 移除"飒勇争锋"活动的OCR配置项
- 修复getMapByKey函数参数格式问题
- 添加函数间空白行以改善代码可读性
- 增强OCR识别日志记录功能,添加命中标识
- 修复变量赋值和参数传递的格式问题

* feat(ActivitySwitchNotice): 添加通用关键词OCR识别功能

- 新增commonList常量定义通用关键词列表
- 实现通用关键词的OCR识别逻辑
- 将识别结果添加到剩余时间文本中
- 支持对已完成等通用状态的自动识别

* feat(ActivitySwitchNotice): 添加通用关键词显示功能

- 在activity.js中添加common变量存储通用关键词
- 将通用关键词信息保存到activityMap中
- 在notice.js中读取并显示通用关键词信息
- 修复通知文本中的格式问题
- 优化条件判断中的空格格式

* docs(ActivitySwitchNotice): 更新README文档添加剩余时间与白名单关系配置说明

- 新增:支持剩余时间和白名单的"与"关系和"或"关系配置说明
- 完善了配置参数文档,增加了`relationship`参数的详细说明
- 更新了版本发布信息和变更日志格式

* feat(ActivitySwitchNotice): 添加剩余时间与白名单关系配置和完成状态显示

- 支持剩余时间和白名单的"与"关系和"或"关系配置
- 添加标记界面显示 `已完成` 的活动功能
- 修复活动过滤逻辑问题,将`activityNameList`更改为`whiteActivityNameList`
- 新增黑名单与白名单的互斥过滤机制,黑名单中剔除白名单
- 在配置中增加`relationship`参数,用于控制剩余时间与白名单活动的逻辑关系

* fix(ActivitySwitchNotice): 修复活动切换通知中的逻辑错误和显示问题

- 修复剩余时间白名单关系逻辑,默认从`与`改为`或`关系
- 移除过早的返回语句,确保列表处理逻辑完整执行
- 调整注释格式以保持代码一致性

* fix(ActivitySwitchNotice): 修复活动通用键处理逻辑

- 将common变量初始化为数组而非undefined
- 使用push方法将OCR识别文本添加到数组中
- 将数组内容通过逗号连接成字符串存储
- 当数组为空时保持undefined值以维持原有行为

* refactor(Notice): 重构活动通知黑名单文本拼接逻辑

* refactor(ActivitySwitchNotice): 重命名活动学期转换函数并添加文档注释

- 将 getDATE_ENUM 函数重命名为 getActivityTermConversion 以提高语义清晰度
- 为函数添加 JSDoc 注释说明参数和返回值类型
- 在函数内部添加代码注释解释逻辑流程
- 更新函数调用处的函数名称引用

* refactor(ActivitySwitchNotice): 移除废弃的滚动到顶部功能

- 删除了 scrollPagesByActivityToTop 函数的完整实现
- 移除了相关的OCR检测和鼠标滚动逻辑
- 清理了游戏区域截图和资源释放代码
- 保留了优化版的滚动到顶部功能注释

* fix(ActivitySwitchNotice): 修复截图资源释放问题

- 添加 try-finally 块确保 captureRegion 资源正确释放
- 防止截图资源未释放导致的内存泄漏问题
- 保持截图识别和滚动逻辑不变
- 修复黑名单文本格式中的多余空格问题

* refactor(ActivitySwitchNotice): 优化活动列表扫描逻辑的资源管理

- 添加 try-finally 块确保 captureRegion 资源正确释放
- 修复资源泄露问题,避免未调用 dispose() 方法
- 保持原有的活动识别和滚动扫描功能不变
- 优化代码结构提高可读性和维护性

* fix(ocr): 修复OCR文本提取时的空值问题

- 添加了对OCR提取结果的空值检查
- 避免将空值推入common数组中
- 确保只有有效的文本内容才会被添加到数组中
2025-12-30 18:57:38 +08:00
2025-12-04 13:07:48 +08:00
2025-12-29 11:16:11 +08:00
2025-11-02 17:06:24 +08:00
2025-10-13 00:45:40 +08:00
2025-12-29 19:24:45 +00:00

BetterGI · 更好的原神 的脚本仓库

BetterGI📜 脚本仓库

在线版脚本仓库:bgi.sh 备用地址:https://s.bettergi.com

作者Q群764972801 (非作者请勿加入)

如何提交到本仓库?(谁都能看懂的 GitHub Pull Request 使用指南)

脚本提交说明

脚本提交规范

为了保证脚本的规范性和可读性,方便用户清晰了解脚本的用途,制定以下脚本命名规则和脚本文件夹命名规则。

地图追踪脚本

文件命名规范

确保脚本文件在同一目录下按预期顺序排列,并一目了然地传达关键信息。地图追踪脚本命名需包含以下核心信息:

编号-材料名称-区域(跨区域材料填写)-二级区域(可选)-二级子区域-数量
  • 编号

    • 两位数,如果单个资源脚本数量超过 100 可以考虑使用三位数编号或者使用字母加数字编号,如 A01
    • 编号的排序应遵循以下两种方式之一:
      • 按传送点位顺序排序。相邻脚本之间优先保证传送的便捷性,这种编号方式考虑整体采集效率。
      • 按材料获取效率排序。优先选择资源分布密集或容易采集的点,效率高的路径放在靠前编号,这种编号方式考虑编号靠前脚本的采集效率。
  • 材料名称

    • 采集物(使用游戏内官方名称命名,如 慕风蘑菇劫波莲,不应当使用 绫华突破材料等不清晰的名称命名)
    • 掉落物(因掉落物名称与掉落物等级有关,因此不使用掉落物本身命名,而是使用怪物名称命名)
  • 区域(指 蒙德 璃月 稻妻 须弥 枫丹 纳塔 至冬仅当材料跨区域需标注

  • 二级区域(如 珉林,根据实际需求标注)

  • 二级子区域(细分地点,如 绝云间

  • 预期采集的数量

脚本名称仅限上述规定的编号、材料名称、区域、二级子区域,原则上不应包含额外的描述或标点符号。

✔ 参考示范:
01-水晶块-璃月-绝云间-6个
02-水晶块-璃月-荻花洲-8个

❌ 错误示范:
01-水晶块-璃月-快速路径-绝云间-6个

其他注意事项

  • 部分采集物没有对应的二级子区域,允许名称的区域部分使用起始传送锚点右侧展示的二级区域,或这条路径的大部分采集物点位所位于的二级区域

  • 相同二级子区域有多条路径时,推荐采用 编号-材料名称-二级区域-二级子区域及方位-数量 进行命名。

  • 脚本文件名应当和 json 文件中的 name 字段相同。

  • 说明文件应当命名为README.md以保证仓库能够正确读取。

文件夹命名规范

目的:对脚本按材料分类管理,便于版本控制与团队协作。目录结构应当遵循以下原则:

  • 根据脚本种类选择恰当的一级分类,目前共有六个分类 锄地专区地方特产敌人与魔物矿物其他

  • 一级目录:以材料名称命名,须与文件命名中的材料名称一致。

  • 二级子目录(可选):可根据项目或作者划分,如有必要。

  • 示例目录结构如下:

    repo/pathing/矿物
    ├─ 水晶块
    │   ├─ 01-水晶块-璃月-绝云间-6个
    │   └─ 02-水晶块-璃月-荻花洲-8个
    └─ 星银矿石
        └─ 01-星银矿石-覆雪之路-7个
    

    如果脚本和原来的地图追踪脚本存在冲突 按照以下原则处理:

  • 修复或补充:直接提交到原材料目录。

  • 路线冲突:新建同名目录并添加作者标识:

    1. 将旧脚本目录重命名为 AA@旧作者名
    2. 新脚本放入 AA@你的名字
    3. 例:原 repo/pathing/AA 重命名为 AA@oldauthor 新目录 AA@yourname
    • 示例目录结构如下:

      repo/pathing/.../
      └── AA
          ├── AA@旧作者名
          └── AA@你的名字
      
  • 不同采集方式|角色|效率:新建目录添加标识及作者标识:

    1. 判断旧脚本目录的采集方式,将旧脚本目录重命名为 采集方式@旧作者名
    2. 新脚本放入 采集方式@你的名字
    • 示例目录结构如下:

      repo/pathing
      ├── 地方特产/区域
      │   ├── A材料
      │   │   ├── 无草神@作者广告位招租
      │   │   ├── 有草神效率路线@作者广告位招租
      │   │   ├── 有草神全收集@作者广告位招租
      │   │   └── ...
      │   └── B材料
      │       ├── 效率路线@作者广告位招租
      │       ├── 全收集@作者广告位招租
      │       └── ...
      ├── 矿物
      │   ├── 水晶矿
      │   │   ├── 大剑@作者广告位招租
      │   │   ├── 钟离@作者广告位招租
      │   │   ├── 诺艾尔@作者广告位招租
      │   │   └── ...
      │   └── 萃凝晶
      │       ├── 大剑效率路线@作者广告位招租
      │       ├── 大剑无战斗@作者广告位招租
      │       └── ...
      └── ...
      

其他注意事项

  • 目录名仅限材料官方名称,不添加版本号或其他标识。

  • 作者标识仅在冲突时追加,格式为“@作者名”,紧随原目录名。

JS脚本

创建JS脚本请参考文档创建脚本

文件夹命名规则

  • 脚本的文件夹名称应体现脚本的用途,简要用途可在描述文件 manifest.json 中说明,详细用途可在README.md(大小写敏感,要求全部大写的文件名) 中说明

  • 脚本的主体文件夹名称可采用 大驼峰式命名法 等命名方式,名称中不应包含空格,如:

    repo/js
    ├── 
    ├── AutoLeyLineOutcrop
    ├── AutoXXX
    └── ...
    
  • 常见的脚本结构目录如下:

    repo/js
    └── jsName
        ├── Assets
        │   ├── Pathing
        │   │   └── xxx.json
        │   └── RecognitionObject
        │       └── xxx.png
        ├── main.js
        ├── manifest.json
        ├── settings.json
        └── README.md
    
  • Assets用于存放脚本使用到的资源文件,其中

其他注意事项

  • 脚本使用的资源文件应在README.md中注明实际用途

其他

因早期对脚本管理较为宽松,因此仓库有部分脚本并不符合命名规范,欢迎通过 PR 规范这些名称。

Contributors

Active Contributors of babalae/bettergi-scripts-list - Last 28 days

相关源码

脚本仓库页面的源码

地图路径追踪的源码:bettergi-map

Languages
JavaScript 87.1%
HTML 10.4%
Python 2.3%
C 0.2%