logo
0
1
WeChat Login
i.o<claw@cnb.cool>
更新README/SKILL文档(多分辨率+测试模式+1024x768)、配置文件(全分辨率含150%+坐标修正)、签到脚本(--test指示圈)

WorkBuddy GUI 每日签到技能

通过 pyautogui 模拟鼠标点击 WorkBuddy 桌面端界面,自动完成每日签到领取奖励。

为什么用 GUI 方案?

之前尝试过 Cookie 签到和 CDP(Chrome DevTools Protocol)签到,都存在问题:

  • Cookie 签到:APISIX WAF 反爬拦截,TLS 指纹校验无法绕过
  • CDP 签到:依赖 Edge 浏览器的 Keycloak SSO session,session 过期后无法自动恢复

GUI 方案直接操作 WorkBuddy 桌面端窗口,只要 WorkBuddy 处于登录状态就能签到,不依赖浏览器登录态,不受 SSO session 过期影响。

工作原理

  1. 查找 WorkBuddy 窗口
  2. 激活并最大化窗口
  3. 点击左下角头像打开签到弹窗
  4. 等待 2 秒弹窗出现
  5. 点击"立即签到"按钮
  6. 点击关闭弹窗坐标,关闭签到弹窗
  7. 输出执行结果

一键安装

人类安装

在终端中执行以下命令:

必须使用 git clone 下载项目,不要用 Python requests、wget、curl 下载 zip 等乱七八糟的方式,否则文件结构不完整会导致技能无法正常工作。

# 克隆仓库(必须用 git clone) git clone https://cnb.cool/i.o/workbuddy_checkin.git # 复制技能到 WorkBuddy skills 目录 xcopy /E /I workbuddy_checkin\workbuddy-gui-checkin %USERPROFILE%\.workbuddy\skills\workbuddy-gui-checkin\ # 安装 Python 依赖 pip install pyautogui # 初始化本地版本号 python %USERPROFILE%\.workbuddy\skills\workbuddy-gui-checkin\scripts\update.py --init # 清理临时文件 rmdir /S /Q workbuddy_checkin

小龙虾(WorkBuddy AI)安装

告诉小龙虾:

安装技能 https://cnb.cool/i.o/workbuddy_checkin,必须使用git clone命令

小龙虾会自动完成克隆、复制、安装依赖的全部操作。

重要提示:小龙虾必须使用 git clone 下载项目,不要用 Python requests、wget、curl 下载 zip 等其他方式!

使用方法

首次配置

签到脚本需要配置三个准确点击坐标,不要搞混

坐标名称说明配置字段
头像坐标WorkBuddy 左下角头像的准确点击坐标,点击后弹出签到弹窗avatar_x, avatar_y
立即签到坐标弹窗内"立即签到"按钮的准确点击坐标button_x, button_y
关闭弹窗坐标弹窗外空白处的准确点击坐标,点击后关闭签到弹窗close_x, close_y

配置说明

配置文件采用多分辨率格式,按逻辑分辨率分组存储坐标。脚本运行时自动检测当前屏幕的逻辑分辨率,匹配对应的坐标组。

用户只需提供原始物理分辨率下的坐标,AI 助手会自动换算 125% 和 150% 缩放下的坐标并一并写入配置文件,代码中不进行任何 DPI 计算。

关键概念:Windows 系统设置中的"显示缩放"(100%、125%、150% 等)会改变逻辑分辨率。例如物理分辨率 1920x1200 在 125% 缩放下,逻辑分辨率变为 1536x960。截图软件报告的是物理分辨率坐标,而 pyautogui 使用的是逻辑分辨率坐标。

配置步骤

  1. 将 WorkBuddy 窗口最大化(重要!坐标基于最大化窗口获取)
  2. 确认当前屏幕的物理分辨率(Windows 设置 → 显示中查看)
  3. 使用截图工具获取头像、立即签到、关闭弹窗三个准确点击坐标
  4. 创建配置文件 ~/.workbuddy/checkin_config.json
{ "resolutions": { "<逻辑宽x逻辑高>": { "avatar_x": 头像x坐标, "avatar_y": 头像y坐标, "button_x": 立即签到x坐标, "button_y": 立即签到y坐标, "close_x": 关闭弹窗x坐标, "close_y": 关闭弹窗y坐标 } } }

配置示例

