Create 57Box.py

This commit is contained in:
To be rich
2023-11-05 11:07:14 +08:00
committed by GitHub
parent 584944eb6d
commit b4707f84b2

297
57Box.py Normal file
View File

@@ -0,0 +1,297 @@
"""
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}")