确保已安装 uv,然后在项目目录下运行:
uv sync注:本项目使用了自定义的 turnstile_solver.py 来处理 CloudFreed API。
复制 .env.example 为 .env 并填写你的配置:
cp .env.example .env在 .env 文件中:
IDC_USERNAME: 56idc 账号 (邮箱)IDC_PASSWORD: 56idc 密码SOLVER_TYPE: 验证码解决服务类型 (turnstile或yescaptcha)API_BASE_URL: 服务 API 地址 (如https://api.capsolver.com或https://api.yescaptcha.com)CLIENT_KEY: 你的 API KeyTG_BOT_TOKEN: (可选) Telegram Bot TokenTG_USER_ID: (可选) Telegram Chat IDPUSH_PLUS_TOKEN: (可选) push+ 微信推送令牌DD_BOT_TOKEN,DD_BOT_SECRET: (可选) 钉钉机器人推送FSKEY: (可选) 飞书机器人推送BARK_PUSH: (可选) Bark 推送- (其他支持的通知方式请查看
notify.py)
- 访问 YesCaptcha 注册账号
- 注册后联系客服可免费获得余额(约可使用60次登录)
- 配置以下环境变量:
| 变量名称 | 说明 |
|---|---|
CLIENT_KEY |
YesCaptcha 的 API 密钥 |
IDC_USERNAME |
56idc 论坛用户名 (或 USER1/USER2...) |
IDC_PASSWORD |
56idc 论坛密码 (或 PASS1/PASS2...) |
SOLVER_TYPE |
设置为 yescaptcha |
提示:YesCaptcha 提供两个服务节点,可根据网络情况选择:
- 国际节点:
https://api.yescaptcha.com(默认)- 国内节点:
https://cn.yescaptcha.com
CloudFreed 提供了一种通过 Docker 部署的 Turnstile 解决服务。你可以按照以下步骤进行配置:
如果你有自己的服务器,可以使用 Docker 运行:
docker run -it --rm -p 3000:3000 jackzzs/cloudflyer -K YOUR_CLIENT_KEY注:具体镜像名和参数请参考 https://github.com/cloudflyer-project/cloudflyer-oss 官方文档。
启动后,在本项目中配置:
SOLVER_TYPE:turnstileAPI_BASE_URL:http://你的服务器IP:3000CLIENT_KEY: 你在 Docker 启动时设置的API_KEY
uv run login_script.py现在脚本使用 curl_cffi 和 Turnstile 解决服务,极大简化了在青龙等 Linux 环境下的部署。
在青龙面板的“订阅管理”中新建订阅:
- 名称: 56idc 登录
- 类型: 公开仓库
- 链接:
你的仓库地址 - 定时:
0 0 * * *(每天运行一次) - 白名单:
login_script.py - 依赖文件:
requirements.txt
脚本运行需要 curl_cffi 等依赖。青龙会自动识别 requirements.txt 并尝试安装,如果安装失败,请手动在“依赖管理” -> “Python3”中添加:
curl_cffiyescaptchapython-dotenv
在青龙面板的“环境变量”中添加:
IDC_USERNAME: 56idc 账号 (邮箱)IDC_PASSWORD: 56idc 密码IDC_USERNAME1,IDC_PASSWORD1: (可选) 递增账号配置,支持IDC_USERNAME2,IDC_PASSWORD2等以此类推ACCOUNTS_JSON_56IDC: (可选) 多账号 JSON 配置,例如[{"username": "acc1", "password": "pwd1"}, {"username": "acc2", "password": "pwd2"}]。注意:在某些环境中,如果作为字符串输入,请确保其为有效的 JSON 格式。脚本已增加对包裹引号的自动处理。CLIENT_KEY: 验证码解决服务的 API KeySOLVER_TYPE: (可选) 默认为turnstileAPI_BASE_URL: (可选) 对应服务的 API 地址TG_BOT_TOKEN: (可选) Telegram 通知TG_USER_ID: (可选) Telegram 通知PUSH_PLUS_TOKEN: (可选) push+ 微信推送令牌DD_BOT_TOKEN,DD_BOT_SECRET: (可选) 钉钉机器人推送FSKEY: (可选) 飞书机器人推送BARK_PUSH: (可选) Bark 推送- (其他支持的通知方式请查看
notify.py)
进阶配置 (自动保存变量): 如果需要在脚本中自动更新/保存环境变量 (目前主要用于支持环境检测和同步):
- 青龙环境: 配置
QL_CLIENT_ID,QL_CLIENT_SECRET,QL_API_URL(默认 http://localhost:5700) - GitHub 环境: 配置
GH_PAT(Personal Access Token) 和GITHUB_REPOSITORY
注:脚本会自动识别青龙内置的 notify.py 模块。如果配置了青龙的全局通知,脚本执行结果会自动推送。
订阅成功后,在“定时任务”中找到 56idc 登录 任务手动运行即可。
如果你有多个账号,可以在项目根目录创建 accounts.json:
[
{"username": "user1@example.com", "password": "password1"},
{"username": "user2@example.com", "password": "password2"}
]脚本会自动合并 .env 中的账号和 accounts.json 中的账号。
-
访问原始仓库页面:
- 打开你想要 fork 的 GitHub 仓库页面。
-
Fork 仓库:
- 点击页面右上角的 "Fork" 按钮,将仓库 fork 到你的 GitHub 账户下。
-
创建 Telegram Bot
- 在 Telegram 中找到
@BotFather,创建一个新 Bot,并获取 API Token。 - 获取到你的 Chat ID 方法一,发送
/id@KinhRoBot获取,返回用户信息中的ID就是Chat ID - 获取到你的 Chat ID 方法二,可以通过向 Bot 发送一条消息,然后访问
https://api.telegram.org/bot<your_bot_token>/getUpdates找到 Chat ID。
- 在 Telegram 中找到
-
配置 GitHub Secrets
-
转到你 fork 的仓库页面。
-
点击
Settings,然后在左侧菜单中选择Secrets and variables->Actions。 -
在
Secrets选项卡下添加以下 Secrets:ACCOUNTS_JSON_56IDC: 包含账号信息的 JSON 数据。例如:-
[ {"username": "acc1", "password": "pwd"}, {"username": "acc2", "password": "pwd"} ] IDC_USERNAME: (可选) 单账号用户名IDC_PASSWORD: (可选) 单账号密码CLIENT_KEY: 验证码服务的 API KeyTG_BOT_TOKEN: (可选) 你的 Telegram Bot 的 API Token。TG_USER_ID: (可选) 你的 Telegram Chat ID。PUSH_PLUS_TOKEN: (可选) Push+ 微信推送令牌DD_BOT_TOKEN: (可选) 钉钉机器人 TokenDD_BOT_SECRET: (可选) 钉钉机器人 SecretFSKEY: (可选) 飞书机器人 KeyBARK_PUSH: (可选) Bark 推送 (iOS)QYWX_KEY: (可选) 企业微信机器人 KeyDEER_KEY: (可选) PushDeer Key- (更多通知变量请参考
notify.py)
-
获取方法:
- 在 Telegram 中创建 Bot,并获取 API Token 和 Chat ID。
- 在 GitHub 仓库的 Secrets 页面添加这些值,确保它们安全且不被泄露。
-
-
配置 GitHub Actions
- 在你的 fork 仓库中,进入
Actions页面。 - 如果 Actions 没有自动启用,点击
Enable GitHub Actions按钮以激活它。
- 在你的 fork 仓库中,进入
-
运行工作流
- GitHub Actions 将会根据你设置的定时任务(例如每三天一次)自动运行脚本。
- 如果需要手动触发,可以在 Actions 页面手动运行工作流。
-
TG_BOT_TOKEN
- 示例值:
1234567890:ABCDEFghijklmnopQRSTuvwxyZ - 获取方法: 在 Telegram 中使用
@BotFather创建 Bot 并获取 API Token单位。
- 示例值:
-
TG_USER_ID
- 示例值:
1234567890 - 获取方法: 发送一条消息给你的 Bot,然后访问
https://api.telegram.org/bot<your_bot_token>/getUpdates获取 Chat ID。
- 示例值:
-
ACCOUNTS_JSON_56IDC
- 示例值:
[ {"username": "56idc.net的账号", "password": "56idc.net的密码"}, {"username": "56idc.net的账号2", "password": "56idc.net的密码2"} ] - 获取方法: 创建一个包含56idc.net账号信息的 JSON 文件,并将其内容添加到 GitHub 仓库的 Secrets 中。
- 示例值:
- 保密性: Secrets 是敏感信息,请确保不要将它们泄露到公共代码库或未授权的人员。
- 更新和删除: 如果需要更新或删除 Secrets,可以通过仓库的 Secrets 页面进行管理。
通过以上步骤,你就可以成功将代码 fork 到你的仓库下并运行它了。如果需要进一步的帮助或有其他问题,请随时告知!