{ "resolutions": { "1920x1200": { "avatar_x": 135, "avatar_y": 1133, "button_x": 268, "button_y": 612, "close_x": 1700, "close_y": 250 }, "1536x960": { "avatar_x": 108, "avatar_y": 906, "button_x": 214, "button_y": 490, "close_x": 1360, "close_y": 200 }, "1280x800": { "avatar_x": 90, "avatar_y": 755, "button_x": 179, "button_y": 408, "close_x": 1133, "close_y": 167 }, "2400x1080": { "avatar_x": 180, "avatar_y": 988, "button_x": 268, "button_y": 493, "close_x": 2030, "close_y": 157 }, "1920x864": { "avatar_x": 144, "avatar_y": 790, "button_x": 214, "button_y": 394, "close_x": 1624, "close_y": 126 }, "1600x720": { "avatar_x": 120, "avatar_y": 659, "button_x": 179, "button_y": 329, "close_x": 1353, "close_y": 105 }, "1024x768": { "avatar_x": 75, "avatar_y": 714, "button_x": 124, "button_y": 368, "close_x": 887, "close_y": 135 }, "819x614": { "avatar_x": 60, "avatar_y": 571, "button_x": 99, "button_y": 294, "close_x": 710, "close_y": 108 }, "682x512": { "avatar_x": 50, "avatar_y": 476, "button_x": 83, "button_y": 245, "close_x": 591, "close_y": 90 } } }

注意:1024x768 的坐标是基于其他分辨率推算的,实际使用时建议在该分辨率设备上验证校准。

测试签到

python scripts/checkin.py --test

测试模式下,每次点击时会在目标位置显示红色圆圈 + 十字指示器(持续 1 秒),方便确认点击位置是否正确。

执行签到

python scripts/checkin.py

正常模式下直接执行签到,不显示指示圈。

自动化

配置成功后,可在 WorkBuddy 中创建每日自动化任务:

  • 建议执行时间:每天 08:00
  • 确保 WorkBuddy 桌面端处于运行状态
  • 自动化任务使用 python scripts/checkin.py(不带 --test 参数)

版本更新

版本号使用 git commit hash 前 8 位(如 f9bc5420),每次推送到仓库版本号自动变化,无需手动维护。

VERSION 文件不入库,仅作为本地缓存,安装/更新后由脚本自动生成。

签到脚本每次执行时会自动检测是否有新版本。发现新版本时会提示:

[Step 0] Checking for updates... [UPDATE] 发现新版本: a82e1999 (当前: f9bc5420) [UPDATE] 运行 'python scripts/update.py --update' 进行热更新

手动检测与更新

# 仅检测是否有更新 python scripts/update.py --check # 检测并自动热更新 python scripts/update.py --update # 首次安装后初始化本地 VERSION 文件 python scripts/update.py --init

热更新说明

  • 热更新通过 git clone 下载最新代码,然后覆盖技能文件
  • 不会覆盖用户配置文件 ~/.workbuddy/checkin_config.json(配置文件不在技能目录内)
  • 更新完成后自动清理临时文件
  • 首次安装后需运行 python scripts/update.py --init 初始化本地版本号

文件说明

workbuddy-gui-checkin/ ├── SKILL.md # WorkBuddy 技能描述文件 ├── VERSION # 版本号(本地缓存,不入库,由脚本自动生成) ├── scripts/ │ ├── checkin.py # 签到主脚本(含更新检测,支持 --test 测试模式) │ ├── test_click.py # 测试点击脚本 │ └── update.py # 更新检测与热更新脚本 └── README.md # 本文件

注意事项

  • 获取坐标前必须先将 WorkBuddy 窗口最大化,否则坐标会偏移
  • 不要搞混三个坐标:头像坐标是点头像打开弹窗的,立即签到坐标是点"立即签到"按钮的,关闭弹窗坐标是签到后关弹窗的
  • WorkBuddy 窗口标题需包含"WorkBuddy"
  • 自动化运行时需要确保 WorkBuddy 窗口存在且已登录
  • 更换物理分辨率或缩放比例后,需在配置文件中新增对应的坐标组
  • 坐标换算在配置文件中预计算完成,代码只做分辨率匹配,不进行动态 DPI 换算

License

MIT License

Copyright (c) 2026 i.o

本项目基于 MIT 协议开源,您可以自由使用、修改和分发本软件,但需保留原始版权声明和协议文本。