mirror of
https://github.com/PaiGramTeam/PaiGram.git
synced 2024-11-29 11:03:16 +00:00
🎨 Return URL button when chat is private in sign function
私聊时应该返回签到URL按钮而不是callback按钮,避免重复工作
This commit is contained in:
parent
38541428b9
commit
12ca9af57b
@ -68,18 +68,21 @@ class SignSystem:
|
|||||||
"x-rpc-seccode": f"{validate}|jordan",
|
"x-rpc-seccode": f"{validate}|jordan",
|
||||||
}
|
}
|
||||||
|
|
||||||
async def gen_challenge_button(
|
async def get_challenge_button(
|
||||||
self, uid: int, user_id: int, gt: Optional[str] = None, challenge: Optional[str] = None
|
self, uid: int, user_id: int, gt: Optional[str] = None, challenge: Optional[str] = None,
|
||||||
|
callback: bool = True
|
||||||
) -> Optional[InlineKeyboardMarkup]:
|
) -> Optional[InlineKeyboardMarkup]:
|
||||||
if not config.pass_challenge_user_web:
|
if not config.pass_challenge_user_web:
|
||||||
return None
|
return None
|
||||||
if gt and challenge:
|
if not challenge or not gt:
|
||||||
|
gt, challenge = await self.get_challenge(uid)
|
||||||
|
if not challenge or not gt:
|
||||||
|
return None
|
||||||
|
if callback:
|
||||||
await self.set_challenge(uid, gt, challenge)
|
await self.set_challenge(uid, gt, challenge)
|
||||||
data = f"sign|{user_id}|{uid}"
|
data = f"sign|{user_id}|{uid}"
|
||||||
return InlineKeyboardMarkup([[InlineKeyboardButton("请尽快点我进行手动验证", callback_data=data)]])
|
return InlineKeyboardMarkup([[InlineKeyboardButton("请尽快点我进行手动验证", callback_data=data)]])
|
||||||
gt, challenge = await self.get_challenge(uid)
|
else:
|
||||||
if not challenge or not gt:
|
|
||||||
return
|
|
||||||
url = f"{config.pass_challenge_user_web}?username={bot.app.bot.username}>={gt}&challenge={challenge}&uid={uid}"
|
url = f"{config.pass_challenge_user_web}?username={bot.app.bot.username}>={gt}&challenge={challenge}&uid={uid}"
|
||||||
return InlineKeyboardMarkup([[InlineKeyboardButton("请尽快点我进行手动验证", url=url)]])
|
return InlineKeyboardMarkup([[InlineKeyboardButton("请尽快点我进行手动验证", url=url)]])
|
||||||
|
|
||||||
@ -384,11 +387,12 @@ class Sign(Plugin, BasePlugin):
|
|||||||
else:
|
else:
|
||||||
await message.reply_text("未查询到您所绑定的账号信息,请先绑定账号", reply_markup=InlineKeyboardMarkup(buttons))
|
await message.reply_text("未查询到您所绑定的账号信息,请先绑定账号", reply_markup=InlineKeyboardMarkup(buttons))
|
||||||
except NeedChallenge as exc:
|
except NeedChallenge as exc:
|
||||||
button = await self.system.gen_challenge_button(
|
button = await self.system.get_challenge_button(
|
||||||
exc.uid,
|
exc.uid,
|
||||||
user.id,
|
user.id,
|
||||||
exc.gt,
|
exc.gt,
|
||||||
exc.challenge,
|
exc.challenge,
|
||||||
|
not filters.ChatType.PRIVATE.filter(message)
|
||||||
)
|
)
|
||||||
reply_message = await message.reply_text(
|
reply_message = await message.reply_text(
|
||||||
f"UID {exc.uid} 签到失败,触发验证码风控,请尝试点击下方按钮重新签到", allow_sending_without_reply=True, reply_markup=button
|
f"UID {exc.uid} 签到失败,触发验证码风控,请尝试点击下方按钮重新签到", allow_sending_without_reply=True, reply_markup=button
|
||||||
|
@ -91,7 +91,7 @@ class StartPlugin(Plugin):
|
|||||||
try:
|
try:
|
||||||
client = await get_genshin_client(user.id)
|
client = await get_genshin_client(user.id)
|
||||||
await message.reply_chat_action(ChatAction.TYPING)
|
await message.reply_chat_action(ChatAction.TYPING)
|
||||||
button = await self.sign_system.gen_challenge_button(client.uid, user.id)
|
button = await self.sign_system.get_challenge_button(client.uid, user.id, callback=False)
|
||||||
if not button:
|
if not button:
|
||||||
await message.reply_text("验证请求已过期。", allow_sending_without_reply=True)
|
await message.reply_text("验证请求已过期。", allow_sending_without_reply=True)
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user