电信接口url替换

This commit is contained in:
daiyanan1992
2025-03-26 21:41:01 +08:00
committed by GitHub
parent a09826d8b2
commit 3259a0eff6

View File

@@ -95,22 +95,27 @@ dd = datetime.datetime.now().strftime("%d")
# dd = '01' # dd = '01'
def getId(phone,ck,session): def getId(phone,ck,session,ticket):
# global data # global data
if yf not in data: if yf not in data:
data[yf] = {} data[yf] = {}
str1 = get_level(phone,ck,session) str1 = get_level(phone,ck,ticket,session)
str2 = str1.split('#') str2 = str1.split('#')
# print(str2) # print(str2)
for i in range(0, 3): for i in range(0, 3):
data[yf][f'{i + 4}'] = str2[i] data[yf][f'{i + 4}'] = str2[i]
def get_level(phone,ck,session): def get_level(phone,ck,ticket,session):
try: try:
bd = js.call('main').split('=') bd = js.call('main').split('=')
ck[bd[0]] = bd[1] ck[bd[0]] = bd[1]
sign = getSign(ticket, session)
new_header = {
"User-Agent": f"CtClient;9.6.1;Android;12;SM-G9860;{base64.b64encode(phone[5:11].encode()).decode().strip('=+')}!#!{base64.b64encode(phone[0:5].encode()).decode().strip('=+')}",
"Referer": "https://wapside.189.cn:9001/resources/dist/signInActivity.html",
"sign": sign}
session.headers.update(new_header)
body = {"para": encrypt_para(f'{{"phone":{phone}}}')} body = {"para": encrypt_para(f'{{"phone":{phone}}}')}
str1 = session.post("https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList", json=body, str1 = session.post("https://wapside.189.cn:9001/jt-sign/paradise/getLevelRightsList", json=body,
cookies=ck).text cookies=ck).text
@@ -313,14 +318,17 @@ def getSign(ticket,session):
try: try:
bd = js.call('main').split('=') bd = js.call('main').split('=')
ck[bd[0]] = bd[1] ck[bd[0]] = bd[1]
response_data = session.get('https://wappark.189.cn/jt-sign/ssoHomLogin?ticket=' + ticket,
response_data = session.get('https://wapside.189.cn:9001/jt-sign/ssoHomLogin?ticket=' + ticket, cookies=ck).json()[ cookies=ck)
'sign'] response_data = response_data.json()
if response_data.get('resoultCode') == '0':
print(response_data) sign = response_data.get('sign')
return response_data return sign
else:
print(f"获取sign失败[{response_data.get('resoultCode')}]: {response_data}")
except Exception as e: except Exception as e:
print(e) print(e)
return None
def level_ex(phone, rightsId,session,ck): def level_ex(phone, rightsId,session,ck):
@@ -329,15 +337,46 @@ def level_ex(phone, rightsId,session,ck):
bd = js.call('main').split('=') bd = js.call('main').split('=')
ck[bd[0]] = bd[1] ck[bd[0]] = bd[1]
now = datetime.datetime.now().strftime('%H:%M:%S.%f') now = datetime.datetime.now().strftime('%H:%M:%S.%f')
url = "https://wapside.189.cn:9001/jt-sign/paradise/conversionRights" url = "https://wappark.189.cn/jt-sign/paradise/conversionRights"
data = {"para": encrypt_para(f'{{"phone":{phone},"rightsId":"{rightsId}"}},"receiveCount":1')} data = {"para": encrypt_para(f'{{"phone":{phone},"rightsId":"{rightsId}"}},"receiveCount":1')}
response = session.post('https://wapside.189.cn:9001/jt-sign/paradise/conversionRights', json=data,cookies=ck) response = session.post('https://wappark.189.cn/jt-sign/paradise/conversionRights', json=data,cookies=ck)
print(f'{now}--Phone:{phone}--{response.text}') print(f'{now}--Phone:{phone}--{response.text}')
except Exception as e: except Exception as e:
print(e) print(e)
def getParadiseInfo(phone, session):
try:
bd = js.call('main').split('=')
ck[bd[0]] = bd[1]
url = "https://wappark.189.cn/jt-sign/paradise/getParadiseInfo"
data = {"para": encrypt_para(f'{{"phone":{phone}}}')}
response = session.post(url, json=data, cookies=ck)
# printn(f'{phone[-4:]}=='+response.text)
resp = json.loads(response.text)
level = resp["userInfo"]["levelInfoMap"]["level"]
jy = resp["userInfo"]["levelInfoMap"]["growthValue"]
printn(f'等级:{level},经验:{jy}')
return level, jy
except Exception as e:
print(e)
def aes_ecb_encrypt(plaintext, key):
key = key.encode('utf-8')
if len(key) not in [16, 24, 32]:
raise ValueError("密钥长度必须为16/24/32字节")
# 对明文进行PKCS7填充
padded_data = pad(plaintext.encode('utf-8'), AES.block_size)
#padded_data = plaintext.encode('utf-8')
# 创建AES ECB加密器
cipher = AES.new(key, AES.MODE_ECB)
# 加密并返回Base64编码结果
ciphertext = cipher.encrypt(padded_data)
return base64.b64encode(ciphertext).decode('utf-8')
def ks(phone, ticket,level, uid): def ks(phone, ticket,level, uid):
global wt global wt
@@ -355,9 +394,13 @@ def ks(phone, ticket,level, uid):
bd = js.call('main').split('=') bd = js.call('main').split('=')
ck[bd[0]] = bd[1] ck[bd[0]] = bd[1]
login = s.post('https://wapact.189.cn:9001/unified/user/login', data2 = aes_ecb_encrypt(json.dumps(
json={"ticket": ticket, "backUrl": "https%3A%2F%2Fwapact.189.cn%3A9001", {"ticket": ticket, "backUrl": "https%3A%2F%2Fwapact.189.cn%3A9001", "platformCode": "P201010301",
"platformCode": "P201010301", "loginType": 2}, cookies=ck).json() "loginType": 2}), 'telecom_wap_2018')
login = ss.post('https://wapact.189.cn:9001/unified/user/login', data=data2,
headers={"Content-Type": "application/json;charset=UTF-8",
"Accept": "application/json, text/javascript, */*; q=0.01"}, cookies=ck).json()
if login['code'] == 0: if login['code'] == 0:
printn(phone + " 获取token成功") printn(phone + " 获取token成功")
s.headers["Authorization"] = "Bearer " + login["biz"]["token"] s.headers["Authorization"] = "Bearer " + login["biz"]["token"]
@@ -373,12 +416,14 @@ def ks(phone, ticket,level, uid):
"sign": sign} "sign": sign}
s.headers.update(new_header) s.headers.update(new_header)
if dd == '01' or dirsize == 0: if dd == '01' or dirsize == 0:
getId(phone,ck,s) getId(phone,ck,s,ticket)
with open('权益id.log', 'w') as f: with open('权益id.log', 'w') as f:
f.write(json.dumps(data)) f.write(json.dumps(data))
print('再跑一次脚本') print('再跑一次脚本')
rightsId = data[yf][level] rightsId = data[yf][level]
ll, jy = getParadiseInfo(phone, s)
msg = f'{phone[-4:]}:云宝等级:{ll},经验值:{jy}\n'
printn(msg)
start_time = time.time() start_time = time.time()
while 1 == 1: while 1 == 1:
current_time = time.time() current_time = time.time()
@@ -440,14 +485,15 @@ def main():
else: else:
print("瑞数加密已关闭") print("瑞数加密已关闭")
rs = 0 rs = 0
if os.environ.get('chinaTelecomAccount') != None: # if os.environ.get('chinaTelecomAccount') != None:
chinaTelecomAccount = os.environ.get('chinaTelecomAccount') # chinaTelecomAccount = os.environ.get('chinaTelecomAccount')
else: # else:
print('添加chinaTelecomAccount环境变量啊') # print('添加chinaTelecomAccount环境变量啊')
chinaTelecomAccount = '19952447525@398104@6'
for i in chinaTelecomAccount.split('&'): for i in chinaTelecomAccount.split('&'):
i = i.split('#') i = i.split('@')
phone = i[0] phone = i[0]
password = i[1] password = i[1]
level = i[2] level = i[2]