Skip to content

Commit 510a637

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

2 files changed

Lines changed: 28 additions & 17 deletions

File tree

handle/ssbq_handler.py

Lines changed: 23 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,20 @@ 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+
)
71+
data = data.json()
6172
if isinstance(data, str):
6273
Logger.info(
6374
"原神实时便签",
@@ -67,10 +78,8 @@ async def handle_ssbq(player: Player, sign_allow: bool):
6778
False,
6879
)
6980
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:
81+
elif data["retcode"] == 1034:
82+
if (config.rrocr_key or config.third_api or config.ttocr_key) and sign_allow:
7483
Logger.info(
7584
"原神实时便签",
7685
"➤➤",
@@ -131,13 +140,14 @@ async def handle_ssbq(player: Player, sign_allow: bool):
131140
return f'{player.uid}获取数据失败,msg为{data["message"]}\n'
132141
else:
133142
Logger.info(
134-
"原神实时便签", "➤➤", {"用户": player.user_id, "UID": player.uid}, "获取数据成功"
143+
"原神实时便签",
144+
"➤➤",
145+
{"用户": player.user_id, "UID": player.uid},
146+
"获取数据成功",
135147
)
136148

137149
try:
138-
img = await draw_daily_note_card(
139-
data["data"], player.uid, player.user_id
140-
)
150+
img = await draw_daily_note_card(data["data"], player.uid, player.user_id)
141151
Logger.info(
142152
"原神实时便签",
143153
"➤➤",
@@ -156,9 +166,7 @@ async def handle_ssbq(player: Player, sign_allow: bool):
156166
return f"{player.uid}绘制图片失败,{e}\n"
157167

158168

159-
@scheduler.scheduled_job(
160-
"cron", minute=f"*/{config.ssbq_check}", misfire_grace_time=10
161-
)
169+
@scheduler.scheduled_job("cron", minute=f"*/{config.ssbq_check}", misfire_grace_time=10)
162170
async def check_note():
163171
if not config.ssbq_enable:
164172
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)