Collect seeded Qinglong script repositories

This commit is contained in:
Hermes Agent
2026-05-24 04:36:41 +00:00
parent 28d62fef03
commit ca1a4275e4
282 changed files with 143071 additions and 5 deletions

View File

@@ -0,0 +1,104 @@
# Source: https://github.com/AkenClub/ken-iMoutai-Script/blob/main/2_login.py
# Raw: https://raw.githubusercontent.com/AkenClub/ken-iMoutai-Script/main/2_login.py
# Repo: AkenClub/ken-iMoutai-Script
# Path: 2_login.py
# UploadedAt: 2025-11-20T09:54:34+08:00
# SHA256: 153777702f935023b805885108b95cc7ecbd1b8f473d6024e20a4f594909fcba
# Category: APP版/账密
# Evidence: username/password/mobile/login
import time
import hashlib
import requests
import json
import logging
"""
2、登录获取 USER_ID、TOKEN、COOKIE 等数据
上一步获取到验证码后根据上一步输出的版本号和设备ID填入下面信息进行登录请求
运行后,输出用户信息,并记录用于后续预约。
"""
# ------ 填写以下 4 个变量值 --------
# 手机号码,和上一步的手机号码一致
PHONE_NUMBER = ''
# 验证码,填写收到的验证码
CODE = ""
# 设备 ID和上一步的设备 ID 一致
DEVICE_ID = ""
# 版本号,和上一步的版本号一致
MT_VERSION = ""
# --------------------
'''
cron: 1 1 1 1 *
new Env("2_登录")
'''
# ***** 以下内容不用动 *****
SALT = "2af72f100c356273d46284f6fd1dfc08"
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s')
def signature(content, time):
text = SALT + content + str(time)
md5 = hashlib.md5(text.encode()).hexdigest()
return md5
def login(mobile, code, device_id, mt_version):
cur_time = int(time.time() * 1000)
data = {
"mobile": mobile,
"vCode": code,
"md5": signature(mobile + code, cur_time),
"timestamp": str(cur_time),
"MT-APP-Version": mt_version
}
headers = {
"MT-Device-ID": device_id,
"MT-APP-Version": mt_version,
"User-Agent": "iOS;16.3;Apple;?unrecognized?",
"Content-Type": "application/json"
}
url = "https://app.moutai519.com.cn/xhr/front/user/register/login"
response = requests.post(url, headers=headers, data=json.dumps(data))
json_response = response.json()
# 输出登录请求的返回结果
logging.info(f"「登录请求返回」:{json.dumps(json_response)}")
if json_response.get("code") == 2000:
logging.info("「登录请求-成功」")
user_data = json_response.get("data", {})
filtered_data = {
k: v
for k, v in user_data.items() if k not in
["idType", "verifyStatus", "idCode", "birthday", "userTag"]
}
return filtered_data
else:
logging.error("「登录请求-失败」")
raise Exception("登录失败,本地错误日志已记录")
if __name__ == "__main__":
# 判断入参
if not PHONE_NUMBER or not CODE or not DEVICE_ID or not MT_VERSION:
logging.error("「登录请求-失败」:缺少必要参数")
raise Exception("缺少必要参数")
result = login(PHONE_NUMBER, CODE, DEVICE_ID, MT_VERSION)
logging.info(f"「结果:用户信息」:{json.dumps(result)}")
logging.info("****************************")
logging.info("记录以下信息用于后续预约:")
logging.info(f"手机号码 - PHONE_NUMBER{PHONE_NUMBER}")
logging.info(f"设备ID - DEVICE_ID{DEVICE_ID}")
logging.info(f"版本号 - MT_VERSION{MT_VERSION}")
logging.info(f"用户ID - USER_ID{result['userId']}")
logging.info(f"Token - TOKEN{result['token']}")
logging.info(f"Cookie - COOKIE{result['cookie']}")