Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

XCQ0607/katabump

Repository files navigation

Katabump Server Auto-Renewal Tool

English Version | 中文说明

这是一个用于自动续期 Katabump 服务器的自动化脚本。它利用 Playwright 和 CDP (Chrome DevTools Protocol) 技术来模拟用户操作,能够有效绕过 Cloudflare Turnstile 验证码,确保持续的服务器服务。

支持 Windows 本地运行GitHub Actions 云端运行

✨ 特性

  • 智能过盾: 通过 CDP 协议模拟真实鼠标轨迹和点击行为,结合屏幕坐标伪造,高成功率绕过 Cloudflare Turnstile。
  • 自动重试: 内置严格的验证重试机制,如果验证失败会自动重启验证流程。
  • 多用户支持: 支持配置多个账号批量续期。
  • 云端/本地: 既可以在本地电脑跑,也可以利用 GitHub Actions 每天定时自动跑。

🚀 GitHub Actions 云端运行 (推荐)

这是最省心的方式,配置一次即可每天自动执行。

  1. Fork 本仓库 到你的 GitHub 账号。

  2. 进入你的仓库,点击 Settings -> Secrets and variables -> Actions

  3. 点击 New repository secret,添加一个名为 USERS_JSON 的 Secret。

  4. Value 的格式必须是 JSON 数组(请尽量压缩为一行):

    [{"username": "your_email@example.com", "password": "your_password"}, {"username": "another@example.com", "password": "pwd"}]
  5. (可选) 配置代理: 如果 GitHub Actions 的 IP 被屏蔽,或者你想使用特定的 IP 访问,可以添加名为 HTTP_PROXY 的 Secret。

    • 格式:
      • 无认证: http://ip:port -带认证: http://username:password@ip:port
    • 说明: 脚本会自动检测代理有效性,如果支持认证会自动处理。默认不启用。
  6. (可选) Telegram 消息推送: 如果你希望在续期成功、失败或跳过时收到 Telegram 通知(包含截图),请配置以下 Secret:

    • TG_BOT_TOKEN: 你的 Telegram Bot Token (从 @BotFather 获取)。
    • TG_CHAT_ID: 你的 Chat ID (用户 ID 或群组 ID)。

    如果未配置,脚本将跳过发送通知。

4. 运行结果与截图

  • 运行日志: 在 Actions 中的 Run Renew Script 步骤查看。
  • 截图留存: 每次运行(无论成功与否),通过 Upload Screenshots 步骤自动上传截图。
    • 你可以在 Workflow 运行详情页的 Artifacts 区域下载 screenshots 压缩包。
    • 每个账号对应一张截图(username.png),方便确认状态。
  1. 保存后,进入 Actions 页面,启用 Workflow。它会在每天北京时间 08:00 (UTC 00:00) 自动运行。
  2. 你也可以手动点击 "Run workflow" 立即测试。

💻 Windows 本地运行指南

如果你想在本地观察运行过程或进行调试,请按以下步骤操作。

1. 环境准备

确保你已经安装了 Node.js (建议版本 v18+)。

2. 安装依赖

在项目根目录打开终端 (PowerShell 或 CMD),运行:

npm install

3. 配置账号

项目中有一个 login.json.template 模板文件。

  1. 将其重命名login.json

  2. 用记事本或编辑器打开,填入你的账号密码:

    [
     {
     "username": "myemail@gmail.com",
     "password": "mypassword123"
     }
    ]

    注意: login.json 已被加入 .gitignore,不会被上传到 GitHub,请放心使用。

4. 配置 Chrome 路径

打开 renew.js 文件,找到第 11-12 行:

const CHROME_PATH = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe";
const USER_DATA_DIR = path.join(__dirname, 'ChromeData_Katabump');
const HEADLESS = true;
  • CHROME_PATH: 这是你本地 Chrome 浏览器的安装路径。如果你的安装位置不同,请务必修改!
  • USER_DATA_DIR:
    • 这是一个用于存放 Script 运行时产生的浏览器数据(缓存、Cookie、登录状态等)的文件夹。
    • 作用: 它能让你的登录状态保持更久,不需要每次运行都重新输入密码。
    • 能不能删?: 可以删。如果你想要重置所有状态(彻底清除缓存),只需删除这个文件夹即可。脚本下次运行时会自动重新创建它。
  • HEADLESS:
    • false: 脚本运行时会弹出一个 Chrome 窗口,你可以看到它在做什么。
    • true: (默认)脚本在后台无头运行,界面不可见(适合只想静默完成任务时开启)。

3. 运行脚本

如果你需要使用代理运行脚本,请设置环境变量 HTTP_PROXY:

Powershell:

$env:HTTP_PROXY="http://user:pass@127.0.0.1:7890"
node renew.js

CMD:

set HTTP_PROXY=http://user:pass@127.0.0.1:7890
node renew.js

如果不设置代理,直接运行:

node renew.js

脚本会自动启动 Chrome (如果需要),逐个处理账号,并在根目录下的 photo/ 文件夹中保存每个账号运行结束时的截图(账号名.png)。窗口(默认无头模式为 false,你可以看到操作过程),并依次为列表中的用户续期。


🛠️ 项目结构

  • renew.js: Windows 本地运行的主程序。
  • action_renew.js: 专门用于 GitHub Actions 环境的脚本(适配 Linux/Headless)。
  • .github/workflows/renew.yml: GitHub Actions 的定时任务配置文件。
  • login.json: (需手动创建) 存放本地运行的账号信息。

About

用于自动续期 Katabump 服务器的自动化脚本。它利用 Playwright 和 CDP (Chrome DevTools Protocol) 技术来模拟用户操作,能够有效绕过 Cloudflare Turnstile 验证码

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /