mirror of
https://github.com/okyyds/yyds.git
synced 2026-07-13 21:51:17 +08:00
1
This commit is contained in:
270
telecom.py
Normal file
270
telecom.py
Normal file
@@ -0,0 +1,270 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import time
|
||||
import base64
|
||||
import requests
|
||||
import threading
|
||||
import urllib.parse
|
||||
import xml.dom.minidom as xmldom
|
||||
|
||||
from notify import send
|
||||
|
||||
|
||||
#--------------以下为配置区需自行填写--------------#
|
||||
|
||||
# 参数说明
|
||||
# mobile 手机号
|
||||
# password 服务密码 (为空时不执行需登录才能完成的任务)
|
||||
# food 喂食开关 (开启填 True, 关闭填 False)
|
||||
config_list = [
|
||||
{"mobile": "12345678911", "password": "1234", "food": False},
|
||||
#{"mobile": "12345678911", "password": "", "food": False},
|
||||
]
|
||||
|
||||
#--------------配置区结束------------#
|
||||
app_headers = {"User-Agent": "Xiaomi MI 9/9.2.0"}
|
||||
msg_list = []
|
||||
host = 'http://120.79.66.8:6987'
|
||||
|
||||
|
||||
def telecom_task(config):
|
||||
msg = []
|
||||
mobile = config['mobile']
|
||||
password = config['password']
|
||||
msg.append(mobile + " 开始执行任务...")
|
||||
print(mobile + " 开始执行任务...")
|
||||
h5_headers = get_h5_headers(mobile)
|
||||
# 获取用户中心
|
||||
home_info_body = requests.get(url="{}/telecom/getHomeInfoSign".format(host), params={"mobile": mobile}).json()
|
||||
home_info_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/api/home/homeInfo", json=home_info_body, headers=h5_headers).json()
|
||||
if home_info_ret['resoultMsg'] != "成功":
|
||||
msg.append(home_info_ret['resoultMsg'])
|
||||
print(home_info_ret['resoultMsg'])
|
||||
return
|
||||
old_coin = home_info_ret['data']['userInfo']['totalCoin']
|
||||
|
||||
# 签到
|
||||
sign_body = requests.get(url="{}/telecom/getSign".format(host), params={"mobile": mobile}).json()
|
||||
sign_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/api/home/sign", json=sign_body,
|
||||
headers=h5_headers).json()
|
||||
if sign_ret['data']['code'] == 1:
|
||||
msg.append("签到成功, 本次签到获得 " + str(sign_ret['data']['coin']) + " 豆")
|
||||
print("签到成功, 本次签到获得 " + str(sign_ret['data']['coin']) + " 豆")
|
||||
else:
|
||||
msg.append(sign_ret['data']['msg'])
|
||||
print(sign_ret['data']['msg'])
|
||||
|
||||
# 登录任务
|
||||
if password != '':
|
||||
ticket = get_ticket(mobile, password, msg)
|
||||
if ticket != '':
|
||||
xbk_live(ticket, mobile, msg)
|
||||
xbk_video(ticket, mobile, msg)
|
||||
share_to_get_coin(ticket, mobile, msg)
|
||||
|
||||
# 获取所有任务
|
||||
task_info_body = requests.get(url="{}/telecom/getPhoneSign".format(host), params={"mobile": mobile}).json()
|
||||
task_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/paradise/getTask", headers=h5_headers,
|
||||
json=task_info_body).json()
|
||||
if task_ret['resoultCode'] == '0':
|
||||
tasks = task_ret['data']
|
||||
for task in tasks:
|
||||
task_id = task['taskId']
|
||||
task_name = task['title']
|
||||
task_body = requests.get(url="{}/telecom/getTaskSign2".format(host),
|
||||
params={"mobile": mobile, "task": task_id}).json()
|
||||
polymerize_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/paradise/polymerize",
|
||||
json=task_body, headers=h5_headers).json()
|
||||
if polymerize_ret['resoultCode'] == 0:
|
||||
log_msg = task_name + polymerize_ret['data']['err']
|
||||
print(log_msg)
|
||||
msg.append(log_msg)
|
||||
time.sleep(3)
|
||||
# 获取用户中心
|
||||
home_info_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/api/home/homeInfo", json=home_info_body,
|
||||
headers=h5_headers).json()
|
||||
new_coin = home_info_ret['data']['userInfo']['totalCoin']
|
||||
msg.append("领取完毕, 现有金豆: " + str(new_coin))
|
||||
print("领取完毕, 现有金豆: " + str(new_coin))
|
||||
msg.append("本次领取金豆: " + str(new_coin - old_coin))
|
||||
print("本次领取金豆: " + str(new_coin - old_coin))
|
||||
|
||||
# 喂食
|
||||
food(config, msg)
|
||||
|
||||
# 签到7天领取话费
|
||||
convert_reward(config, msg)
|
||||
msg.append("----------------------------------------------")
|
||||
msg_list.extend(msg)
|
||||
|
||||
|
||||
def food(config, msg):
|
||||
if config['food']:
|
||||
mobile = config['mobile']
|
||||
msg.append(mobile + " 开始执行喂食...")
|
||||
print(mobile + " 开始执行喂食...")
|
||||
while True:
|
||||
food_body = requests.get(url="{}/telecom/getPhoneSign".format(host), params={"mobile": mobile}).json()
|
||||
food_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/paradise/food", json=food_body,
|
||||
headers=get_h5_headers(mobile)).json()
|
||||
msg.append(food_ret['resoultMsg'])
|
||||
print(food_ret['resoultMsg'])
|
||||
if food_ret['resoultCode'] != '0':
|
||||
break
|
||||
|
||||
|
||||
def convert_reward(config, msg):
|
||||
mobile = config['mobile']
|
||||
msg.append(mobile + " 开始执行满7天兑换话费...")
|
||||
print(mobile + " 开始执行满7天兑换话费...")
|
||||
phone_body = requests.get(url="{}/telecom/getPhoneSign".format(host), params={"mobile": mobile}).json()
|
||||
activity_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/reward/activityMsg", json=phone_body,
|
||||
headers=get_h5_headers(mobile)).json()
|
||||
msg.append("你已连续签到 " + str(activity_ret['totalDay']) + " 天")
|
||||
print("你已连续签到 " + str(activity_ret['totalDay']) + " 天")
|
||||
if activity_ret['recordNum'] > 0:
|
||||
#可以领取
|
||||
reward_id = activity_ret['date']['id']
|
||||
params = {
|
||||
"mobile": mobile,
|
||||
"rewardId": reward_id
|
||||
}
|
||||
reward_body = requests.get(url="{}/telecom/getConvertReward".format(host), params=params).json()
|
||||
reward_ret = requests.post(url="https://wapside.189.cn:9001/jt-sign/reward/convertReward", json=reward_body,
|
||||
headers=get_h5_headers(mobile)).json()
|
||||
if reward_ret['code'] == '0':
|
||||
msg.append(reward_ret['msg'])
|
||||
print(reward_ret['msg'])
|
||||
|
||||
|
||||
def get_h5_headers(mobile):
|
||||
base64_mobile = str(base64.b64encode(mobile[5:11].encode('utf-8')), 'utf-8').strip(r'=+') + "!#!" + str(
|
||||
base64.b64encode(mobile[0:5].encode('utf-8')), 'utf-8').strip(r'=+')
|
||||
return {"User-Agent": "CtClient;9.2.0;Android;10;MI 9;" + base64_mobile}
|
||||
|
||||
|
||||
def format_msg():
|
||||
str1 = ''
|
||||
for item in msg_list:
|
||||
str1 += str(item) + "\r\n"
|
||||
return str1
|
||||
|
||||
|
||||
def get_ticket(mobile, password, msg):
|
||||
login_body = requests.get(url="{}/telecom/getUserLoginNormal".format(host),
|
||||
params={"mobile": mobile, "password": password}).json()
|
||||
login_ret = requests.post(url="https://appgologin.189.cn:9031/login/client/userLoginNormal",
|
||||
json=login_body,
|
||||
headers=app_headers).json()
|
||||
if login_ret['responseData']['resultCode'] != '0000':
|
||||
msg.append("登录失败, " + login_ret['responseData']['resultDesc'])
|
||||
print("登录失败, " + login_ret['responseData']['resultDesc'])
|
||||
return ''
|
||||
msg.append('登录成功')
|
||||
print('登录成功')
|
||||
token = login_ret['responseData']['data']['loginSuccessResult']['token']
|
||||
user_id = login_ret['responseData']['data']['loginSuccessResult']['userId']
|
||||
|
||||
ticket_body = requests.get(url="{}/telecom/getTicket".format(host),
|
||||
params={"mobile": mobile, "token": token, "userId": user_id}).text
|
||||
ticket_ret = requests.post(url="https://appgo.189.cn:9031/map/clientXML",
|
||||
data=ticket_body,
|
||||
headers={"Content-Type":"text/xml", **app_headers}).text
|
||||
collection = xmldom.parseString(ticket_ret).documentElement
|
||||
ticket = collection.getElementsByTagName("Ticket")[0].childNodes[0].data
|
||||
return requests.get(url="{}/telecom/decryptTicket".format(host), params={"ticket": ticket}).text
|
||||
|
||||
|
||||
def xbk_video(ticket, mobile, msg):
|
||||
msg.append(mobile + " 开始执行星播客视频任务...")
|
||||
print(mobile + " 开始执行星播客视频任务...")
|
||||
h5_headers = get_h5_headers(mobile)
|
||||
res = requests.get(url="https://xbk.189.cn/xbkapi/api/auth/jump?userID="+ticket+"&version=$version$&type=newHome&tab=1&l=renwu",allow_redirects=False)
|
||||
location = urllib.parse.unquote(res.headers['location'])
|
||||
usercode = re.search(r'usercode=(.+?)&', location).group(1)
|
||||
token_ret = requests.post(url="https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken", json={"usercode": usercode}, headers=h5_headers).json()
|
||||
token = token_ret['data']['token']
|
||||
xbk_headers={"authorization": "Bearer " + token, **h5_headers}
|
||||
# 获取视频列表
|
||||
video_ret = requests.get(url="https://xbk.189.cn/xbkapi/lteration/index/recommend/floorRecommend?provinceCode=18&p=1", headers=xbk_headers).json()
|
||||
article_id = video_ret['data'][0]['id']
|
||||
# 播放
|
||||
requests.post(url="https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo", json={"articleId": article_id}, headers=xbk_headers)
|
||||
# 领取豆
|
||||
while True:
|
||||
ret = requests.post(url="https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchVideo", json={"articleId": article_id}, headers=xbk_headers).json()
|
||||
if ret['code'] == 0:
|
||||
msg.append("成功领取 5 豆")
|
||||
print("成功领取 5 豆")
|
||||
else:
|
||||
msg.append(ret['msg'])
|
||||
print(ret['msg'])
|
||||
break
|
||||
# 等待15s
|
||||
time.sleep(16)
|
||||
|
||||
|
||||
def xbk_live(ticket, mobile, msg):
|
||||
msg.append(mobile + " 开始执行星播客直播任务...")
|
||||
print(mobile + " 开始执行星播客直播任务...")
|
||||
h5_headers = get_h5_headers(mobile)
|
||||
res = requests.get(url="https://xbk.189.cn/xbkapi/api/auth/jump?userID="+ticket+"&version=$version$&type=room&tab=1&l=renwu",allow_redirects=False)
|
||||
location = urllib.parse.unquote(res.headers['location'])
|
||||
usercode = re.search(r'usercode=(.+?)&', location).group(1)
|
||||
live_id = re.search(r'liveId=(.+?)&', location).group(1)
|
||||
period = re.search(r'period=(.+?)&', location).group(1)
|
||||
|
||||
token_ret = requests.post(url="https://xbk.189.cn/xbkapi/api/auth/userinfo/codeToken", json={"usercode": usercode}, headers=h5_headers).json()
|
||||
token = token_ret['data']['token']
|
||||
xbk_headers={"authorization": "Bearer " + token, **h5_headers}
|
||||
|
||||
data = {"liveId": live_id, "period": period}
|
||||
# 领取豆
|
||||
while True:
|
||||
init_ret = requests.post(url="https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLiveInit", json=data, headers=xbk_headers).json()
|
||||
key = init_ret['data']
|
||||
#等待15秒
|
||||
time.sleep(16)
|
||||
watch_ret = requests.post(url="https://xbk.189.cn/xbkapi/lteration/liveTask/index/watchLive", json={**data, "key": key}, headers=xbk_headers).json()
|
||||
if watch_ret['code'] == 0:
|
||||
msg.append("成功领取 5 豆")
|
||||
print("成功领取 5 豆")
|
||||
else:
|
||||
msg.append(watch_ret['msg'])
|
||||
print(watch_ret['msg'])
|
||||
break
|
||||
|
||||
|
||||
def share_to_get_coin(ticket, mobile, msg):
|
||||
msg.append(mobile + " 开始执行分享得豆任务...")
|
||||
print(mobile + " 开始执行分享得豆任务...")
|
||||
h5_headers = get_h5_headers(mobile)
|
||||
data = "mpId=goldcoin&ticket="+ticket+"&srcSysID=35000&sceneSources=3&version=9.2.0"
|
||||
login_ret = requests.post(url="https://dxhd.189.cn:7081/actcenter/v1/goldcoinuser/login.do", params=data, headers=h5_headers).json()
|
||||
session = login_ret['module']['session']
|
||||
data = "activityId=telecomrecommend01&session=" + session
|
||||
ret = requests.post(url="https://dxhd.189.cn:7081/actcenter/v1/goldcoinuser/shareToGetCoin.do", params=data, headers=h5_headers).json()
|
||||
if ret['success']:
|
||||
msg.append('获得 20 豆')
|
||||
print('获得 20 豆')
|
||||
else:
|
||||
msg.append('今日已分享')
|
||||
print('今日已分享')
|
||||
|
||||
|
||||
def main_handler(event, context):
|
||||
l = []
|
||||
for config in config_list:
|
||||
p = threading.Thread(target=telecom_task, args=(config,))
|
||||
l.append(p)
|
||||
p.start()
|
||||
for i in l:
|
||||
i.join()
|
||||
content = format_msg()
|
||||
send('电信签到任务', content)
|
||||
print(content)
|
||||
return content
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main_handler("", "")
|
||||
Reference in New Issue
Block a user