Name | pt-checkin JSON |
Version |
0.3.1
JSON |
| download |
home_page | None |
Summary | PT站点自动签到工具 - 升级版本,支持智能Cloudflare绕过和浏览器模拟 |
upload_time | 2025-08-19 01:14:30 |
maintainer | wuyaos |
docs_url | None |
author | wuyaos |
requires_python | >=3.8 |
license | MIT |
keywords |
pt
checkin
signin
automation
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# PT站点自动签到工具 v0.3.0
用于自动签到PT站点,从项目[madwind/flexget_qbittorrent_mod](https://github.com/madwind/flexget_qbittorrent_mod)迁移而来,移除了FlexGet框架依赖和qBittorrent相关功能,专注于自动签到功能。
## 🎉 v0.3.0 新特性
- 🎨 **彩色日志支持** - INFO绿色、WARN黄色、ERROR红色,日志更清晰
- 🚀 **多线程签到** - 支持并发执行,提升签到效率
- 📊 **详细签到状态** - 区分签到成功/OCR验证码签到成功/模拟登录成功
- 🎯 **优化用户界面** - 统一命令输出格式,使用emoji图标
- 🔧 **代码质量提升** - 规范化代码格式,提升可维护性
## 功能特性
- ✅ 支持100+个PT站点自动签到
- ✅ Cookie自动备份和管理
- ✅ 彩色日志记录和详细错误处理
- ✅ 支持验证码识别(百度OCR)
- ✅ 多线程并发签到,提升效率
- ✅ 智能签到状态分类和追踪
- ✅ 命令行界面,易于使用
- ✅ 标准Python包结构,支持pip安装
## 安装说明
### 环境要求
- Python 3.8+
### 方式一:本地安装
```bash
# 克隆项目
git clone https://github.com/your-username/pt-checkin.git
cd pt-checkin
# 安装
pip install .
```
### 方式二:PyPI安装(未来支持)
```bash
# 从PyPI安装(计划中)
pip install pt-checkin
# 验证安装
pt-checkin --help
```
### 配置文件
复制配置示例文件并编辑:
```bash
cp config_example.yml config.yml
```
编辑 `config.yml`,配置你的站点信息。配置示例文件包含了详细的说明和常见站点模板。
## 配置说明
### 基础配置
```yaml
# 基础设置
max_workers: 1 # 最大并发线程数
user_agent: 'Mozilla/5.0...' # 浏览器标识
get_messages: true # 是否获取站内消息
get_details: true # 是否获取用户详情
cookie_backup: true # 是否备份
```
### 站点配置
支持两种配置方式:
#### 简单配置(仅Cookie)
```yaml
sites:
chdbits: 'your_cookie_string_here'
hdchina: 'your_cookie_string_here'
```
#### 详细配置
```yaml
sites:
dmhy:
cookie: 'your_cookie_string_here'
username: 'your_username'
comment: 'daily_sign_in_comment'
skyey2:
login:
username: 'your_username'
password: 'your_password'
```
### 百度OCR配置(可选)
用于验证码识别:
```yaml
baidu_ocr_app_id: 'your_app_id'
baidu_ocr_api_key: 'your_api_key'
baidu_ocr_secret_key: 'your_secret_key'
```
## 使用方法
### 命令行使用(推荐,开发模式安装后可用)
#### 核心命令
```bash
# 执行签到任务(主要命令)
pt-checkin run
# 仅签到指定站点
pt-checkin run -s sjtu
# 强制重新签到
pt-checkin run --force
# 模拟运行(不实际执行)
pt-checkin run --dry-run
```
#### 测试命令
```bash
# 测试配置文件
pt-checkin test
# 测试单个站点
pt-checkin test-site sjtu
# 启用调试模式测试
pt-checkin test-site sjtu --debug
```
#### 状态管理
```bash
# 查看今日签到状态
pt-checkin status
# 显示失败次数统计
pt-checkin status --show-failed
# 清除今日所有签到状态
pt-checkin status --clear
# 清除指定站点状态
pt-checkin status --clear-site sjtu
```
#### 调试功能
```bash
# 显示所有站点概览
pt-checkin debug
# 调试指定站点
pt-checkin debug -s sjtu
# 显示完整配置信息
pt-checkin debug --show-config
# 启用详细日志模式(彩色输出)
pt-checkin -v run
```
#### 通知功能
```bash
# 获取签到结果通知
pt-checkin get-notification
# 仅显示标题
pt-checkin get-notification --title-only
# JSON格式输出
pt-checkin get-notification --format json
```
## 🎨 新版本特性说明
### 彩色日志
- **INFO级别**:绿色显示,记录正常操作
- **WARN级别**:黄色显示,记录警告信息
- **ERROR级别**:红色显示,记录错误信息
### 多线程签到
通过配置文件设置并发数:
```yaml
max_workers: 3 # 同时签到的站点数量,默认为1
```
### 详细签到状态
- **签到成功**:普通签到方式
- **OCR验证码签到成功**:需要验证码识别的站点
- **模拟登录成功**:需要模拟浏览器的站点
#### 全局选项
```bash
# 使用自定义配置文件
pt-checkin -c my_config.yml run
# 详细日志输出
pt-checkin -v run
```
#### 通知消息获取
```bash
# 获取签到结果通知消息(简单模式)
pt-checkin get-notification
# 获取详细通知消息(包含详细信息)
pt-checkin get-notification --detailed
# 获取JSON格式通知
pt-checkin get-notification --format json
# 仅获取标题
pt-checkin get-notification --title-only
```
## 青龙面板使用(定时执行)
### 青龙面板安装配置
#### 1. **订阅导入**:使用青龙面板的订阅功能导入脚本
```bash
ql repo https://github.com/wuyaos/pt_checkin.git "ck_" "" "config_example.yml" "ql" "py"
```
#### 2. **配置文件设置**:
- 将 `config_example.yml` 复制为 `config.yml`
- 根据实际情况修改 `config.yml` 中的站点配置信息
#### 3. **依赖安装**:
- 在青龙面板 → 依赖管理 → Python3 中添加依赖:`pt-checkin`
- 确保环境中已安装pt-checkin包
## 项目结构
```text
pt-checkin/
├── src/pt_checkin/ # 主包目录
│ ├── __init__.py # 包初始化
│ ├── cli.py # 命令行界面
│ ├── core/ # 核心模块
│ │ ├── __init__.py
│ │ ├── config_manager.py # 配置管理
│ │ ├── scheduler.py # 任务调度
│ │ ├── executor.py # 执行器
│ │ ├── entry.py # 签到条目
│ │ └── signin_status.py # 状态管理
│ ├── base/ # 基础功能
│ │ ├── __init__.py
│ │ ├── sign_in.py # 签到基类
│ │ ├── request.py # 网络请求
│ │ ├── work.py # 工作流
│ │ ├── message.py # 消息基类
│ │ └── detail.py # 详情基类
│ ├── sites/ # 站点实现(100+个站点)
│ │ ├── __init__.py
│ │ ├── sjtu.py # 上海交大PT站
│ │ ├── dmhy.py # 动漫花园
│ │ ├── byr.py # 北邮人PT
│ │ └── ... # 更多站点
│ ├── schema/ # 站点架构
│ │ ├── __init__.py
│ │ ├── nexusphp.py # NexusPHP架构
│ │ ├── gazelle.py # Gazelle架构
│ │ ├── private_torrent.py # 私有种子基类
│ │ └── ... # 更多架构
│ └── utils/ # 工具类
│ ├── __init__.py
│ ├── net_utils.py # 网络工具
│ ├── baidu_ocr.py # 百度OCR
│ └── ... # 更多工具
├── qinglong/ # 青龙面板专用目录
│ ├── ck_ptsites.py # 青龙面板签到脚本
│ ├── notify.py # 简化通知模块
│ ├── config.yml # 青龙面板配置
│ └── README.md # 青龙面板使用说明
├── config_example.yml # 配置示例
├── pyproject.toml # 项目配置
├── LICENSE # 许可证
└── README.md # 说明文档
```
## 更新日志
目前对需要ocr 验证码签到的暂未适配(除了opencd)
### v0.1.0 (青龙面板优化版)
- 🎉 加入青龙面板支持
- ✨ 添加 `get-notification` 命令支持简单/详细模式
- ✨ 添加消息详细程度控制功能
- 📚 完善青龙面板使用文档和示例
### v0.0.1
- 🎉 重构为标准Python包结构
- ✨ 添加pip安装支持
- ✨ 添加全局命令行工具 `pt-checkin`
- ✨ 添加更多命令行选项和状态管理
- 📚 更新文档和使用说明
## 许可证
本项目继承原FlexGet插件的许可证。
## 致谢
- 感谢madwind/flexget_qbittorrent_mod项目的作者
Raw data
{
"_id": null,
"home_page": null,
"name": "pt-checkin",
"maintainer": "wuyaos",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "pt, checkin, signin, automation",
"author": "wuyaos",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/b3/57/c389518e9d40dc877643acd4c724a8e06f79efde9b3c3ea8ae0bc45f1a05/pt_checkin-0.3.1.tar.gz",
"platform": null,
"description": "# PT\u7ad9\u70b9\u81ea\u52a8\u7b7e\u5230\u5de5\u5177 v0.3.0\n\n\u7528\u4e8e\u81ea\u52a8\u7b7e\u5230PT\u7ad9\u70b9\uff0c\u4ece\u9879\u76ee[madwind/flexget_qbittorrent_mod](https://github.com/madwind/flexget_qbittorrent_mod)\u8fc1\u79fb\u800c\u6765\uff0c\u79fb\u9664\u4e86FlexGet\u6846\u67b6\u4f9d\u8d56\u548cqBittorrent\u76f8\u5173\u529f\u80fd\uff0c\u4e13\u6ce8\u4e8e\u81ea\u52a8\u7b7e\u5230\u529f\u80fd\u3002\n\n## \ud83c\udf89 v0.3.0 \u65b0\u7279\u6027\n\n- \ud83c\udfa8 **\u5f69\u8272\u65e5\u5fd7\u652f\u6301** - INFO\u7eff\u8272\u3001WARN\u9ec4\u8272\u3001ERROR\u7ea2\u8272\uff0c\u65e5\u5fd7\u66f4\u6e05\u6670\n- \ud83d\ude80 **\u591a\u7ebf\u7a0b\u7b7e\u5230** - \u652f\u6301\u5e76\u53d1\u6267\u884c\uff0c\u63d0\u5347\u7b7e\u5230\u6548\u7387\n- \ud83d\udcca **\u8be6\u7ec6\u7b7e\u5230\u72b6\u6001** - \u533a\u5206\u7b7e\u5230\u6210\u529f/OCR\u9a8c\u8bc1\u7801\u7b7e\u5230\u6210\u529f/\u6a21\u62df\u767b\u5f55\u6210\u529f\n- \ud83c\udfaf **\u4f18\u5316\u7528\u6237\u754c\u9762** - \u7edf\u4e00\u547d\u4ee4\u8f93\u51fa\u683c\u5f0f\uff0c\u4f7f\u7528emoji\u56fe\u6807\n- \ud83d\udd27 **\u4ee3\u7801\u8d28\u91cf\u63d0\u5347** - \u89c4\u8303\u5316\u4ee3\u7801\u683c\u5f0f\uff0c\u63d0\u5347\u53ef\u7ef4\u62a4\u6027\n\n## \u529f\u80fd\u7279\u6027\n\n- \u2705 \u652f\u6301100+\u4e2aPT\u7ad9\u70b9\u81ea\u52a8\u7b7e\u5230\n- \u2705 Cookie\u81ea\u52a8\u5907\u4efd\u548c\u7ba1\u7406\n- \u2705 \u5f69\u8272\u65e5\u5fd7\u8bb0\u5f55\u548c\u8be6\u7ec6\u9519\u8bef\u5904\u7406\n- \u2705 \u652f\u6301\u9a8c\u8bc1\u7801\u8bc6\u522b\uff08\u767e\u5ea6OCR\uff09\n- \u2705 \u591a\u7ebf\u7a0b\u5e76\u53d1\u7b7e\u5230\uff0c\u63d0\u5347\u6548\u7387\n- \u2705 \u667a\u80fd\u7b7e\u5230\u72b6\u6001\u5206\u7c7b\u548c\u8ffd\u8e2a\n- \u2705 \u547d\u4ee4\u884c\u754c\u9762\uff0c\u6613\u4e8e\u4f7f\u7528\n- \u2705 \u6807\u51c6Python\u5305\u7ed3\u6784\uff0c\u652f\u6301pip\u5b89\u88c5\n\n## \u5b89\u88c5\u8bf4\u660e\n\n### \u73af\u5883\u8981\u6c42\n\n- Python 3.8+\n\n### \u65b9\u5f0f\u4e00\uff1a\u672c\u5730\u5b89\u88c5\n\n```bash\n# \u514b\u9686\u9879\u76ee\ngit clone https://github.com/your-username/pt-checkin.git\ncd pt-checkin\n\n# \u5b89\u88c5\npip install .\n```\n\n### \u65b9\u5f0f\u4e8c\uff1aPyPI\u5b89\u88c5\uff08\u672a\u6765\u652f\u6301\uff09\n\n```bash\n# \u4ecePyPI\u5b89\u88c5\uff08\u8ba1\u5212\u4e2d\uff09\npip install pt-checkin\n\n# \u9a8c\u8bc1\u5b89\u88c5\npt-checkin --help\n```\n\n### \u914d\u7f6e\u6587\u4ef6\n\n\u590d\u5236\u914d\u7f6e\u793a\u4f8b\u6587\u4ef6\u5e76\u7f16\u8f91\uff1a\n\n```bash\ncp config_example.yml config.yml\n```\n\n\u7f16\u8f91 `config.yml`\uff0c\u914d\u7f6e\u4f60\u7684\u7ad9\u70b9\u4fe1\u606f\u3002\u914d\u7f6e\u793a\u4f8b\u6587\u4ef6\u5305\u542b\u4e86\u8be6\u7ec6\u7684\u8bf4\u660e\u548c\u5e38\u89c1\u7ad9\u70b9\u6a21\u677f\u3002\n\n## \u914d\u7f6e\u8bf4\u660e\n\n### \u57fa\u7840\u914d\u7f6e\n\n```yaml\n# \u57fa\u7840\u8bbe\u7f6e\nmax_workers: 1 # \u6700\u5927\u5e76\u53d1\u7ebf\u7a0b\u6570\nuser_agent: 'Mozilla/5.0...' # \u6d4f\u89c8\u5668\u6807\u8bc6\nget_messages: true # \u662f\u5426\u83b7\u53d6\u7ad9\u5185\u6d88\u606f\nget_details: true # \u662f\u5426\u83b7\u53d6\u7528\u6237\u8be6\u60c5\ncookie_backup: true # \u662f\u5426\u5907\u4efd\n```\n\n### \u7ad9\u70b9\u914d\u7f6e\n\n\u652f\u6301\u4e24\u79cd\u914d\u7f6e\u65b9\u5f0f\uff1a\n\n#### \u7b80\u5355\u914d\u7f6e\uff08\u4ec5Cookie\uff09\n```yaml\nsites:\n chdbits: 'your_cookie_string_here'\n hdchina: 'your_cookie_string_here'\n```\n\n#### \u8be6\u7ec6\u914d\u7f6e\n```yaml\nsites:\n dmhy:\n cookie: 'your_cookie_string_here'\n username: 'your_username'\n comment: 'daily_sign_in_comment'\n \n skyey2:\n login:\n username: 'your_username'\n password: 'your_password'\n```\n\n### \u767e\u5ea6OCR\u914d\u7f6e\uff08\u53ef\u9009\uff09\n\n\u7528\u4e8e\u9a8c\u8bc1\u7801\u8bc6\u522b\uff1a\n\n```yaml\nbaidu_ocr_app_id: 'your_app_id'\nbaidu_ocr_api_key: 'your_api_key'\nbaidu_ocr_secret_key: 'your_secret_key'\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### \u547d\u4ee4\u884c\u4f7f\u7528\uff08\u63a8\u8350\uff0c\u5f00\u53d1\u6a21\u5f0f\u5b89\u88c5\u540e\u53ef\u7528\uff09\n\n#### \u6838\u5fc3\u547d\u4ee4\n\n```bash\n# \u6267\u884c\u7b7e\u5230\u4efb\u52a1\uff08\u4e3b\u8981\u547d\u4ee4\uff09\npt-checkin run\n\n# \u4ec5\u7b7e\u5230\u6307\u5b9a\u7ad9\u70b9\npt-checkin run -s sjtu\n\n# \u5f3a\u5236\u91cd\u65b0\u7b7e\u5230\npt-checkin run --force\n\n# \u6a21\u62df\u8fd0\u884c\uff08\u4e0d\u5b9e\u9645\u6267\u884c\uff09\npt-checkin run --dry-run\n```\n\n#### \u6d4b\u8bd5\u547d\u4ee4\n\n```bash\n# \u6d4b\u8bd5\u914d\u7f6e\u6587\u4ef6\npt-checkin test\n\n# \u6d4b\u8bd5\u5355\u4e2a\u7ad9\u70b9\npt-checkin test-site sjtu\n\n# \u542f\u7528\u8c03\u8bd5\u6a21\u5f0f\u6d4b\u8bd5\npt-checkin test-site sjtu --debug\n```\n\n#### \u72b6\u6001\u7ba1\u7406\n\n```bash\n# \u67e5\u770b\u4eca\u65e5\u7b7e\u5230\u72b6\u6001\npt-checkin status\n\n# \u663e\u793a\u5931\u8d25\u6b21\u6570\u7edf\u8ba1\npt-checkin status --show-failed\n\n# \u6e05\u9664\u4eca\u65e5\u6240\u6709\u7b7e\u5230\u72b6\u6001\npt-checkin status --clear\n\n# \u6e05\u9664\u6307\u5b9a\u7ad9\u70b9\u72b6\u6001\npt-checkin status --clear-site sjtu\n```\n\n#### \u8c03\u8bd5\u529f\u80fd\n\n```bash\n# \u663e\u793a\u6240\u6709\u7ad9\u70b9\u6982\u89c8\npt-checkin debug\n\n# \u8c03\u8bd5\u6307\u5b9a\u7ad9\u70b9\npt-checkin debug -s sjtu\n\n# \u663e\u793a\u5b8c\u6574\u914d\u7f6e\u4fe1\u606f\npt-checkin debug --show-config\n\n# \u542f\u7528\u8be6\u7ec6\u65e5\u5fd7\u6a21\u5f0f\uff08\u5f69\u8272\u8f93\u51fa\uff09\npt-checkin -v run\n```\n\n#### \u901a\u77e5\u529f\u80fd\n\n```bash\n# \u83b7\u53d6\u7b7e\u5230\u7ed3\u679c\u901a\u77e5\npt-checkin get-notification\n\n# \u4ec5\u663e\u793a\u6807\u9898\npt-checkin get-notification --title-only\n\n# JSON\u683c\u5f0f\u8f93\u51fa\npt-checkin get-notification --format json\n```\n\n## \ud83c\udfa8 \u65b0\u7248\u672c\u7279\u6027\u8bf4\u660e\n\n### \u5f69\u8272\u65e5\u5fd7\n- **INFO\u7ea7\u522b**\uff1a\u7eff\u8272\u663e\u793a\uff0c\u8bb0\u5f55\u6b63\u5e38\u64cd\u4f5c\n- **WARN\u7ea7\u522b**\uff1a\u9ec4\u8272\u663e\u793a\uff0c\u8bb0\u5f55\u8b66\u544a\u4fe1\u606f\n- **ERROR\u7ea7\u522b**\uff1a\u7ea2\u8272\u663e\u793a\uff0c\u8bb0\u5f55\u9519\u8bef\u4fe1\u606f\n\n### \u591a\u7ebf\u7a0b\u7b7e\u5230\n\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e\u5e76\u53d1\u6570\uff1a\n```yaml\nmax_workers: 3 # \u540c\u65f6\u7b7e\u5230\u7684\u7ad9\u70b9\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a1\n```\n\n### \u8be6\u7ec6\u7b7e\u5230\u72b6\u6001\n- **\u7b7e\u5230\u6210\u529f**\uff1a\u666e\u901a\u7b7e\u5230\u65b9\u5f0f\n- **OCR\u9a8c\u8bc1\u7801\u7b7e\u5230\u6210\u529f**\uff1a\u9700\u8981\u9a8c\u8bc1\u7801\u8bc6\u522b\u7684\u7ad9\u70b9\n- **\u6a21\u62df\u767b\u5f55\u6210\u529f**\uff1a\u9700\u8981\u6a21\u62df\u6d4f\u89c8\u5668\u7684\u7ad9\u70b9\n\n#### \u5168\u5c40\u9009\u9879\n\n```bash\n# \u4f7f\u7528\u81ea\u5b9a\u4e49\u914d\u7f6e\u6587\u4ef6\npt-checkin -c my_config.yml run\n\n# \u8be6\u7ec6\u65e5\u5fd7\u8f93\u51fa\npt-checkin -v run\n```\n\n#### \u901a\u77e5\u6d88\u606f\u83b7\u53d6\n\n```bash\n# \u83b7\u53d6\u7b7e\u5230\u7ed3\u679c\u901a\u77e5\u6d88\u606f\uff08\u7b80\u5355\u6a21\u5f0f\uff09\npt-checkin get-notification\n\n# \u83b7\u53d6\u8be6\u7ec6\u901a\u77e5\u6d88\u606f\uff08\u5305\u542b\u8be6\u7ec6\u4fe1\u606f\uff09\npt-checkin get-notification --detailed\n\n# \u83b7\u53d6JSON\u683c\u5f0f\u901a\u77e5\npt-checkin get-notification --format json\n\n# \u4ec5\u83b7\u53d6\u6807\u9898\npt-checkin get-notification --title-only\n```\n\n## \u9752\u9f99\u9762\u677f\u4f7f\u7528(\u5b9a\u65f6\u6267\u884c)\n\n### \u9752\u9f99\u9762\u677f\u5b89\u88c5\u914d\u7f6e\n\n#### 1. **\u8ba2\u9605\u5bfc\u5165**\uff1a\u4f7f\u7528\u9752\u9f99\u9762\u677f\u7684\u8ba2\u9605\u529f\u80fd\u5bfc\u5165\u811a\u672c\n```bash\nql repo https://github.com/wuyaos/pt_checkin.git \"ck_\" \"\" \"config_example.yml\" \"ql\" \"py\"\n```\n\n#### 2. **\u914d\u7f6e\u6587\u4ef6\u8bbe\u7f6e**\uff1a\n- \u5c06 `config_example.yml` \u590d\u5236\u4e3a `config.yml`\n- \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539 `config.yml` \u4e2d\u7684\u7ad9\u70b9\u914d\u7f6e\u4fe1\u606f\n\n#### 3. **\u4f9d\u8d56\u5b89\u88c5**\uff1a\n- \u5728\u9752\u9f99\u9762\u677f \u2192 \u4f9d\u8d56\u7ba1\u7406 \u2192 Python3 \u4e2d\u6dfb\u52a0\u4f9d\u8d56\uff1a`pt-checkin`\n- \u786e\u4fdd\u73af\u5883\u4e2d\u5df2\u5b89\u88c5pt-checkin\u5305\n\n\n## \u9879\u76ee\u7ed3\u6784\n\n```text\npt-checkin/\n\u251c\u2500\u2500 src/pt_checkin/ # \u4e3b\u5305\u76ee\u5f55\n\u2502 \u251c\u2500\u2500 __init__.py # \u5305\u521d\u59cb\u5316\n\u2502 \u251c\u2500\u2500 cli.py # \u547d\u4ee4\u884c\u754c\u9762\n\u2502 \u251c\u2500\u2500 core/ # \u6838\u5fc3\u6a21\u5757\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 config_manager.py # \u914d\u7f6e\u7ba1\u7406\n\u2502 \u2502 \u251c\u2500\u2500 scheduler.py # \u4efb\u52a1\u8c03\u5ea6\n\u2502 \u2502 \u251c\u2500\u2500 executor.py # \u6267\u884c\u5668\n\u2502 \u2502 \u251c\u2500\u2500 entry.py # \u7b7e\u5230\u6761\u76ee\n\u2502 \u2502 \u2514\u2500\u2500 signin_status.py # \u72b6\u6001\u7ba1\u7406\n\u2502 \u251c\u2500\u2500 base/ # \u57fa\u7840\u529f\u80fd\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 sign_in.py # \u7b7e\u5230\u57fa\u7c7b\n\u2502 \u2502 \u251c\u2500\u2500 request.py # \u7f51\u7edc\u8bf7\u6c42\n\u2502 \u2502 \u251c\u2500\u2500 work.py # \u5de5\u4f5c\u6d41\n\u2502 \u2502 \u251c\u2500\u2500 message.py # \u6d88\u606f\u57fa\u7c7b\n\u2502 \u2502 \u2514\u2500\u2500 detail.py # \u8be6\u60c5\u57fa\u7c7b\n\u2502 \u251c\u2500\u2500 sites/ # \u7ad9\u70b9\u5b9e\u73b0\uff08100+\u4e2a\u7ad9\u70b9\uff09\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 sjtu.py # \u4e0a\u6d77\u4ea4\u5927PT\u7ad9\n\u2502 \u2502 \u251c\u2500\u2500 dmhy.py # \u52a8\u6f2b\u82b1\u56ed\n\u2502 \u2502 \u251c\u2500\u2500 byr.py # \u5317\u90ae\u4ebaPT\n\u2502 \u2502 \u2514\u2500\u2500 ... # \u66f4\u591a\u7ad9\u70b9\n\u2502 \u251c\u2500\u2500 schema/ # \u7ad9\u70b9\u67b6\u6784\n\u2502 \u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2502 \u251c\u2500\u2500 nexusphp.py # NexusPHP\u67b6\u6784\n\u2502 \u2502 \u251c\u2500\u2500 gazelle.py # Gazelle\u67b6\u6784\n\u2502 \u2502 \u251c\u2500\u2500 private_torrent.py # \u79c1\u6709\u79cd\u5b50\u57fa\u7c7b\n\u2502 \u2502 \u2514\u2500\u2500 ... # \u66f4\u591a\u67b6\u6784\n\u2502 \u2514\u2500\u2500 utils/ # \u5de5\u5177\u7c7b\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 net_utils.py # \u7f51\u7edc\u5de5\u5177\n\u2502 \u251c\u2500\u2500 baidu_ocr.py # \u767e\u5ea6OCR\n\u2502 \u2514\u2500\u2500 ... # \u66f4\u591a\u5de5\u5177\n\u251c\u2500\u2500 qinglong/ # \u9752\u9f99\u9762\u677f\u4e13\u7528\u76ee\u5f55\n\u2502 \u251c\u2500\u2500 ck_ptsites.py # \u9752\u9f99\u9762\u677f\u7b7e\u5230\u811a\u672c\n\u2502 \u251c\u2500\u2500 notify.py # \u7b80\u5316\u901a\u77e5\u6a21\u5757\n\u2502 \u251c\u2500\u2500 config.yml # \u9752\u9f99\u9762\u677f\u914d\u7f6e\n\u2502 \u2514\u2500\u2500 README.md # \u9752\u9f99\u9762\u677f\u4f7f\u7528\u8bf4\u660e\n\u251c\u2500\u2500 config_example.yml # \u914d\u7f6e\u793a\u4f8b\n\u251c\u2500\u2500 pyproject.toml # \u9879\u76ee\u914d\u7f6e\n\u251c\u2500\u2500 LICENSE # \u8bb8\u53ef\u8bc1\n\u2514\u2500\u2500 README.md # \u8bf4\u660e\u6587\u6863\n```\n\n## \u66f4\u65b0\u65e5\u5fd7\n\n\u76ee\u524d\u5bf9\u9700\u8981ocr \u9a8c\u8bc1\u7801\u7b7e\u5230\u7684\u6682\u672a\u9002\u914d\uff08\u9664\u4e86opencd)\n\n### v0.1.0 (\u9752\u9f99\u9762\u677f\u4f18\u5316\u7248)\n- \ud83c\udf89 \u52a0\u5165\u9752\u9f99\u9762\u677f\u652f\u6301\n- \u2728 \u6dfb\u52a0 `get-notification` \u547d\u4ee4\u652f\u6301\u7b80\u5355/\u8be6\u7ec6\u6a21\u5f0f\n- \u2728 \u6dfb\u52a0\u6d88\u606f\u8be6\u7ec6\u7a0b\u5ea6\u63a7\u5236\u529f\u80fd\n- \ud83d\udcda \u5b8c\u5584\u9752\u9f99\u9762\u677f\u4f7f\u7528\u6587\u6863\u548c\u793a\u4f8b\n\n### v0.0.1\n- \ud83c\udf89 \u91cd\u6784\u4e3a\u6807\u51c6Python\u5305\u7ed3\u6784\n- \u2728 \u6dfb\u52a0pip\u5b89\u88c5\u652f\u6301\n- \u2728 \u6dfb\u52a0\u5168\u5c40\u547d\u4ee4\u884c\u5de5\u5177 `pt-checkin`\n- \u2728 \u6dfb\u52a0\u66f4\u591a\u547d\u4ee4\u884c\u9009\u9879\u548c\u72b6\u6001\u7ba1\u7406\n- \ud83d\udcda \u66f4\u65b0\u6587\u6863\u548c\u4f7f\u7528\u8bf4\u660e\n\n## \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u7ee7\u627f\u539fFlexGet\u63d2\u4ef6\u7684\u8bb8\u53ef\u8bc1\u3002\n\n## \u81f4\u8c22\n\n- \u611f\u8c22madwind/flexget_qbittorrent_mod\u9879\u76ee\u7684\u4f5c\u8005\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "PT\u7ad9\u70b9\u81ea\u52a8\u7b7e\u5230\u5de5\u5177 - \u5347\u7ea7\u7248\u672c\uff0c\u652f\u6301\u667a\u80fdCloudflare\u7ed5\u8fc7\u548c\u6d4f\u89c8\u5668\u6a21\u62df",
"version": "0.3.1",
"project_urls": {
"Documentation": "https://github.com/wuyaos/pt-checkin/blob/main/README.md",
"Homepage": "https://github.com/wuyaos/pt-checkin",
"Issues": "https://github.com/wuyaos/pt-checkin/issues",
"Repository": "https://github.com/wuyaos/pt-checkin"
},
"split_keywords": [
"pt",
" checkin",
" signin",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "64acf958b57814f48ac1ff97404ff8e3ff70bbb7539bf2c1fc8f19c9e8c3ec2c",
"md5": "c5aa9fa4c85f70fa70a01edf0cda0ffa",
"sha256": "d1e174ca241fc3e617e6cdd125253ddd155b354f3f479557ffe9bb5091797b67"
},
"downloads": -1,
"filename": "pt_checkin-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c5aa9fa4c85f70fa70a01edf0cda0ffa",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 172281,
"upload_time": "2025-08-19T01:14:28",
"upload_time_iso_8601": "2025-08-19T01:14:28.739206Z",
"url": "https://files.pythonhosted.org/packages/64/ac/f958b57814f48ac1ff97404ff8e3ff70bbb7539bf2c1fc8f19c9e8c3ec2c/pt_checkin-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b357c389518e9d40dc877643acd4c724a8e06f79efde9b3c3ea8ae0bc45f1a05",
"md5": "97e88eed4166cce6700fd721bf8eaec3",
"sha256": "67b81aa29796197db9b6dcbfc48135551fa0683935d3d9945fc0e135e82b0aac"
},
"downloads": -1,
"filename": "pt_checkin-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "97e88eed4166cce6700fd721bf8eaec3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 99017,
"upload_time": "2025-08-19T01:14:30",
"upload_time_iso_8601": "2025-08-19T01:14:30.202544Z",
"url": "https://files.pythonhosted.org/packages/b3/57/c389518e9d40dc877643acd4c724a8e06f79efde9b3c3ea8ae0bc45f1a05/pt_checkin-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-19 01:14:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wuyaos",
"github_project": "pt-checkin",
"github_not_found": true,
"lcname": "pt-checkin"
}