Skip to content

Releases: 88lin/workbuddy-auto-signin

v1.1.0 — 静默运行更稳:异常不再丢日志 + 网络时间预算

Choose a tag to compare

@88lin 88lin released this 07 Sep 14:48

这次主要解决什么

静默模式(模式 B)下,一旦脚本中途抛异常或网络持续超时,当天运行会无声无息地失败——日志里什么都没有,看上去就像"根本没跑"。本版本从两个方向根治:

  1. 任何异常都会被最后一道防线捕获并写入日志,不再凭空消失
  2. 新增网络时间预算,保证脚本总能在计划任务的时限内主动收尾

✨ 新增

  • 网络时间预算:新增环境变量 WORKBUDDY_BUDGET_SECONDS(默认 420 秒,上限 540 秒)。单次请求的超时随剩余预算收缩,预算耗尽即主动收尾并如实记录,剩余项留到下次再领
  • 新的结果类型NETWORK(网络不可达)与 TIMEOUT(预算耗尽),与 NO_SESSION(登录态失效)区分开,不再一律给出"请重新登录"的误导提示
  • 配置自检:环境变量非法、≤0 或超过上限时自动夹到安全值,并在输出里附 config_warning

🐛 修复

  • 静默模式异常兜底:main() 改为薄壳接住一切异常;日志路径不可写时回退到脚本同目录;print 失败同样转写日志
  • 凭据文件损坏不再被误报成 NO_SESSIONJSONDecodeErrorValueError 的子类,此前被错误归类)
  • 凭据里 endpoint 字段类型异常时不再崩溃(同样会落盘留痕)
  • 积分数若为字符串(如 "1.5""1e3")不再被当成 0;Infinity 也不会让整轮失败
  • 领取 Buddy 旅行礼物失败后不再派 Buddy 出发,避免覆盖尚未领取的奖励
  • 成长中心各子步骤独立容错,并区分软/硬失败——"派 Buddy 已达每日上限"这类 4xx 不再让计划任务天天报红
  • 未知命令给出明确提示与退出码

⚠️ 行为变更

  • GET 请求失败自动重试 1 次;抽奖、领奖等写操作不重试,避免超时发生在服务端处理完成之后造成重复提交
    (两个签到接口例外:状态查询是只读的,领取接口本身幂等,故允许重试)

📦 升级说明

无需修改任何配置,直接替换 signin.py 即可。已配置的定时任务(每天 00:05)不受影响,错过后补跑等设置保持不变。

完整变更v1.0.0...v1.1.0

v1.0.0 - 首个正式版本

Choose a tag to compare

@88lin 88lin released this 02 Sep 02:44
4fd1c05

🎉 首个正式版本

自动领取 WorkBuddy 每日签到积分 + 成长中心奖励的自包含 Python 脚本。

✨ 核心功能

  • 每日签到 — 自动查询签到状态,未签才领,幂等安全
  • 成长中心 — 自动领取 Buddy 旅行礼物、派 Buddy 出发、开盲盒、领取任务奖励
  • 双定时模式 — 模式 A(AI 自动化,跨平台)或模式 B(Windows 系统级静默,零 token)
  • 静默运行silent 模式配合 pythonw.exe,无窗口、无弹窗、零 token 消耗

📦 包含内容

文件 说明
signin.py 主脚本(纯 Python 标准库,零依赖)
README.md 中文文档(含双模式设置指南)
LICENSE MIT 协议
.gitignore 排除日志和缓存文件
.github/workflows/star-history.yml Star History 自动更新工作流(每周一)

🔧 技术特性

  • 纯 Python 标准库,无需 pip install
  • 自动探测 Windows / macOS / Linux 凭据文件
  • 兼容"已签"两种返回形态(null / HTTP 400+code10001)
  • 识别 401/403 登录态过期并明确提示
  • 网络异常自动捕获,静默模式下写入日志不崩溃
  • 支持环境变量 WORKBUDDY_AUTH_FILE / WORKBUDDY_SIGNIN_LOG 配置

📋 命令一览

命令 用途
python signin.py auto 签到 + 成长中心(输出到 stdout)
python signin.py silent 同 auto,输出写入日志文件
python signin.py growth 仅成长中心
python signin.py status 查签到状态(调试)
python signin.py claim 领取签到(调试)
python signin.py all 查状态 + 领取(调试)

⚠️ 免责声明

本项目为非官方工具,签到接口系从桌面端 app.asar 逆向得到。使用风险自负;接口可能随时变动且不另行通知。