mirror of
https://github.com/3288588344/toulu.git
synced 2025-12-19 08:15:06 +08:00
Add files via upload
This commit is contained in:
175
小天鹅.py
Normal file
175
小天鹅.py
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
#by:哆啦A梦
|
||||||
|
#TL库:https://github.com/3288588344/toulu.git
|
||||||
|
#抓包midea.com域名中的imUserId和uid,格式:imUserId#uid
|
||||||
|
#将抓到的值填在环境变量XTE中,多账号换行分割
|
||||||
|
#入口:微信小程序:全心全意小天鹅
|
||||||
|
|
||||||
|
|
||||||
|
#公众号:哆啦A梦的藏宝箱
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
import time
|
||||||
|
#公众号:哆啦A梦的藏宝箱
|
||||||
|
def check_environment_variable():
|
||||||
|
"""检查环境变量并解析账号信息"""
|
||||||
|
xte_env = os.environ.get("XTE")
|
||||||
|
if not xte_env:
|
||||||
|
print("错误:未设置 XTE 环境变量")
|
||||||
|
return None
|
||||||
|
|
||||||
|
accounts = []
|
||||||
|
for account_info in xte_env.split("\n"):
|
||||||
|
account_info = account_info.strip()
|
||||||
|
if not account_info:
|
||||||
|
continue
|
||||||
|
parts = account_info.split("#")
|
||||||
|
if len(parts) < 2:
|
||||||
|
print(f"错误:XTE 环境变量格式不正确,应为 imUserId#uid,当前值为:{account_info}")
|
||||||
|
return None
|
||||||
|
imUserId = parts[0]
|
||||||
|
uid = parts[1]
|
||||||
|
accounts.append((imUserId, uid))
|
||||||
|
|
||||||
|
if not accounts:
|
||||||
|
print("错误:未找到有效的账号信息")
|
||||||
|
return None
|
||||||
|
|
||||||
|
return accounts
|
||||||
|
|
||||||
|
def get_proclamation():
|
||||||
|
"""获取公告信息"""
|
||||||
|
external_url = "https://github.com/3288588344/toulu/raw/refs/heads/main/tl.txt"
|
||||||
|
try:
|
||||||
|
response = requests.get(external_url, timeout=10)
|
||||||
|
if response.status_code == 200:
|
||||||
|
print("\n" + "=" * 50)
|
||||||
|
print("📢 公告信息")
|
||||||
|
print("=" * 50)
|
||||||
|
print(response.text)
|
||||||
|
print("=" * 50 + "\n")
|
||||||
|
print("公告获取成功,开始执行任务...\n")
|
||||||
|
else:
|
||||||
|
print(f"⚠️ 获取公告失败,状态码: {response.status_code}")
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(f"⚠️ 获取公告时发生错误: {e}")
|
||||||
|
|
||||||
|
def send_sign_request(imUserId, uid):
|
||||||
|
"""发送签到请求"""
|
||||||
|
url = "https://weixin.midea.com/mscp_mscp/api/cms_api/activity-center-im-service/im-svr/im/game/page/sign"
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
"Connection": "keep-alive",
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"appId": "QLZZ9Fr7w2to",
|
||||||
|
"apiKey": "3660663068894a0d9fea574c2673f3c0",
|
||||||
|
"vcode": "107da4f1bb8b63c7d4ea9c5537207086",
|
||||||
|
"Origin": "https://weixin.midea.com",
|
||||||
|
"X-Requested-With": "com.tencent.mm",
|
||||||
|
"Referer": "https://weixin.midea.com/apps/h5-pro-wx-interaction-marketing/",
|
||||||
|
"Accept-Encoding": "gzip, deflate, br, zstd",
|
||||||
|
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
|
||||||
|
}
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"headParams": {
|
||||||
|
"language": "CN",
|
||||||
|
"originSystem": "MCSP",
|
||||||
|
"timeZone": "",
|
||||||
|
"userCode": "",
|
||||||
|
"tenantCode": "",
|
||||||
|
"userKey": "TEST_",
|
||||||
|
"transactionId": ""
|
||||||
|
},
|
||||||
|
"pagination": None,
|
||||||
|
"restParams": {
|
||||||
|
"gameId": 9,
|
||||||
|
"actvId": "401668349848950807",
|
||||||
|
"rootCode": "XTE",
|
||||||
|
"appCode": "XTE_SHG",
|
||||||
|
"imUserId": imUserId,
|
||||||
|
"uid": uid,
|
||||||
|
"openId": "oOqmz4uVK1_2cXwnsVHDp1vicNNY",
|
||||||
|
"unionId": "o9wX6jllxZJZxZsI0awpJS1aC8W0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(url, headers=headers, data=json.dumps(data))
|
||||||
|
return response
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
print(f"请求异常: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def process_response(index, imUserId, response):
|
||||||
|
"""处理签到响应"""
|
||||||
|
if response is None:
|
||||||
|
print(f"账号 {index}: {imUserId} - 请求失败")
|
||||||
|
return
|
||||||
|
|
||||||
|
if response.status_code != 200:
|
||||||
|
print(f"账号 {index}: {imUserId} - 请求失败,状态码: {response.status_code}")
|
||||||
|
print("响应内容:", response.text)
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
response_json = response.json()
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print(f"账号 {index}: {imUserId} - 响应内容不是 JSON 格式")
|
||||||
|
print("响应内容:", response.text)
|
||||||
|
return
|
||||||
|
|
||||||
|
if response_json.get("code") != "000000":
|
||||||
|
error_msg = response_json.get("msg", "未知错误")
|
||||||
|
print(f"账号 {index}: {imUserId} - 签到失败: {error_msg}")
|
||||||
|
return
|
||||||
|
|
||||||
|
data_content = response_json.get("data")
|
||||||
|
if not data_content:
|
||||||
|
print(f"账号 {index}: {imUserId} - 响应数据中未找到 data 字段")
|
||||||
|
return
|
||||||
|
|
||||||
|
sign_result = data_content.get("result")
|
||||||
|
if sign_result:
|
||||||
|
print(f"账号 {index}: {imUserId} - 签到成功!")
|
||||||
|
prize_dto = data_content.get("prizeDto")
|
||||||
|
prize_name = prize_dto.get("name", "未知奖励") if prize_dto else "未知奖励"
|
||||||
|
print(f"获得奖励: {prize_name}")
|
||||||
|
else:
|
||||||
|
print(f"账号 {index}: {imUserId} - 今日已签到")
|
||||||
|
|
||||||
|
consecutive_days = data_content.get("consecutiveDays", "1")
|
||||||
|
print(f"连续签到天数: {consecutive_days}")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
# 获取公告
|
||||||
|
get_proclamation()
|
||||||
|
|
||||||
|
# 获取账号列表
|
||||||
|
accounts = check_environment_variable()
|
||||||
|
if not accounts:
|
||||||
|
return
|
||||||
|
|
||||||
|
# 对账号进行排序并标注序号
|
||||||
|
accounts.sort()
|
||||||
|
if not accounts:
|
||||||
|
print("错误:未找到有效的账号信息")
|
||||||
|
return
|
||||||
|
|
||||||
|
# 执行签到任务
|
||||||
|
for index, (imUserId, uid) in enumerate(accounts, start=1):
|
||||||
|
print(f"正在处理账号 {index}: ")
|
||||||
|
response = send_sign_request(imUserId, uid)
|
||||||
|
process_response(index, imUserId, response)
|
||||||
|
print("-" * 50)
|
||||||
|
#公众号:哆啦A梦的藏宝箱
|
||||||
|
# 添加随机延迟
|
||||||
|
delay = random.randint(3, 10) # 随机延迟3到10秒
|
||||||
|
if index < len(accounts):
|
||||||
|
print(f"随机延迟 {delay} 秒后处理下一个账号...")
|
||||||
|
time.sleep(delay)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
#公众号:哆啦A梦的藏宝箱
|
||||||
Reference in New Issue
Block a user