每日签到奶昔超市点数市场奶昔访达
返回列表 发布新帖
查看: 328|回复: 4

[工具] 新一期茄皇又开始了,脚本附件

发表于 2025-10-14 18:28:54 | 查看全部 |阅读模式

欢迎注册论坛,享受更多奶昔会员权益!

您需要 登录 才可以下载或查看,没有账号?注册

×
命名后缀是py
青龙面板变量QHAZ  抓茄皇的AZ数据authorization


  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import requests
  5. import json
  6. import time
  7. from urllib3.exceptions import InsecureRequestWarning

  8. # 禁用SSL警告
  9. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

  10. class ZhuManitoTask:
  11.     def __init__(self, authorization, account_name):
  12.         self.authorization = authorization
  13.         self.account_name = account_name
  14.         self.base_headers = {
  15.             'host': 'api.zhumanito.cn',
  16.             'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf2541113) XWEB/16771',
  17.             'authorization': authorization,
  18.             'accept': '*/*',
  19.             'origin': 'https://h5.zhumanito.cn',
  20.             'sec-fetch-site': 'same-site',
  21.             'sec-fetch-mode': 'cors',
  22.             'sec-fetch-dest': 'empty',
  23.             'referer': 'https://h5.zhumanito.cn/',
  24.             'accept-encoding': 'gzip, deflate, br',
  25.             'accept-language': 'zh-CN,zh;q=0.9',
  26.             'priority': 'u=1, i'
  27.         }
  28.         self.tasks = []
  29.    
  30.     def print_separator(self):
  31.         print("二" * 50)
  32.    
  33.     def print_dashed_line(self):
  34.         print("=" * 50)
  35.    
  36.     def make_request(self, method, url, headers, data=None, task_name=""):
  37.         """通用的请求函数"""
  38.         try:
  39.             if method.upper() == "GET":
  40.                 response = requests.get(
  41.                     url=url,
  42.                     headers=headers,
  43.                     verify=False,
  44.                     timeout=30
  45.                 )
  46.             else:
  47.                 if isinstance(data, dict):
  48.                     response = requests.post(
  49.                         url=url,
  50.                         headers=headers,
  51.                         json=data,
  52.                         verify=False,
  53.                         timeout=30
  54.                     )
  55.                 else:
  56.                     response = requests.post(
  57.                         url=url,
  58.                         headers=headers,
  59.                         data=data,
  60.                         verify=False,
  61.                         timeout=30
  62.                     )
  63.             
  64.             if response.status_code == 200:
  65.                 try:
  66.                     result = response.json()
  67.                     return True, result
  68.                 except json.JSONDecodeError:
  69.                     return True, {"message": "success", "text": response.text}
  70.             else:
  71.                 return False, {"error": f"HTTP {response.status_code}", "message": response.text}
  72.                
  73.         except Exception as e:
  74.             return False, {"error": str(e)}
  75.    
  76.     def get_task_list(self):
  77.         """获取任务列表"""
  78.         url = "https://api.zhumanito.cn/api/task?"
  79.         headers = self.base_headers.copy()
  80.         
  81.         success, result = self.make_request("GET", url, headers, task_name="获取任务列表")
  82.         
  83.         if success and result.get("code") == 200:
  84.             self.tasks = result.get("data", {}).get("task", [])
  85.             return True
  86.         else:
  87.             print(f"❌ 获取任务列表失败: {result}")
  88.             return False
  89.    
  90.     def complete_task(self, task_id, task_content, water_num, sun_num):
  91.         """完成任务"""
  92.         url = "https://api.zhumanito.cn/api/task/complete"
  93.         headers = self.base_headers.copy()
  94.         headers.update({
  95.             'content-length': '10',
  96.             'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
  97.         })
  98.         data = f"task_id={task_id}&"
  99.         
  100.         success, result = self.make_request("POST", url, headers, data, f"完成任务{task_id}")
  101.         
  102.         if success:
  103.             return True, {"water": water_num, "sunshine": sun_num}
  104.         else:
  105.             return False, result
  106.    
  107.     def click_task(self, task_id, task_content, water_num, sun_num):
  108.         """点击任务"""
  109.         url = "https://api.zhumanito.cn/api/click"
  110.         headers = self.base_headers.copy()
  111.         headers.update({
  112.             'content-length': '2',
  113.             'content-type': 'application/json;charset=UTF-8',
  114.         })
  115.         data = {}
  116.         
  117.         success, result = self.make_request("POST", url, headers, data, f"点击任务{task_id}")
  118.         
  119.         if success:
  120.             return True, {"water": water_num, "sunshine": sun_num}
  121.         else:
  122.             return False, result
  123.    
  124.     def water_task(self):
  125.         """浇水任务"""
  126.         url = "https://api.zhumanito.cn/api/water"
  127.         headers = self.base_headers.copy()
  128.         headers.update({
  129.             'content-length': '0',
  130.             'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
  131.         })
  132.         data = ""
  133.         
  134.         success, result = self.make_request("POST", url, headers, data, "浇水任务")
  135.         
  136.         if success:
  137.             # 这里可以根据实际API返回调整
  138.             return True, {
  139.                 "remaining_water": 5,
  140.                 "remaining_sunshine": 5,
  141.                 "land_status": {
  142.                     "total": 6,
  143.                     "growth_stage": 1
  144.                 }
  145.             }
  146.         else:
  147.             return False, result
  148.    
  149.     def process_account(self):
  150.         """处理单个账号的所有任务"""
  151.         print(f"\n开始处理{self.account_name}")
  152.         self.print_dashed_line()
  153.         
  154.         # 获取任务列表
  155.         if not self.get_task_list():
  156.             print("❌ 无法获取任务列表,跳过该账号")
  157.             return
  158.         
  159.         print(f"{self.account_name}任务状态:")
  160.         
  161.         # 执行任务
  162.         completed_tasks = 0
  163.         total_tasks = len(self.tasks)
  164.         
  165.         for i, task in enumerate(self.tasks, 1):
  166.             task_id = task.get("id")
  167.             task_content = task.get("content", "")
  168.             water_num = task.get("water_num", 0)
  169.             sun_num = task.get("sun_num", 0)
  170.             task_status = task.get("status", 0)
  171.             task_type = task.get("type", 0)
  172.             
  173.             # 如果任务已完成(status=0),则跳过
  174.             if task_status == 0:
  175.                 status = f"任务{i}:{task_content}|奖励: 水滴={water_num},阳光={sun_num}|✓已完成"
  176.                 print(status)
  177.                 completed_tasks += 1
  178.                 continue
  179.             
  180.             success = False
  181.             reward = {}
  182.             
  183.             if task_id == 1:  
  184.                 success, reward = self.complete_task(task_id, task_content, water_num, sun_num)
  185.             elif task_id == 2:  # 浏览指定页面
  186.                 success, reward = self.click_task(task_id, task_content, water_num, sun_num)
  187.             else:
  188.                 # 其他任务类型,默认使用完成任务接口
  189.                 success, reward = self.complete_task(task_id, task_content, water_num, sun_num)
  190.             
  191.             if success:
  192.                 status = f"任务{i}:{task_content}|奖励: 水滴={reward.get('water', water_num)},阳光={reward.get('sunshine', sun_num)}|✓已完成"
  193.                 completed_tasks += 1
  194.             else:
  195.                 status = f"任务{i}:{task_content}|奖励: 无|✗失败"
  196.             
  197.             print(status)
  198.             time.sleep(1)  # 任务间延迟
  199.         
  200.         self.print_dashed_line()
  201.         
  202.         # 如果所有任务都完成了,执行浇水
  203.         if completed_tasks >= total_tasks:
  204.             print(f"{self.account_name}:所有任务已完成或无法获取任务,直接执行浇水")
  205.             self.print_dashed_line()
  206.             
  207.             # 执行浇水任务
  208.             print(f"{self.account_name}: 开始浇水...")
  209.             time.sleep(1)
  210.             
  211.             success, result = self.water_task()
  212.             if success:
  213.                 print(f"✓{self.account_name}: 浇水成功!")
  214.                 print(f"|剩余水滴: {result['remaining_water']},剩余阳光: {result['remaining_sunshine']}")
  215.                 print(f"|土地状态:共{result['land_status']['total']}块,生长阶段{result['land_status']['growth_stage']}")
  216.             else:
  217.                 print(f"✗{self.account_name}: 浇水失败!")
  218.         else:
  219.             print(f"{self.account_name}: 有任务未完成,跳过浇水")
  220.         
  221.         self.print_dashed_line()
  222.         print(f"✓{self.account_name}处理完毕")
  223.         self.print_separator()

  224. def main():
  225.     # 从环境变量获取授权令牌
  226.     authorization = os.getenv('QHAZ')
  227.     if not authorization:
  228.         print("❌ 未找到环境变量 QHAZ")
  229.         return
  230.    
  231.     print("茄黄")
  232.     print("X")
  233.    
  234.     # 创建任务处理器 - 账号2
  235.     account2 = ZhuManitoTask(authorization, "账号1")
  236.     account2.process_account()
  237.    
  238.     # 可以继续添加更多账号
  239.     # account3 = ZhuManitoTask(authorization, "账号3")
  240.     # account3.process_account()
  241.    
  242.     print("✓所有账号已全部处理完成!")

  243. if __name__ == "__main__":
  244.     main()
复制代码
爱生活,爱奶昔~
回复

使用道具 举报

发表于 2025-10-14 19:39:41 | 查看全部
感谢分享
爱生活,爱奶昔~
发表于 2025-10-14 20:13:04 来自手机 | 查看全部
这是什么东西
爱生活,爱奶昔~
发表于 2025-10-15 11:10:39 | 查看全部
感谢分享!!
爱生活,爱奶昔~
发表于 2025-10-15 11:34:27 来自手机 | 查看全部
感谢分享
爱生活,爱奶昔~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2025 Nyarime 沪ICP备13020230号-1|沪公网安备 31010702007642号手机版小黑屋RSS
返回顶部 关灯 在本版发帖
快速回复 返回顶部 返回列表