mirror of
https://github.com/smallfawn/QLScriptPublic.git
synced 2025-12-17 07:18:25 +08:00
298 lines
12 KiB
Python
298 lines
12 KiB
Python
"""
|
||
57Box 1.10
|
||
仅供学习交流,请在下载后的24小时内完全删除 请勿将任何内容用于商业或非法目的,否则后果自负。
|
||
Author By Qim肖恩
|
||
Updated By Huansheng
|
||
更新说明:修复sign接口问题
|
||
玩法:
|
||
微信小程序 57Box 玩法:完成基础任务抽免费箱子
|
||
登录微信小程序授权手机号然后下载APP设置密码
|
||
export BOX_data=手机号@密码
|
||
多账号用'===='隔开 例 账号1====账号2
|
||
cron: 0 8 * * *
|
||
"""
|
||
|
||
import urllib3
|
||
|
||
urllib3.disable_warnings()
|
||
lottery = 1 # 抽鞋盒开关 1开启 0关闭
|
||
enabledTaskAndLottery = True
|
||
# 盲盒需要的矿石数量
|
||
lotteryBoxPrize = 80
|
||
# 进群密码
|
||
joinGroupPassword = "123456"
|
||
import os
|
||
import time
|
||
import requests
|
||
import datetime
|
||
import hashlib
|
||
|
||
|
||
def getSign(userId):
|
||
def getDate():
|
||
e = datetime.datetime.now()
|
||
a = e.year
|
||
t = e.month
|
||
l = e.day
|
||
n = e.weekday()
|
||
o = e.hour
|
||
i = e.minute
|
||
s = e.second
|
||
c = int(e.timestamp())
|
||
r = str(e)
|
||
return {
|
||
"year": a,
|
||
"month": t,
|
||
"date": l,
|
||
"hours": o,
|
||
"minute": i,
|
||
"second": s,
|
||
"day": n,
|
||
"timeStamp": c,
|
||
"dateDateTime": r,
|
||
"dates": r.split(" ")[0].replace("/", "-"),
|
||
}
|
||
|
||
s = getDate()
|
||
c = s["year"]
|
||
r = s["month"]
|
||
u = s["date"]
|
||
d = s["hours"]
|
||
m = s["minute"]
|
||
v = str(c) + "-" + str(r) + "-" + str(u) + " " + str(d) + ":" + str(m)
|
||
currentTime = int(datetime.datetime.strptime(v, "%Y-%m-%d %H:%M").timestamp())
|
||
return hashlib.md5((str(currentTime) + userId + "box57").encode()).hexdigest()
|
||
|
||
|
||
# from dotenv import load_dotenv
|
||
#
|
||
# load_dotenv()
|
||
accounts = os.getenv("BOX_data")
|
||
print(
|
||
"原作者肖恩公告:" + requests.get("http://1.94.61.34:50/index.txt").content.decode("utf-8")
|
||
)
|
||
if accounts is None:
|
||
print("你没有填入BOX_data,咋运行?")
|
||
exit()
|
||
accounts_list = accounts.split("====")
|
||
num_of_accounts = len(accounts_list)
|
||
print(f"获取到 {num_of_accounts} 个账号")
|
||
for i, account in enumerate(accounts_list, start=1):
|
||
values = account.split("@")
|
||
if len(values) == 2:
|
||
mobile, password = values[0], values[1]
|
||
else:
|
||
print(f"\n{'=' * 8}第【{i}】个账号数据有误,请检查!该数据为:{account}")
|
||
continue
|
||
print(f"\n{'=' * 8}开始执行第【{i}】个账号[{mobile}]{'=' * 8}")
|
||
url = "https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=login&m=greatriver_lottery_operation"
|
||
headers = {
|
||
"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/47) uni-app",
|
||
}
|
||
|
||
data = {
|
||
"mobile": mobile,
|
||
"password": password,
|
||
"password2": "",
|
||
"code": "",
|
||
"invite_uid": "0",
|
||
"source": "app",
|
||
}
|
||
|
||
response = requests.post(url, headers=headers, data=data).json()
|
||
if response["errno"] == 0:
|
||
# print(f"{response['data']}")
|
||
print(f"{response['message']}")
|
||
token = response["data"]["token"]
|
||
print(f"{'=' * 12}获取账号信息{'=' * 12}")
|
||
url = f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=getuserinfo&&token={token}"
|
||
data = {
|
||
"m": "greatriver_lottery_operation",
|
||
"title": "",
|
||
}
|
||
response = requests.post(url, headers=headers, data=data).json()
|
||
if response["errno"] == 999:
|
||
print(f"{response['message']}")
|
||
elif response["errno"] == 0:
|
||
userId = response["data"]["id"]
|
||
money = response["data"]["money"]
|
||
nickname = response["data"]["nickname"]
|
||
integral_str = response["data"]["integral"]
|
||
try:
|
||
integral = int(float(integral_str))
|
||
print(f"Name:{nickname}---矿石余额:{integral}---水晶余额:{money}")
|
||
except ValueError:
|
||
print(f"无效的integral值: {integral_str}")
|
||
else:
|
||
print(f"错误未知{response}")
|
||
break
|
||
if enabledTaskAndLottery:
|
||
print(f"{'=' * 12}开始每日任务{'=' * 12}")
|
||
sign = getSign(userId)
|
||
time.sleep(3)
|
||
# 进群密码
|
||
answerText = joinGroupPassword
|
||
response = requests.get(
|
||
f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=uptaskinfo&m=greatriver_lottery_operation&radomstr={sign}&id=26&answer={answerText}&token={token}&source=app",
|
||
headers=headers,
|
||
).json()
|
||
state = "进群密码"
|
||
if response["errno"] == 999:
|
||
print(f"{state}---{response['message']}")
|
||
elif response["errno"] == 0:
|
||
print(f"{state}---{response['message']}")
|
||
else:
|
||
print(f"{state}错误未知{response}")
|
||
break
|
||
time.sleep(3)
|
||
response = requests.get(
|
||
f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=uptaskinfo&m=greatriver_lottery_operation&radomstr={sign}&id=30&answer=%E7%94%A8%E4%BA%8E%E5%95%86%E5%9F%8E%E5%92%8C%E6%8A%98%E6%89%A3%E5%95%86%E5%9F%8E%E5%85%91%E6%8D%A2%E5%95%86%E5%93%81&token={token}&source=app",
|
||
headers=headers,
|
||
).json()
|
||
state = "每日答题(二)"
|
||
if response["errno"] == 999:
|
||
print(f"{state}---{response['message']}")
|
||
elif response["errno"] == 0:
|
||
print(f"{state}---{response['message']}")
|
||
else:
|
||
print(f"{state}错误未知{response}")
|
||
break
|
||
time.sleep(3)
|
||
response = requests.get(
|
||
f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=uptaskinfo&m=greatriver_lottery_operation&radomstr={sign}&id=42&answer=%E9%80%9A%E8%BF%87%E5%BC%80%E7%9B%92%E8%8E%B7%E5%BE%97%E6%AF%8F1000%E8%83%BD%E9%87%8F%E7%9F%B3%E5%8F%AF%E4%BB%A5%E5%85%91%E6%8D%A21%E6%B0%B4%E6%99%B6&token={token}&source=app",
|
||
headers=headers,
|
||
).json()
|
||
state = "每日答题领福利(一)"
|
||
if response["errno"] == 999:
|
||
print(f"{state}---{response['message']}")
|
||
elif response["errno"] == 0:
|
||
print(f"{state}---{response['message']}")
|
||
else:
|
||
print(f"{state}错误未知{response}")
|
||
break
|
||
print(f"{'=' * 12}获取账号信息{'=' * 12}")
|
||
url = f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=getuserinfo&&token={token}"
|
||
data = {
|
||
"m": "greatriver_lottery_operation",
|
||
"title": "",
|
||
}
|
||
response = requests.post(url, headers=headers, data=data).json()
|
||
if response["errno"] == 999:
|
||
print(f"{response['message']}")
|
||
elif response["errno"] == 0:
|
||
# print("response:", response)
|
||
money = response["data"]["money"]
|
||
nickname = response["data"]["nickname"]
|
||
integral_str = response["data"]["integral"]
|
||
try:
|
||
integral = int(float(integral_str))
|
||
print(f"Name:{nickname}---矿石余额:{integral}---水晶余额:{money}")
|
||
except ValueError:
|
||
print(f"无效的integral值: {integral_str}")
|
||
else:
|
||
print(f"错误未知{response}")
|
||
break
|
||
if lottery == 1: # 开始抽奖
|
||
print(f"{'=' * 12}执行开鞋盒{'=' * 12}")
|
||
num = integral // lotteryBoxPrize
|
||
for i in range(num):
|
||
url = "https://www.57box.cn/app/index.php"
|
||
params = {
|
||
"i": "2",
|
||
"t": "0",
|
||
"v": "1",
|
||
"from": "wxapp",
|
||
"c": "entry",
|
||
"a": "wxapp",
|
||
"do": "openthebox",
|
||
"token": token,
|
||
"m": "greatriver_lottery_operation",
|
||
"box_id": "586",
|
||
"paytype": "1",
|
||
"answer": "",
|
||
"num": 1,
|
||
}
|
||
res = requests.post(url, headers=headers, data=params)
|
||
response = res.json()
|
||
if len(response["data"]["prizes_data"]):
|
||
print(
|
||
f"第{str(i)}次开盲盒结果:",
|
||
response["message"],
|
||
response["data"]["prizes_data"][0]["complete_prize_title"],
|
||
)
|
||
else:
|
||
print(f"第{str(i)}次开盲盒结果:", response["data"]["message"])
|
||
if response["errno"] == 0:
|
||
complete_prize_title = response["data"]["prizes_data"][0][
|
||
"complete_prize_title"
|
||
]
|
||
prize_market_price = response["data"]["prizes_data"][0][
|
||
"prize_market_price"
|
||
]
|
||
print(
|
||
f"{response['message']}---{complete_prize_title} 市场价:{prize_market_price}"
|
||
)
|
||
elif response["errno"] == 999:
|
||
print(f"{response['message']}")
|
||
else:
|
||
print(f"错误未知{response}")
|
||
break
|
||
print(f"开盲盒操作执行完毕")
|
||
if num >= 1:
|
||
url = f"https://www.57box.cn/app/index.php?i=2&t=0&v=1&from=wxapp&c=entry&a=wxapp&do=uptaskinfo&&token={token}"
|
||
data = {
|
||
"m": "greatriver_lottery_operation",
|
||
"id": "39",
|
||
"answer": "",
|
||
}
|
||
response = requests.post(url, headers=headers, data=data).json()
|
||
state = "开盒看视频领矿石"
|
||
if response["errno"] == 999:
|
||
print(f"{state}---{response['message']}")
|
||
elif response["errno"] == 0:
|
||
print(f"{state}---{response['message']}")
|
||
else:
|
||
print(f"{state}错误未知{response}")
|
||
break
|
||
else:
|
||
print()
|
||
|
||
elif lottery == 0:
|
||
print(f"{'=' * 12}不执行开鞋盒{'=' * 12}")
|
||
|
||
# 查询奖品列表
|
||
url = "https://www.57box.cn/app/index.php"
|
||
|
||
params = {
|
||
"i": "2",
|
||
"t": "0",
|
||
"v": "1",
|
||
"from": "wxapp",
|
||
"c": "entry",
|
||
"a": "wxapp",
|
||
"do": "getmemberprizes",
|
||
"token": token,
|
||
"m": "greatriver_lottery_operation",
|
||
"page": "0",
|
||
"type": "1",
|
||
"prize_level": "1",
|
||
}
|
||
|
||
response = requests.get(url, headers=headers, params=params).json()
|
||
|
||
all_prizes = response["data"]
|
||
accountTotalPrize = 0
|
||
for prize in all_prizes:
|
||
prize_market_price = prize["prize"]["prize_market_price"]
|
||
prize_title = prize["prize"]["complete_prize_title"]
|
||
prizes_count = prize["prizes_count"]
|
||
print(f"{prize_title} 数量:x{prizes_count} 单价:{prize_market_price}")
|
||
accountTotalPrize = accountTotalPrize + float(prize_market_price) * int(
|
||
prizes_count
|
||
)
|
||
print(f"奖品总价:{accountTotalPrize}")
|
||
elif response["errno"] == 999:
|
||
print(f"{response['message']}")
|
||
else:
|
||
print(f"错误未知{response}")
|