qinglong-scripts/TongCheng/README.md

123 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 同程旅行自动签到脚本
这是一个基于Python的自动化脚本用于自动完成同程旅行APP的每日签到和任务获取里程奖励。脚本支持多账号配置自动处理日常任务并通过青龙面板提供通知功能。
## 功能特性
- **自动签到**:每日自动完成签到任务
- **任务处理**:自动识别并完成各类日常任务
- **多账号支持**:通过环境变量配置多个账号,支持使用换行符或`#`分隔
- **通知功能**:支持通过青龙面板发送执行结果通知
- **智能重试**:任务失败时自动重试,提高成功率
- **数据统计**:记录签到天数、里程变化等信息
## 使用方法
### 1. 环境准备
首先需要准备好运行环境:
1. 安装青龙面板建议版本2.10.0以上)
2. 确保青龙面板已安装以下依赖:
- aiohttp
- requests
### 2. 获取抓包信息
1. 打开并登录“同程旅行”APP
2. 开启抓包工具如Charles、Fiddler等
3. 点击APP右下角“我的”-“签到”
4. 抓取请求域名`https://app.17u.cn`请求头中的三个参数:
- `phone`:手机号
- `apptoken`:认证令牌
- `device`:设备标识
### 3. 配置环境变量
在青龙面板中添加环境变量:
1. 打开青龙面板,进入「环境变量」页面
2. 点击「添加变量」按钮
3. 变量名:`tongcheng`
4. 变量值格式:
```
phone&apptoken&device
```
多账号之间支持用换行符或`#`分隔,例如:
```
# 使用换行符分隔(推荐)
13800138000&abcdef123456&device1
13900139000&abcdef789012&device2
# 或使用#分隔
13800138000&abcdef123456&device1#13900139000&abcdef789012&device2
```
### 4. 添加脚本
1. 在青龙面板中,进入「脚本管理」页面
2. 点击「添加脚本」按钮
3. 输入脚本名称(如`tc_signin.py`
4. 将脚本代码复制到编辑器中
5. 点击「保存」按钮
### 5. 设置定时任务
1. 在青龙面板中,进入「定时任务」页面
2. 点击「添加任务」按钮
3. 任务名称:自定义(如`同程旅行签到`
4. 命令:
```bash
task tc_signin.py
```
5. 定时规则:设置执行频率(如`0 0 * * *`表示每天0点执行
6. 点击「保存」按钮
## 通知配置
脚本支持通过青龙面板的通知功能发送执行结果需要确保青龙面板已正确配置通知方式如Server酱、Telegram等
如果通知功能无法正常工作,脚本会在日志中记录详细的错误信息,帮助排查问题。
## 脚本更新说明
### 版本1.6更新内容
- 优化环境变量解析,支持使用换行符分隔多账号
- 增强环境变量格式验证和错误处理
- 优化日志输出,明确显示解析到的账号数量
- 保留之前所有功能和优化
### 版本1.5更新内容
- 优化通知模块,解决异步环境下通知失败问题
- 使用线程池执行同步通知函数,避免阻塞事件循环
- 增强错误处理,提供更详细的通知失败信息
- 保留之前的所有功能和优化
### 版本1.4更新内容
- 修复推送服务失败的问题
- 优化notify模块导入逻辑
- 添加详细的路径查找和错误日志
- 保留之前的所有功能和优化
## 常见问题
1. **脚本执行失败**
- 检查环境变量是否正确配置
- 确认抓包获取的参数是否有效
- 查看脚本执行日志,定位具体错误原因
2. **通知未收到**
- 检查青龙面板通知配置是否正确
- 查看脚本日志,确认通知是否发送成功
- 检查通知服务提供商的状态
3. **任务执行不完全**
- 脚本有内置的重试机制,但部分任务可能需要手动完成
- 检查任务列表中是否有特殊任务需要额外操作
## 免责声明
本脚本仅供学习交流使用,请勿用于商业用途。使用本脚本可能违反同程旅行的用户协议,请谨慎使用。开发者不对因使用本脚本而导致的任何问题负责。