Skip to content

Commit 791c324

Browse files
committed
尝试暂时用固定fp解决5003
1 parent ff0580c commit 791c324

2 files changed

Lines changed: 27 additions & 17 deletions

File tree

handle/ssbq_handler.py

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
PrivateCookie,
1313
)
1414
from LittlePaimon.utils import scheduler
15-
from LittlePaimon.utils.api import DAILY_NOTE_API, get_mihoyo_private_data
15+
from LittlePaimon.utils.api import DAILY_NOTE_API, get_cookie, get_mihoyo_private_data, mihoyo_headers
1616
from LittlePaimon.utils.requests import aiorequests
1717
from nonebot import get_bot
1818
from nonebot.adapters.onebot.v11 import Message
1919
from nonebot.params import CommandArg, Depends
2020

21-
from ..captcha.captcha import get_pass_challenge, mihoyo_headers
21+
from ..captcha.captcha import get_pass_challenge
2222
from ..config.config import config
2323
from ..draw.ssbq_draw import draw_daily_note_card
2424
from ..utils.logger import Logger
@@ -55,9 +55,19 @@ async def get_subs(**kwargs) -> str:
5555

5656
async def handle_ssbq(player: Player, sign_allow: bool):
5757
await LastQuery.update_last_query(player.user_id, player.uid)
58-
data = await get_mihoyo_private_data(
59-
player.uid, player.user_id, "daily_note"
58+
server_id = "cn_qd01" if player.uid[0] == "5" else "cn_gf01"
59+
cookie_info = await get_cookie(player.user_id, player.uid, True, True)
60+
headers = mihoyo_headers(
61+
cookie=cookie_info.cookie,
62+
q=f"role_id={player.uid}&server={server_id}",
6063
)
64+
headers["x-rpc-device_id"] = "3cf4ac6c-aeef-4e53-8f51-7d623b01d64d"
65+
headers["x-rpc-device_fp"] = "38d7f1d1d0fff"
66+
data = await aiorequests.get(
67+
url=DAILY_NOTE_API,
68+
headers=headers,
69+
params={"server": server_id, "role_id": player.uid},
70+
).json()
6171
if isinstance(data, str):
6272
Logger.info(
6373
"原神实时便签",
@@ -67,10 +77,8 @@ async def handle_ssbq(player: Player, sign_allow: bool):
6777
False,
6878
)
6979
return f"{player.uid}{data}\n"
70-
elif data["retcode"] in (1034, 5003):
71-
if (
72-
config.rrocr_key or config.third_api or config.ttocr_key
73-
) and sign_allow:
80+
elif data["retcode"] == 1034:
81+
if (config.rrocr_key or config.third_api or config.ttocr_key) and sign_allow:
7482
Logger.info(
7583
"原神实时便签",
7684
"➤➤",
@@ -131,13 +139,14 @@ async def handle_ssbq(player: Player, sign_allow: bool):
131139
return f'{player.uid}获取数据失败,msg为{data["message"]}\n'
132140
else:
133141
Logger.info(
134-
"原神实时便签", "➤➤", {"用户": player.user_id, "UID": player.uid}, "获取数据成功"
142+
"原神实时便签",
143+
"➤➤",
144+
{"用户": player.user_id, "UID": player.uid},
145+
"获取数据成功",
135146
)
136147

137148
try:
138-
img = await draw_daily_note_card(
139-
data["data"], player.uid, player.user_id
140-
)
149+
img = await draw_daily_note_card(data["data"], player.uid, player.user_id)
141150
Logger.info(
142151
"原神实时便签",
143152
"➤➤",
@@ -156,9 +165,7 @@ async def handle_ssbq(player: Player, sign_allow: bool):
156165
return f"{player.uid}绘制图片失败,{e}\n"
157166

158167

159-
@scheduler.scheduled_job(
160-
"cron", minute=f"*/{config.ssbq_check}", misfire_grace_time=10
161-
)
168+
@scheduler.scheduled_job("cron", minute=f"*/{config.ssbq_check}", misfire_grace_time=10)
162169
async def check_note():
163170
if not config.ssbq_enable:
164171
return

handle/sy_handle.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ async def get_abyss_info(
4040
q=f"role_id={uid}&schedule_type={schedule_type}&server={server_id}",
4141
cookie=cookie_info.cookie,
4242
)
43+
# 暂时用一个固定的device_id和device_fp
44+
headers["x-rpc-device_id"] = "3cf4ac6c-aeef-4e53-8f51-7d623b01d64d"
45+
headers["x-rpc-device_fp"] = "38d7f1d1d0fff"
4346
k = 0
4447
for i in range(3):
4548
data: dict = (
@@ -53,7 +56,7 @@ async def get_abyss_info(
5356
},
5457
)
5558
).json()
56-
if data["retcode"] in (1034, 5003) and k < 2:
59+
if data["retcode"] == 1034 and k < 2:
5760
k += 1
5861
Logger.info(
5962
"原神深渊战报",
@@ -68,7 +71,7 @@ async def get_abyss_info(
6871
continue
6972
else:
7073
return "遇到验证码,但是过码失败"
71-
elif data["retcode"] in (1034, 5003) and k == 2:
74+
elif data["retcode"] == 1034 and k == 2:
7275
Logger.info(
7376
"原神深渊战报",
7477
"➤➤",

0 commit comments

Comments
 (0)