mirror of
https://github.com/PaiGramTeam/MibooGram.git
synced 2024-11-16 04:45:27 +00:00
🐛 Fix ValueError
caused by incorrect player ID
This commit is contained in:
parent
f03f524a47
commit
db2741b515
@ -1,10 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Optional
|
from typing import Optional, TYPE_CHECKING
|
||||||
|
|
||||||
import genshin
|
import genshin
|
||||||
from genshin import DataNotPublic, GenshinException, types
|
from genshin import DataNotPublic, GenshinException, types
|
||||||
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove, TelegramObject, Update
|
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove, TelegramObject
|
||||||
from telegram.ext import CallbackContext, ConversationHandler, filters
|
from telegram.ext import ConversationHandler, filters
|
||||||
from telegram.helpers import escape_markdown
|
from telegram.helpers import escape_markdown
|
||||||
|
|
||||||
from core.basemodel import RegionEnum
|
from core.basemodel import RegionEnum
|
||||||
@ -15,6 +15,11 @@ from core.services.players.models import PlayersDataBase as Player, PlayerInfoSQ
|
|||||||
from core.services.players.services import PlayersService, PlayerInfoService
|
from core.services.players.services import PlayersService, PlayerInfoService
|
||||||
from utils.log import logger
|
from utils.log import logger
|
||||||
|
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from telegram import Update
|
||||||
|
from telegram.ext import ContextTypes
|
||||||
|
|
||||||
__all__ = ("BindAccountPlugin",)
|
__all__ = ("BindAccountPlugin",)
|
||||||
|
|
||||||
|
|
||||||
@ -51,7 +56,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.entry_point
|
@conversation.entry_point
|
||||||
@handler.command(command="setuid", filters=filters.ChatType.PRIVATE, block=False)
|
@handler.command(command="setuid", filters=filters.ChatType.PRIVATE, block=False)
|
||||||
async def command_start(self, update: Update, context: CallbackContext) -> int:
|
async def command_start(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
user = update.effective_user
|
user = update.effective_user
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
logger.info("用户 %s[%s] 绑定账号命令请求", user.full_name, user.id)
|
logger.info("用户 %s[%s] 绑定账号命令请求", user.full_name, user.id)
|
||||||
@ -71,7 +76,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.state(state=CHECK_SERVER)
|
@conversation.state(state=CHECK_SERVER)
|
||||||
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
||||||
async def check_server(self, update: Update, context: CallbackContext) -> int:
|
async def check_server(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
||||||
if message.text == "退出":
|
if message.text == "退出":
|
||||||
@ -92,7 +97,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.state(state=CHECK_METHOD)
|
@conversation.state(state=CHECK_METHOD)
|
||||||
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
||||||
async def check_method(self, update: Update, _: CallbackContext) -> int:
|
async def check_method(self, update: "Update", _: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
if message.text == "退出":
|
if message.text == "退出":
|
||||||
await message.reply_text("退出任务", reply_markup=ReplyKeyboardRemove())
|
await message.reply_text("退出任务", reply_markup=ReplyKeyboardRemove())
|
||||||
@ -108,7 +113,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.state(state=CHECK_ACCOUNT_ID)
|
@conversation.state(state=CHECK_ACCOUNT_ID)
|
||||||
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
||||||
async def check_account(self, update: Update, context: CallbackContext) -> int:
|
async def check_account(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
user = update.effective_user
|
user = update.effective_user
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
||||||
@ -172,7 +177,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.state(state=CHECK_PLAYER_ID)
|
@conversation.state(state=CHECK_PLAYER_ID)
|
||||||
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
||||||
async def check_player(self, update: Update, context: CallbackContext) -> int:
|
async def check_player(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
user = update.effective_user
|
user = update.effective_user
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
||||||
@ -212,6 +217,9 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
logger.error("获取账号信息发生错误")
|
logger.error("获取账号信息发生错误")
|
||||||
logger.exception(exc)
|
logger.exception(exc)
|
||||||
return ConversationHandler.END
|
return ConversationHandler.END
|
||||||
|
except ValueError:
|
||||||
|
await message.reply_text("ID 格式有误,请检查", reply_markup=ReplyKeyboardRemove())
|
||||||
|
return ConversationHandler.END
|
||||||
player_info = await self.players_service.get(
|
player_info = await self.players_service.get(
|
||||||
user.id, player_id=player_id, region=bind_account_plugin_data.region
|
user.id, player_id=player_id, region=bind_account_plugin_data.region
|
||||||
)
|
)
|
||||||
@ -234,7 +242,7 @@ class BindAccountPlugin(Plugin.Conversation):
|
|||||||
|
|
||||||
@conversation.state(state=COMMAND_RESULT)
|
@conversation.state(state=COMMAND_RESULT)
|
||||||
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
@handler.message(filters=filters.TEXT & ~filters.COMMAND, block=False)
|
||||||
async def command_result(self, update: Update, context: CallbackContext) -> int:
|
async def command_result(self, update: "Update", context: "ContextTypes.DEFAULT_TYPE") -> int:
|
||||||
user = update.effective_user
|
user = update.effective_user
|
||||||
message = update.effective_message
|
message = update.effective_message
|
||||||
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
bind_account_plugin_data: BindAccountPluginData = context.chat_data.get("bind_account_plugin_data")
|
||||||
|
Loading…
Reference in New Issue
Block a user