345 lines
15 KiB
Python
345 lines
15 KiB
Python
# Source: https://github.com/xfmeng970526/ql/blob/main/xsgjz.py
|
||
# Raw: https://raw.githubusercontent.com/xfmeng970526/ql/main/xsgjz.py
|
||
# Repo: xfmeng970526/ql
|
||
# Path: xsgjz.py
|
||
# UploadedAt: 2023-09-20T12:13:28+08:00
|
||
# SHA256: 22259ffaf306b5014daacf34cd5b01ffd38728cee07678abdc66b9fbc1bb9b1a
|
||
# Category: web版/账密
|
||
# Evidence: web/H5关键词 + username/password/login
|
||
|
||
#变量xsgCookie,抓取小时工记账的authorization变量
|
||
#定时调成5 6-18/6 * * *
|
||
cron: 5 6-18/6 * * *
|
||
new Env('68-小时工记账');
|
||
项目名称:小时工记账
|
||
from cgitb import text
|
||
import json
|
||
import time
|
||
import requests as r
|
||
import requests
|
||
import re
|
||
import json
|
||
import os
|
||
|
||
#获取名字链接
|
||
mzurl = "https://xsg-api.julanling.com/app/user/info"
|
||
#获取金币数量链接
|
||
jburl = "https://xsg-api.julanling.com/h5/api/activityThirdAccount/coin/getAccount"
|
||
#签到链接
|
||
signurl = "https://market-gateway.julanling.com/market-center/api2/signIn/signIn"
|
||
#转盘链接
|
||
zpurl = "https://market-gateway.julanling.com/market-center/api2/dial/luckyDraw"
|
||
#转盘金币领奖链接
|
||
zpljurl = "https://market-gateway.julanling.com/market-center/api2/dial/receiveDialCoin"
|
||
#转盘宝箱领奖链接
|
||
zpbxurl = "https://market-gateway.julanling.com/market-center/api2/dial/openBox"
|
||
#转盘双倍卡链接
|
||
zpsburl = "https://market-gateway.julanling.com/market-center/api2/dial/receiveDoubleCardBag"
|
||
#获取宝箱状态
|
||
bxzturl= "https://market-gateway.julanling.com/market-center/api2/dial/detailCore?appVersion=4.4.20"
|
||
#刷新扭蛋状态
|
||
ndsxurl = "https://market-gateway.julanling.com/market-center/api2/gacha/index?os=ANDROID&appVersion=4.4.20"
|
||
#扭蛋链接
|
||
ndurl = "https://market-gateway.julanling.com/market-center/api2/gacha/luckyDraw"
|
||
#扭蛋广告链接
|
||
ndadurl = "https://market-gateway.julanling.com/market-center/api2/gacha/finishGachaTask"
|
||
#7次广告链接
|
||
qiadurl = "https://market-gateway.julanling.com/market-center/api2/assignment/finishAssignment"
|
||
|
||
|
||
|
||
if os.environ.get("xsgCookie"):
|
||
dvm = os.environ["xsgCookie"]
|
||
if dvm != '':
|
||
if "@" in dvm:
|
||
Coo = dvm.split("@")
|
||
elif "&" in dvm:
|
||
Coo = dvm.split('&')
|
||
else:
|
||
Coo = dvm.split('\n')
|
||
adv=1
|
||
for i in Coo:
|
||
headers = {
|
||
"security": "cD1jb20uanVsYW5nbGluZy54c2dqeiZjPXhzZ2p6X3lpbmd5b25nYmFvJnY9NC40LjIwJmQ9MzU1MWU0MDFiYjQ0MWVlY2JiNDU5ZjkwMDE1MzJlMzEmdT1ZN2wyVitQNWdOd0RBRFZjR0huQ2VzbXAmdD0xNjczMDk4OTY5.7e9e9d0818df515f6a384d9d5debde40",
|
||
"authorization": i,
|
||
"user-agent": 'Mozilla/5.0 (Linux; Android 11; M2012K11AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.105 Mobile Safari/537.36;_android{"version":4420,"versionName":"4.4.20","userType":"1","sdkVersion":"30","statusBarHeight":29,"toolBarHeight":73,"imei":"","oaid":"ad58bc17b41a81c7","channel":"xsgjz_yingyongbao","uid":10522}_android',
|
||
"content-type": "application/json;charset=UTF-8"
|
||
}
|
||
print(f'登录第{adv}个账号')
|
||
adv=adv+1
|
||
|
||
#登录验证
|
||
resp = r.post(mzurl, headers=headers)
|
||
xx = json.loads(resp.text)
|
||
if xx["results"] == "null":
|
||
print("登录失败,请重新获取Authorization")
|
||
continue
|
||
else:
|
||
print("用户ID:"+xx["results"]["nickname"])
|
||
|
||
#获取金币数量
|
||
jb = r.post(jburl, headers=headers)
|
||
xb = json.loads(jb.text)
|
||
if xb["results"] == "null":
|
||
print("获取金币失败,请检测Authorization是否可用")
|
||
else:
|
||
print("目前金币数量:"+str(xb["results"]["credits"]))
|
||
print("可提现:"+str(xb["results"]["aboutAmount"]))
|
||
print("今日赚取金币数量:"+str(xb["results"]["currentCredits"]))
|
||
|
||
time.sleep(2)
|
||
|
||
#签到
|
||
qdbody = {"os":"ANDROID","appVersion":"4.4.20","appChannel":"xsgjz_yingyongbao","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9"}
|
||
qd = r.post(signurl, headers=headers, json=qdbody)
|
||
qdd = json.loads(qd.text)
|
||
print("开始签到")
|
||
if qdd["errorCode"] == 0:
|
||
print("签到成功获取金币:"+str(qdd["results"]["amount"]))
|
||
else:
|
||
print("签到失败原因:"+str(qdd["errorStr"]))
|
||
|
||
time.sleep(2)
|
||
|
||
#转转盘
|
||
nc=1
|
||
zzpyz = r.get(bxzturl, headers=headers)
|
||
zptz = json.loads(zzpyz.text)
|
||
zpsycs = str(zptz["results"]["dialValidNum"])
|
||
print("转盘剩余次数"+zpsycs)
|
||
zpsycs=int(zpsycs)
|
||
for o in range(zpsycs):
|
||
print("开始第"+str(nc)+"次转盘")
|
||
time.sleep(3)
|
||
nc=nc+1
|
||
body = {"appChannel":"xsgjz_yingyongbao","appVersion":"4.4.20","appPackage":"com.julangling.xsgjz","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","operatingSystem":"ANDROID"}
|
||
zp = r.post(zpurl, headers=headers,json=body)
|
||
zpp = json.loads(zp.text)
|
||
if zpp["errorCode"] == 0:
|
||
if zpp["results"]["awardType"] == "GOLD":
|
||
biz = zpp["results"]["bizNo"]
|
||
zpbody = {
|
||
"bizNo":biz,
|
||
"appChannel":"xsgjz_yingyongbao",
|
||
"appVersion":"4.4.20",
|
||
"appPackage":"com.julangling.xsgjz",
|
||
"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9",
|
||
"operatingSystem":"ANDROID"
|
||
}
|
||
time.sleep(3)
|
||
lj = r.post(zpljurl, headers=headers,json=zpbody)
|
||
ljj = json.loads(lj.text)
|
||
print("抽到金币"+str(ljj["results"]["amount"]))
|
||
|
||
elif zpp["results"]["awardType"] == "DOUBLE_VIDEO":
|
||
print("抽到双倍卡,需要观看广告")
|
||
biz = zpp["results"]["bizNo"]
|
||
zpbody = {
|
||
"bizNo":biz,
|
||
"appChannel":"xsgjz_yingyongbao",
|
||
"appVersion":"4.4.20",
|
||
"appPackage":"com.julangling.xsgjz",
|
||
"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9",
|
||
"operatingSystem":"ANDROID"
|
||
}
|
||
time.sleep(3)
|
||
sb = r.post(zpsburl, headers=headers,json=zpbody)
|
||
sbb = json.loads(sb.text)
|
||
print("观看成功剩余翻倍奖励次数"+str(sbb["results"]["dialCardBag"]["DOUBLE"]))
|
||
|
||
print("转盘结束,查看可领取那些宝箱")
|
||
#转盘5次宝箱奖励body
|
||
bx1={"businessType":"XSG_BOX_ONE","appChannel":"xsgjz_yingyongbao","appVersion":"4.4.20","appPackage":"com.julangling.xsgjz","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","operatingSystem":"ANDROID"}
|
||
#转盘18次宝箱奖励body
|
||
bx2={"businessType":"XSG_BOX_TWO","appChannel":"xsgjz_yingyongbao","appVersion":"4.4.20","appPackage":"com.julangling.xsgjz","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","operatingSystem":"ANDROID"}
|
||
#转盘30次宝箱奖励body
|
||
bx3={"businessType":"XSG_BOX_THREE","appChannel":"xsgjz_yingyongbao","appVersion":"4.4.20","appPackage":"com.julangling.xsgjz","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","operatingSystem":"ANDROID"}
|
||
#转盘55次宝箱奖励body
|
||
bx4={"businessType":"XSG_BOX_FOUR","appChannel":"xsgjz_yingyongbao","appVersion":"4.4.20","appPackage":"com.julangling.xsgjz","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","operatingSystem":"ANDROID"}
|
||
|
||
#转盘宝箱领取
|
||
time.sleep(3)
|
||
print("开始领转盘5次箱子奖励")
|
||
zpbx1 = r.post(zpbxurl, headers=headers,json=bx1)
|
||
bxx1 = json.loads(zpbx1.text)
|
||
if bxx1["errorCode"] == 0:
|
||
results = bxx1['results']
|
||
openBoxAwards = results['openBoxAwards']
|
||
bx1jb = openBoxAwards[0]['amount']
|
||
print("领取成功获得"+str(bx1jb)+"金币")
|
||
else:
|
||
print("领取失败,原因:"+str(bxx1["errorStr"]))
|
||
time.sleep(3)
|
||
|
||
time.sleep(3)
|
||
print("开始领转盘18次箱子奖励")
|
||
zpbx2 = r.post(zpbxurl, headers=headers,json=bx2)
|
||
bxx2 = json.loads(zpbx2.text)
|
||
if bxx2["errorCode"] == 0:
|
||
results2 = bxx2['results']
|
||
openBoxAwards2 = results2['openBoxAwards']
|
||
bx2jb = openBoxAwards2[0]['amount']
|
||
print("领取成功获得"+str(bx2jb)+"金币")
|
||
bxbizNo2 = bxx2['results']['openBoxAwards'][1]['bizNo']
|
||
print("领取箱子双倍卡,需要观看广告")
|
||
zpbody = {
|
||
"bizNo":bxbizNo2,
|
||
"appChannel":"xsgjz_yingyongbao",
|
||
"appVersion":"4.4.20",
|
||
"appPackage":"com.julangling.xsgjz",
|
||
"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9",
|
||
"operatingSystem":"ANDROID"
|
||
}
|
||
time.sleep(3)
|
||
sb = r.post(zpsburl, headers=headers,json=zpbody)
|
||
sbb = json.loads(sb.text)
|
||
print("观看成功剩余翻倍奖励次数"+str(sbb["results"]["dialCardBag"]["DOUBLE"]))
|
||
del bxx2
|
||
del results2
|
||
del openBoxAwards2
|
||
del bx2jb
|
||
del bxbizNo2
|
||
del sb
|
||
del sbb
|
||
else:
|
||
print("领取失败,原因:"+str(bxx2["errorStr"]))
|
||
time.sleep(3)
|
||
|
||
|
||
time.sleep(5)
|
||
print("开始领转盘30次箱子奖励")
|
||
zpbx3 = r.post(zpbxurl, headers=headers,json=bx3)
|
||
bxx3 = json.loads(zpbx3.text)
|
||
if bxx3["errorCode"] == 0:
|
||
results3 = bxx3['results']
|
||
openBoxAwards3 = results3['openBoxAwards']
|
||
bx3jb = openBoxAwards3[0]['amount']
|
||
print("领取成功获得"+str(bx3jb)+"金币")
|
||
bxbizNo3 = bxx3['results']['openBoxAwards'][1]['bizNo']
|
||
print("领取箱子双倍卡,需要观看广告")
|
||
zpbody = {
|
||
"bizNo":bxbizNo3,
|
||
"appChannel":"xsgjz_yingyongbao",
|
||
"appVersion":"4.4.20",
|
||
"appPackage":"com.julangling.xsgjz",
|
||
"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9",
|
||
"operatingSystem":"ANDROID"
|
||
}
|
||
time.sleep(3)
|
||
sb = r.post(zpsburl, headers=headers,json=zpbody)
|
||
sbb = json.loads(sb.text)
|
||
print("观看成功剩余翻倍奖励次数"+str(sbb["results"]["dialCardBag"]["DOUBLE"]))
|
||
del bxx3
|
||
del results3
|
||
del openBoxAwards3
|
||
del bx3jb
|
||
del bxbizNo3
|
||
del sb
|
||
del sbb
|
||
else:
|
||
print("领取失败,原因:"+str(bxx3["errorStr"]))
|
||
time.sleep(3)
|
||
|
||
|
||
|
||
time.sleep(3)
|
||
print("开始领转盘55次箱子奖励")
|
||
zpbx4 = r.post(zpbxurl, headers=headers,json=bx4)
|
||
bxx4 = json.loads(zpbx4.text)
|
||
if bxx4["errorCode"] == 0:
|
||
results4 = bxx4['results']
|
||
openBoxAwards4 = results4['openBoxAwards']
|
||
bx4jb = openBoxAwards4[0]['amount']
|
||
print("领取成功获得"+str(bx4jb)+"金币")
|
||
bxbizNo4 = bxx4['results']['openBoxAwards'][1]['bizNo']
|
||
print("领取箱子双倍卡,需要观看广告")
|
||
zpbody = {
|
||
"bizNo":bxbizNo4,
|
||
"appChannel":"xsgjz_yingyongbao",
|
||
"appVersion":"4.4.20",
|
||
"appPackage":"com.julangling.xsgjz",
|
||
"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9",
|
||
"operatingSystem":"ANDROID"
|
||
}
|
||
time.sleep(3)
|
||
sb = r.post(zpsburl, headers=headers,json=zpbody)
|
||
sbb = json.loads(sb.text)
|
||
print("观看成功剩余翻倍奖励次数"+str(sbb["results"]["dialCardBag"]["DOUBLE"]))
|
||
del bxx4
|
||
del results4
|
||
del openBoxAwards4
|
||
del bx4jb
|
||
del bxbizNo4
|
||
del sb
|
||
del sbb
|
||
else:
|
||
print("领取失败,原因:"+str(bxx4["errorStr"]))
|
||
time.sleep(3)
|
||
|
||
|
||
|
||
#扭蛋
|
||
vc=1
|
||
bc=1
|
||
#先刷新扭蛋列表
|
||
ndsx = r.get(ndsxurl, headers=headers)
|
||
ndsxx = json.loads(ndsx.text)
|
||
#判断扭蛋广告可观看次数
|
||
ndadcs= ndsxx["results"]["remainVideoTimes"]
|
||
print("扭蛋广告剩余次数"+str(ndadcs))
|
||
#观看扭蛋广告
|
||
for o in range(ndadcs):
|
||
print("开始第"+str(bc)+"次观看扭蛋广告")
|
||
bc=bc+1
|
||
time.sleep(3)
|
||
ndadbody={"businessType":"XSG_DAILY_GACHA_INC_VIDEOS","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","version":"4.4.20","os":"ANDROID","appVersion":"4.4.20","appChannel":"unknow"}
|
||
ndad = r.post(ndadurl, headers=headers,json=ndadbody)
|
||
nddad = json.loads(ndad.text)
|
||
if nddad['errorCode'] == 0:
|
||
print("获得"+str(nddad["results"]["amount"])+"次抽奖次数")
|
||
print("目前有"+str(nddad["results"]["remainTimes"])+"次抽奖次数")
|
||
time.sleep(3)
|
||
else:
|
||
print("扭蛋失败原因"+nddad['errorStr'])
|
||
|
||
|
||
ndsx = r.get(ndsxurl, headers=headers)
|
||
ndsxx = json.loads(ndsx.text)
|
||
#判断扭蛋次数
|
||
ndsycs = ndsxx["results"]["remainTimes"]
|
||
print("扭蛋剩余次数"+str(ndsycs))
|
||
#开始扭蛋
|
||
for o in range(ndsycs):
|
||
print("开始第"+str(vc)+"次扭蛋")
|
||
vc=vc+1
|
||
time.sleep(3)
|
||
ndbody={"deviceToken":"19a9e4453155dcbc348f5fbff0c075c9","version":"4.4.20","os":"ANDROID","appVersion":"4.4.20","appChannel":"unknow"}
|
||
nd = r.post(ndurl, headers=headers,json=ndbody)
|
||
ndd = json.loads(nd.text)
|
||
if ndd['errorCode'] == 0:
|
||
if ndd["results"]["awardType"] == 'ADVERT':
|
||
print("抽到了空气广告")
|
||
else:
|
||
print("抽到"+str(ndd["results"]["name"]))
|
||
else:
|
||
print("扭蛋失败原因"+ndd['errorStr'])
|
||
|
||
time.sleep(3)
|
||
#看广告7次
|
||
for c in range(7):
|
||
qiadbody={"businessType":"XSG_MONEY_CENTER_INCENTIVE_VIDEO","os":"ANDROID","appVersion":"4.4.20","appChannel":"xsgjz_yingyongbao","deviceToken":"19a9e4453155dcbc348f5fbff0c075c9"}
|
||
adws = r.post(qiadurl, headers=headers,json=qiadbody)
|
||
adwss = json.loads(adws.text)
|
||
if adwss['errorCode'] == 0:
|
||
adwssjb = adwss["results"]["awardInfos"]
|
||
adwssjbb = adwssjb[0]['amount']
|
||
print("获得金币"+str(adwssjbb)+"个")
|
||
print("等待20秒,才可以观看广告")
|
||
time.sleep(21)
|
||
else:
|
||
|
||
break
|
||
|
||
|
||
|