From 8adcb360d9a1e348eafe34aebd4a6725d9776b62 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 16 Dec 2025 22:07:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96tv189.py=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=BF=83=E8=B7=B3=E5=8C=85=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=9B=B4=E6=96=B0README=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 64 +++++++++++++++++++++++++--- tv189.py | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 181 insertions(+), 6 deletions(-) create mode 100644 tv189.py diff --git a/README.md b/README.md index 29134fe..f4f85ba 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,18 @@ 中国电信APP日常任务自动化工具。 -## 功能 +## 脚本说明 + +| 脚本 | 说明 | +|------|------| +| 电信任务.py | 电信APP签到、抽奖、喂食等任务 | +| tv189.py | 天翼超高清任务(签到、分享、视频奖励) | + +--- + +## 电信任务.py + +### 功能 - **每日签到** - 自动完成签到,获取金豆奖励 - **连签奖励** - 连续签到7天自动领取奖励 @@ -11,17 +22,17 @@ - **任务完成** - 自动完成可用的日常任务 - **喂食功能** - 自动执行喂食任务(每日最多10次) -## 环境要求 +### 环境要求 - Python 3.8+ -## 安装 +### 安装 ```bash pip install requests pycryptodome certifi ``` -## 配置 +### 配置 通过环境变量 `chinaTelecomAccount` 配置账号信息。 @@ -133,10 +144,10 @@ cron: 0 8 * * * ... [2025-12-10 08:00:25] [喂食完成] 138****0000 今日喂食次数已达上限 -[2025-12-10 08:00:30] 📧 所有任务完成 +[2025-12-10 08:00:30] 所有任务完成 ``` -## 常见问题 +### 常见问题 **Q: 提示"未找到环境变量"** @@ -151,6 +162,47 @@ cron: 0 8 * * * 脚本会自动检测并清除过期缓存。如仍有问题,手动删除 `Cache.json`。 +--- + +## tv189.py + +### 功能 + +- **每日签到** - 天翼超高清每日签到 +- **分享任务** - 自动完成分享任务 +- **VIP奖励** - VIP会员奖励、连续包月奖励 +- **节日奖励** - 节日活动奖励领取 +- **视频奖励** - 观看1/5/30分钟奖励领取 + +### 安装 + +```bash +pip install requests +``` + +### 配置 + +编辑 `tv189.py`,填入任务中心 Cookie: + +```python +USER_COOKIE = "从 h5.nty.tv189.com 抓包获取的 Cookie" +``` + +### 使用 + +```bash +python tv189.py +``` + +### 抓包说明 + +1. 打开天翼超高清APP +2. 进入任务中心页面 +3. 抓包域名 `h5.nty.tv189.com` 的请求 +4. 复制 Cookie 头信息 + +--- + ## 免责声明 本脚本仅供学习交流使用,请勿用于商业用途。使用者应遵守中国电信相关服务条款。 diff --git a/tv189.py b/tv189.py new file mode 100644 index 0000000..027ed50 --- /dev/null +++ b/tv189.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +天翼超高清全自动任务脚本 +""" + +import random +import requests +from typing import Optional + + +# ==================== 配置区 ==================== + +# 任务中心 Cookie (抓包域名: h5.nty.tv189.com) +USER_COOKIE = "" + +# ==================== 常量定义 ==================== + +BASE_URL = "https://h5.nty.tv189.com" + +COMMON_HEADERS = { + "Host": "h5.nty.tv189.com", + "Accept": "application/json, text/javascript, */*; q=0.01", + "X-Requested-With": "XMLHttpRequest", + "User-Agent": ( + "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) " + "AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 " + "appstore-newtysx-ios-UA-2.30.14.5" + ), + "Cookie": USER_COOKIE, + "Referer": "https://h5.nty.tv189.com/csite/tysx/task/main", +} + +VIDEO_REWARD_STAGES = [1, 5, 30] + + +# ==================== 工具函数 ==================== + + +def api_get(url_path: str) -> Optional[dict]: + """通用 GET 请求""" + separator = "&" if "?" in url_path else "?" + url = f"{BASE_URL}{url_path}{separator}{random.random()}" + + try: + resp = requests.get(url, headers=COMMON_HEADERS, timeout=10) + if resp.status_code == 200: + return resp.json() + except (requests.RequestException, ValueError): + pass + return None + + +# ==================== 任务函数 ==================== + + +def task_sign_in() -> None: + """每日签到""" + api_get("/api/portal/task/integralpresentforsign") + + +def task_share() -> None: + """分享任务""" + api_get("/api/portal/task/shareintegralapply") + + +def task_vip_bonus() -> None: + """VIP 奖励领取""" + api_get("/api/portal/task/vipintegralapply") + api_get("/api/portal/task/getrollvip") + + +def task_festival() -> None: + """节日活动奖励""" + api_get("/api/portal/task/festival-get") + + +def claim_video_rewards() -> None: + """领取视频观看奖励""" + for minutes in VIDEO_REWARD_STAGES: + url = f"{BASE_URL}/api/portal/task/playtask?e={minutes}" + try: + resp = requests.get(url, headers=COMMON_HEADERS, timeout=10) + result = resp.json() + if result.get("code") == 0: + info = result.get("info", {}) + if info.get("resultDetails"): + print(f"[成功] 观看{minutes}分钟奖励") + except (requests.RequestException, ValueError): + pass + + +def query_points() -> Optional[float]: + """查询元气值""" + data = api_get("/api/portal/task/integralquery") + if data and "intergral" in data: + return data["intergral"] / 10 + return None + + +# ==================== 主函数 ==================== + + +def main() -> None: + if not USER_COOKIE: + print("[错误] 请先配置 USER_COOKIE") + return + + # 执行任务 + task_sign_in() + task_share() + task_vip_bonus() + task_festival() + claim_video_rewards() + + # 查询最终积分 + points = query_points() + if points is not None: + print(f"[积分] 当前元气值: {points}") + + +if __name__ == "__main__": + main()