微博超话签到★百度贴吧签到★小米运动刷步数★恩山签到★雨云签到白嫖服务器★小茅预约★丽宝乐园小程序签到★天翼云盘签到★腾讯视频签到(会员领成长值)★阿里云盘签到★GW树洞机场签到★富贵论坛签到★一点万向签到打卡★什么值得买达人和关键词取消关注★STLXZ签到★PT站签到★帆软签到+摇摇乐★千图网签到★星空代理签到★什么值得买签到★值得买每日抽奖★小米社区签到★逑美在线app签到和抽卡★ddnsto自动续费七天★爱奇艺签到刷时长★双色球预测(娱乐)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

325 lines
11 KiB

#!/usr/bin/python3
# -- coding: utf-8 --
# -------------------------------
# @Time : 2023/2/27 13:23
# -------------------------------
# cron "30 7,10 * * *" script-path=xxx.py,tag=匹配cron用
# const $ = new Env('爱奇艺签到')
import requests, random, string, hashlib, time, json,os
from json import dumps
#爱奇艺cookie
P00001 = os.getenv("P00001")
P00003 = os.getenv("P00003")
dfp = os.getenv("dfp")
# 推送加
plustoken = os.getenv("plustoken")
#推送函数
def Push(contents):
# 推送加
headers = {'Content-Type': 'application/json'}
json = {"token": plustoken, 'title': '爱奇艺签到', 'content': contents.replace('\n', '<br>'), "template": "json"}
resp = requests.post(f'http://www.pushplus.plus/send', json=json, headers=headers).json()
print('push+推送成功' if resp['code'] == 200 else 'push+推送失败')
# 任务列表
tasks = []
# 随机字符串 a-z A-Z 0-9
def strRandom(num):
return ''.join(random.sample(string.ascii_letters + string.digits, num))
# md5加密
def md5(data):
return hashlib.md5(bytes(data, encoding='utf-8')).hexdigest()
# 13位时间戳
def time_13():
return round(time.time() * 1000)
# 拼接 连接符 数据 特殊符号(可不填)
def k(c, t, e=None):
buf = []
for key, value in t.items():
buf.append('='.join([key, str(value)]))
if e != None:
buf.append(e)
return (md5(c.join(buf)))
return (c.join(buf))
# 登录
def login():
global title
url = "https://serv.vip.iqiyi.com/vipgrowth/query.action?P00001=" + P00001
res = requests.get(url).json()
if res['code'] == 'A00000':
level = res['data']['level'] # VIP等级
growthvalue = res['data']['growthvalue'] # 当前VIP成长值
distance = res['data']['distance'] # 升级需要成长值
deadline = res['data']['deadline'] # VIP到期时间
today_growth_value = res['data']['todayGrowthValue'] # 今日获得的成长值
logbuf = (
f"VIP 等级: {level}\n当前成长值: {growthvalue}\n升级需成长值: {distance}\n今日成长值: {today_growth_value}\n当月成长值:{monthlyGrowthValue}\nVIP 到期时间: {deadline}")
title = f"爱奇艺签到:今日成长值+{today_growth_value},预计还需{int(distance / today_growth_value) + 1}天升级"
else:
logbuf = (res['msg'])
print(logbuf)
return logbuf
# 签到
def Checkin():
sign_date = {
"agentType": "1",
"agentversion": "1.0",
"appKey": "basic_pcw",
"authCookie": P00001,
"qyid": md5(strRandom(16)),
"task_code": "natural_month_sign",
"timestamp": time_13(),
"typeCode": "point",
"userId": P00003
}
post_date = {
"natural_month_sign": {
"agentType": "1",
"agentversion": "1",
"authCookie": P00001,
"qyid": md5(strRandom(16)),
"taskCode": "iQIYI_mofhr",
"verticalCode": "iQIYI"
}
}
sign = k('|', sign_date, "UKobMjDMsDoScuWOfp6F")
url = f"https://community.iqiyi.com/openApi/task/execute?{k('&', sign_date)}&sign={sign}"
header = {
'Content-Type': 'application/json'
}
res = requests.post(url, headers=header, data=dumps(post_date)).json()
if res['code'] == 'A00000':
if res['data']['code'] == 'A0000':
quantity = res['data']['data']['rewards'][0]['rewardCount'] # 积分
addgrowthvalue = res['data']['data']['rewards'][1]['rewardCount'] # 新增成长值
continued = res['data']['data']['signDays'] # 签到天数
logbuf = (f"签到成功: 获得积分{quantity}, 成长值{addgrowthvalue},累计签到{continued}")
else:
logbuf = (f"签到失败:{res['data']['msg']}")
else:
logbuf = (f"签到失败:{res['message']}")
print(logbuf)
return logbuf
# 网页端签到任务
def WebCheckin():
web_sign_date = {
"agenttype": "1",
"agentversion": "0",
"appKey": "basic_pca",
"appver": "0",
"authCookie": P00001,
"channelCode": "sign_pcw",
"dfp": dfp,
"scoreType": "1",
"srcplatform": "1",
"typeCode": "point",
"userId": P00003,
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
"verticalCode": "iQIYI"
}
sign = k('|', web_sign_date, "DO58SzN6ip9nbJ4QkM8H")
url = f"https://community.iqiyi.com/openApi/score/add?{k('&', web_sign_date)}&sign={sign}"
res = requests.get(url).json()
if res['code'] == 'A00000':
if res['data'][0]['code'] == 'A0000':
quantity = res['data'][0]['score'] # 积分
continued = res['data'][0]['continuousValue'] # 累计签到天数
logbuf = (f"网页端签到成功: 获得积分{quantity}, 累计签到{continued}")
else:
logbuf = (f"网页端签到失败:{res['data'][0]['message']}")
else:
logbuf = (f"网页端签到失败:{res['message']}")
print(logbuf)
return logbuf
# 网页端访问热点首页任务
def Webtask():
web_sign_date = {
"agenttype": "1",
"agentversion": "0",
"appKey": "basic_pca",
"appver": "0",
"authCookie": P00001,
"channelCode": "paopao_pcw",
"dfp": dfp,
"scoreType": "1",
"srcplatform": "1",
"typeCode": "point",
"userId": P00003,
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
"verticalCode": "iQIYI"
}
sign = k('|', web_sign_date, "DO58SzN6ip9nbJ4QkM8H")
url = f"https://community.iqiyi.com/openApi/task/complete?{k('&', web_sign_date)}&sign={sign}"
res = requests.get(url).json()
if res['code'] == 'A00000':
logbuf = (f"网页端访问任务成功:{res['message']}")
print(logbuf)
# 领取奖励
url = f"https://community.iqiyi.com/openApi/score/getReward?{k('&', web_sign_date)}&sign={sign}"
res = requests.get(url).json()
print(res)
if res['code'] == 'A00000':
logbuf = (f"网页端访问任务成功:获得{res['data']['score']}积分")
else:
logbuf = (f"网页端访问任务失败:{res['message']}")
else:
logbuf = (f"网页端访问任务失败:{res['message']}")
print(logbuf)
return logbuf
# 抽奖
def Lottery():
url = f"https://iface2.iqiyi.com/aggregate/3.0/lottery_activity?app_k=0&app_v=0&platform_id=0&dev_os=0&dev_ua=0&net_sts=0&qyid=0&psp_uid=0&psp_cki={P00001}&psp_status=0&secure_p=0&secure_v=0&req_sn=0"
res = requests.get(url).json()
if res['code'] == 0:
try:
logbuf = (f"抽奖失败:{res['kv']['msg']}")
except:
logbuf = (f"抽奖成功:{res['title']}-{res['awardName']},剩余抽奖次数{res['daysurpluschance']}")
print(logbuf)
return [int(res['daysurpluschance']), logbuf]
elif res['code'] == 3:
logbuf = ("抽奖失败:Cookie失效")
else:
logbuf = ("抽奖失败:未知错误")
print(logbuf)
return [0, logbuf]
# 任务
# 获取任务列表及状态 0:待领取 1:已完成 2:未开始 4:进行中
def query_user_task():
global tasks, monthlyGrowthValue
url = "https://tc.vip.iqiyi.com/taskCenter/task/queryUserTask"
params = {"P00001": P00001}
res = requests.get(url=url, params=params).json()
if res['code'] == "A00000":
monthlyGrowthValue = res['data']['monthlyGrowthReward']
tasks.clear()
for taskgroup in ['actively', 'daily']: # in res['data']['tasks']:
for item in res['data']['tasks'][taskgroup]:
tasks.append({"name": item['name'], "taskCode": item['taskCode'], "status": item['status']})
else:
print(f"获取任务列表失败:{res['msg']}")
def joinTask(taskCode):
url = f"https://tc.vip.iqiyi.com/taskCenter/task/joinTask?taskCode={taskCode}&lang=zh_CN&platform=0000000000000000&P00001={P00001}"
res = requests.get(url).json()
if res['code'] == 'A00000':
return [True]
else:
return [False, res['msg']]
def notifyTask(taskCode):
url = f"https://tc.vip.iqiyi.com/taskCenter/task/notify?taskCode={taskCode}&lang=zh_CN&platform=0000000000000000&P00001={P00001}"
requests.get(url)
def getTaskRewards(taskCode):
url = f"https://tc.vip.iqiyi.com/taskCenter/task/getTaskRewards?taskCode={taskCode}&lang=zh_CN&platform=0000000000000000&P00001={P00001}"
res = requests.get(url).json()
if res['msg'] == "成功":
if res['code'] == 'A00000':
if res['dataNew'] != []:
logbuf = (f"{res['dataNew'][0]['name']} {res['dataNew'][0]['value']}")
else:
logbuf = "可能未完成"
else:
logbuf = (f"{res['msg']}")
else:
logbuf = ("cookie无效/接口失效")
return logbuf
def perform_task():
luckbuf = []
query_user_task() # 获取任务列表
for task in tasks:
if task['status'] == 2:
result = joinTask(task['taskCode'])
if result[0]:
notifyTask(task['taskCode'])
logbuf = f"开始{task['name']}任务"
else:
logbuf = f"{task['name']}任务:{result[1]}"
print(logbuf)
luckbuf.append(logbuf)
time.sleep(1)
time.sleep(10)
query_user_task() # 重新获取任务列表
for task in tasks:
if task['status'] == 0:
logbuf = f"{task['name']}任务已完成:{getTaskRewards(task['taskCode'])}"
print(logbuf)
luckbuf.append(logbuf)
time.sleep(1)
if task['status'] == 4:
logbuf = f"{task['name']}任务正在进行中,需要手动完成"
print(logbuf)
luckbuf.append(logbuf)
return ("\n".join(luckbuf))
# 主程序
def main():
log = []
startime = time_13()
log.append(Checkin()) # 签到
time.sleep(1)
log.append(WebCheckin()) # 网页端签到
time.sleep(1)
log.append(Webtask()) # 网页端访问热点首页
time.sleep(1)
while True:
lucknum = Lottery() # 抽奖
if lucknum[0] != 0:
log.append(lucknum[1])
time.sleep(2)
else:
log.append(lucknum[1])
break
log.append(perform_task()) # 做任务
log.insert(0, login()) # 登录信息
endtime = time_13()
duration = (endtime - startime) / 1000
logbuf = f"共耗时{duration}"
print(logbuf)
log.append(logbuf)
print("***END***")
Push(contents="\n".join(log)) #推送到微信
return (title)
def main_handler(event, context):
return main()
if __name__ == '__main__':
main()