mirror of
https://github.com/TDSCDMAA/AutoMihoyoBBS.git
synced 2026-06-02 18:43:42 +08:00
Merge fffa6a4dc0 into 32367a5b20
This commit is contained in:
commit
11049de73b
63
genshin.py
63
genshin.py
@ -13,10 +13,10 @@ from account import get_account_list
|
||||
class Genshin:
|
||||
def __init__(self) -> None:
|
||||
self.headers = {}
|
||||
self.headers.update(setting.headers)
|
||||
self.headers.update(setting.headersys)
|
||||
self.headers['DS'] = tools.get_ds(web=True)
|
||||
self.headers['Referer'] = 'https://webstatic.mihoyo.com/bbs/event/signin-ys/index.html?bbs_auth_required=true' \
|
||||
f'&act_id={setting.genshin_Act_id}&utm_source=bbs&utm_medium=mys&utm_campaign=icon'
|
||||
self.headers['Referer'] = "https://act.mihoyo.com/"
|
||||
self.headers['Origin'] = "https://act.mihoyo.com"
|
||||
self.headers['Cookie'] = config.config["account"]["cookie"]
|
||||
self.headers['x-rpc-device_id'] = tools.get_device_id()
|
||||
self.headers['User-Agent'] = tools.get_useragent()
|
||||
@ -47,12 +47,10 @@ class Genshin:
|
||||
return data["data"]
|
||||
|
||||
def check_in(self, account):
|
||||
header = {}
|
||||
header.update(self.headers)
|
||||
for i in range(4):
|
||||
if i != 0:
|
||||
log.info(f'触发验证码,即将进行第{i}次重试,最多3次')
|
||||
req = http.post(url=setting.genshin_Signurl, headers=header,
|
||||
req = http.post(setting.genshin_Signurl, headers=self.headers,
|
||||
json={'act_id': setting.genshin_Act_id, 'region': account[2], 'uid': account[1]})
|
||||
if req.status_code == 429:
|
||||
time.sleep(10) # 429同ip请求次数过多,尝试sleep10s进行解决
|
||||
@ -62,9 +60,9 @@ class Genshin:
|
||||
if data["retcode"] == 0 and data["data"]["success"] == 1:
|
||||
validate = captcha.game_captcha(data["data"]["gt"], data["data"]["challenge"])
|
||||
if validate is not None:
|
||||
header["x-rpc-challenge"] = data["data"]["challenge"]
|
||||
header["x-rpc-validate"] = validate
|
||||
header["x-rpc-seccode"] = f'{validate}|jordan'
|
||||
self.headers["x-rpc-challenge"] = data["data"]["challenge"]
|
||||
self.headers["x-rpc-validate"] = validate
|
||||
self.headers["x-rpc-seccode"] = f'{validate}|jordan'
|
||||
time.sleep(random.randint(6, 15))
|
||||
else:
|
||||
break
|
||||
@ -80,33 +78,30 @@ class Genshin:
|
||||
log.info(f"正在为旅行者{i[0]}进行签到...")
|
||||
time.sleep(random.randint(2, 8))
|
||||
is_data = self.is_sign(region=i[2], uid=i[1])
|
||||
if is_data["first_bind"]:
|
||||
log.warning(f"旅行者{i[0]}是第一次绑定米游社,请先手动签到一次")
|
||||
sign_days = is_data["total_sign_day"] - 1
|
||||
ok = True
|
||||
if is_data["is_sign"]:
|
||||
log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.checkin_rewards[sign_days])}")
|
||||
sign_days += 1
|
||||
else:
|
||||
sign_days = is_data["total_sign_day"] - 1
|
||||
ok = True
|
||||
if is_data["is_sign"]:
|
||||
log.info(f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.checkin_rewards[sign_days])}")
|
||||
sign_days += 1
|
||||
else:
|
||||
time.sleep(random.randint(2, 8))
|
||||
req = self.check_in(i)
|
||||
if req.status_code != 429:
|
||||
data = req.json()
|
||||
if data["retcode"] == 0 and data["data"]["success"] == 0:
|
||||
log.info(f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是"
|
||||
f"{tools.get_item(self.checkin_rewards[0 if sign_days == 0 else sign_days + 1])}")
|
||||
sign_days += 2
|
||||
elif data["retcode"] == -5003:
|
||||
log.info(
|
||||
f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.checkin_rewards[sign_days])}")
|
||||
else:
|
||||
s = "账号签到失败!"
|
||||
if data["data"] != "" and data.get("data").get("success", -1):
|
||||
s += "原因: 验证码\njson信息:" + req.text
|
||||
log.warning(s)
|
||||
ok = False
|
||||
time.sleep(random.randint(2, 8))
|
||||
req = self.check_in(i)
|
||||
if req.status_code != 429:
|
||||
data = req.json()
|
||||
if data["retcode"] == 0 and data["data"]["success"] == 0:
|
||||
log.info(f"旅行者{i[0]}签到成功~\r\n今天获得的奖励是"
|
||||
f"{tools.get_item(self.checkin_rewards[0 if sign_days == 0 else sign_days + 1])}")
|
||||
sign_days += 2
|
||||
elif data["retcode"] == -5003:
|
||||
log.info(
|
||||
f"旅行者{i[0]}今天已经签到过了~\r\n今天获得的奖励是{tools.get_item(self.checkin_rewards[sign_days])}")
|
||||
else:
|
||||
s = "账号签到失败!"
|
||||
if data["data"] != "" and data.get("data").get("success", -1):
|
||||
s += "原因: 验证码\njson信息:" + req.text
|
||||
log.warning(s)
|
||||
ok = False
|
||||
else:
|
||||
ok = False
|
||||
data = {}
|
||||
if ok:
|
||||
|
||||
27
setting.py
27
setting.py
@ -83,6 +83,25 @@ headers = {
|
||||
'x-rpc-device_id': ""
|
||||
}
|
||||
|
||||
|
||||
headersys = {
|
||||
'Accept': 'application/json, text/plain, */*',
|
||||
'DS': "",
|
||||
"x-rpc-signgame": "hk4e" ,
|
||||
"x-rpc-channel": "miyousheluodi",
|
||||
'Origin': "https://act.mihoyo.com",
|
||||
'Referer' :"https://act.mihoyo.com/",
|
||||
'x-rpc-app_version': mihoyobbs_version,
|
||||
'User-Agent': 'Mozilla/5.0 (Linux; Android 12; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) '
|
||||
f'Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 miHoYoBBS/{mihoyobbs_version}',
|
||||
'x-rpc-client_type': mihoyobbs_Client_type_web,
|
||||
'Referer': '',
|
||||
'Accept-Encoding': 'gzip, deflate',
|
||||
'Accept-Language': 'zh-CN,en-US;q=0.8',
|
||||
'X-Requested-With': 'com.mihoyo.hyperion',
|
||||
"Cookie": "",
|
||||
'x-rpc-device_id': ""
|
||||
}
|
||||
# 通用设置
|
||||
bbs_api = "https://bbs-api.mihoyo.com"
|
||||
web_api = "https://api-takumi.mihoyo.com"
|
||||
@ -119,10 +138,10 @@ tearsofthemis_Is_signurl = honkai2_Is_signurl
|
||||
tearsofthemis_Sign_url = honkai2_Sign_url # 和二崩完全一致
|
||||
|
||||
# 原神自动签到相关的设置
|
||||
genshin_Act_id = "e202009291139501"
|
||||
genshin_checkin_rewards = f'{web_api}/event/bbs_sign_reward/home?act_id={genshin_Act_id}'
|
||||
genshin_Is_signurl = web_api + "/event/bbs_sign_reward/info?act_id={}®ion={}&uid={}"
|
||||
genshin_Signurl = web_api + "/event/bbs_sign_reward/sign"
|
||||
genshin_Act_id = "e202311201442471"
|
||||
genshin_checkin_rewards = f'{web_api}/event/luna/home?lang=zh-cn&act_id={genshin_Act_id}'
|
||||
genshin_Is_signurl = web_api + "/event/luna/info?lang=zh-cn&act_id={}®ion={}&uid={}"
|
||||
genshin_Signurl = web_api + "/event/luna/sign"
|
||||
|
||||
# 云原神相关api
|
||||
cloud_genshin_Api = "https://api-cloudgame.mihoyo.com"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user