🎨 url_to_file 获取资源错误的时抛出异常并捕获

This commit is contained in:
洛水居室 2022-09-01 09:51:01 +08:00
parent 400ba876bf
commit 595762b060
No known key found for this signature in database
GPG Key ID: C9DE87DA724B88FC
3 changed files with 17 additions and 2 deletions

View File

@ -10,6 +10,7 @@ from telegram.error import BadRequest, TimedOut, Forbidden
from telegram.ext import CallbackContext, ConversationHandler
from logger import Log
from utils.error import UrlResourcesNotFoundError
async def send_user_notification(update: Update, _: CallbackContext, text: str):
@ -73,8 +74,11 @@ def error_callable(func: Callable) -> Callable:
Log.error("python-telegram-bot 模块连接服务器 TimedOut")
await send_user_notification(update, context, "出错了呜呜呜 ~ 服务器连接超时 服务器熟啦 ~ ")
return ConversationHandler.END
except UrlResourcesNotFoundError as exc:
Log.error("URL数据资源未找到", exc)
await send_user_notification(update, context, "出错了呜呜呜 ~ 资源未找到 ~ ")
return ConversationHandler.END
except InvalidCookies as exc:
Log.warning("Cookie错误", exc)
if "[10001]" in str(exc):
await send_user_notification(update, context, "Cookies无效请尝试重新绑定账户")
elif "[-100]" in str(exc):
@ -82,6 +86,7 @@ def error_callable(func: Callable) -> Callable:
elif "[10103]" in str(exc):
await send_user_notification(update, context, "Cookie有效但没有绑定到游戏帐户请尝试重新绑定邮游戏账户")
else:
Log.warning("Cookie错误", exc)
await send_user_notification(update, context, "Cookies无效具体原因未知")
return ConversationHandler.END
except TooManyRequests as exc:

View File

@ -12,3 +12,8 @@ class NotFoundError(Exception):
class RegionNotFoundError(NotFoundError):
entity_name: str = "RegionEnum"
entity_value_name: str = "region"
class UrlResourcesNotFoundError(NotFoundError):
entity_name: str = "url resources"
entity_value_name: str = "url"

View File

@ -12,6 +12,7 @@ from core.cookies.services import CookiesService
from core.user.services import UserService
from logger import Log
from models.base import RegionEnum
from utils.error import UrlResourcesNotFoundError
USER_AGENT: str = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " \
"Chrome/90.0.4430.72 Safari/537.36"
@ -54,9 +55,13 @@ async def url_to_file(url: str, prefix: str = "file://") -> str:
return ""
if data.is_error:
Log.error(f"请求出现错误 url[{url}] status_code[{data.status_code}]")
return ""
raise UrlResourcesNotFoundError(url)
if data.status_code != 200:
Log.error(f"url_to_file 获取url[{url}] 错误 status_code[f{data.status_code}]")
raise UrlResourcesNotFoundError(url)
async with aiofiles.open(file_dir, mode='wb') as f:
await f.write(data.content)
Log.debug(f"url_to_file 获取url[{url}] 并下载到 file_dir[{file_dir}]")
return prefix + file_dir