mirror of
https://github.com/TheSmallHanCat/sora2api.git
synced 2026-02-21 16:24:41 +08:00
feat: 添加token过期、地区不可用提示
This commit is contained in:
@@ -149,10 +149,19 @@ class TokenManager:
|
|||||||
"subscription_end": ""
|
"subscription_end": ""
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
error_msg = f"Failed to get subscription info: {response.status_code}"
|
print(f"❌ Failed to get subscription info: {response.status_code}")
|
||||||
print(f"❌ {error_msg}")
|
print(f"📄 响应内容: {response.text}")
|
||||||
print(f"📄 响应内容: {response.text[:500]}")
|
|
||||||
raise Exception(error_msg)
|
# Check for token_expired error
|
||||||
|
try:
|
||||||
|
error_data = response.json()
|
||||||
|
error_info = error_data.get("error", {})
|
||||||
|
if error_info.get("code") == "token_expired":
|
||||||
|
raise Exception(f"Token已过期: {error_info.get('message', 'Token expired')}")
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
raise Exception(f"Failed to get subscription info: {response.status_code}")
|
||||||
|
|
||||||
async def get_sora2_invite_code(self, access_token: str) -> dict:
|
async def get_sora2_invite_code(self, access_token: str) -> dict:
|
||||||
"""Get Sora2 invite code"""
|
"""Get Sora2 invite code"""
|
||||||
@@ -193,20 +202,29 @@ class TokenManager:
|
|||||||
"total_count": data.get("total_count", 0)
|
"total_count": data.get("total_count", 0)
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
# Check if it's 401 unauthorized
|
print(f"❌ 获取Sora2邀请码失败: {response.status_code}")
|
||||||
|
print(f"📄 响应内容: {response.text}")
|
||||||
|
|
||||||
|
# Check for specific errors
|
||||||
try:
|
try:
|
||||||
error_data = response.json()
|
error_data = response.json()
|
||||||
if error_data.get("error", {}).get("message", "").startswith("401"):
|
error_info = error_data.get("error", {})
|
||||||
|
|
||||||
|
# Check for unsupported_country_code
|
||||||
|
if error_info.get("code") == "unsupported_country_code":
|
||||||
|
country = error_info.get("param", "未知")
|
||||||
|
raise Exception(f"Sora在您的国家/地区不可用 ({country}): {error_info.get('message', '')}")
|
||||||
|
|
||||||
|
# Check if it's 401 unauthorized (token doesn't support Sora2)
|
||||||
|
if error_info.get("message", "").startswith("401"):
|
||||||
print(f"⚠️ Token不支持Sora2")
|
print(f"⚠️ Token不支持Sora2")
|
||||||
return {
|
return {
|
||||||
"supported": False,
|
"supported": False,
|
||||||
"invite_code": None
|
"invite_code": None
|
||||||
}
|
}
|
||||||
except:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
print(f"❌ 获取Sora2邀请码失败: {response.status_code}")
|
|
||||||
print(f"📄 响应内容: {response.text[:500]}")
|
|
||||||
return {
|
return {
|
||||||
"supported": False,
|
"supported": False,
|
||||||
"invite_code": None
|
"invite_code": None
|
||||||
@@ -649,6 +667,10 @@ class TokenManager:
|
|||||||
from dateutil import parser
|
from dateutil import parser
|
||||||
subscription_end = parser.parse(sub_info["subscription_end"])
|
subscription_end = parser.parse(sub_info["subscription_end"])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
error_msg = str(e)
|
||||||
|
# Re-raise if it's a critical error (token expired)
|
||||||
|
if "Token已过期" in error_msg:
|
||||||
|
raise
|
||||||
# If API call fails, subscription info will be None
|
# If API call fails, subscription info will be None
|
||||||
print(f"Failed to get subscription info: {e}")
|
print(f"Failed to get subscription info: {e}")
|
||||||
|
|
||||||
@@ -675,6 +697,10 @@ class TokenManager:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Failed to get Sora2 remaining count: {e}")
|
print(f"Failed to get Sora2 remaining count: {e}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
error_msg = str(e)
|
||||||
|
# Re-raise if it's a critical error (unsupported country)
|
||||||
|
if "Sora在您的国家/地区不可用" in error_msg:
|
||||||
|
raise
|
||||||
# If API call fails, Sora2 info will be None
|
# If API call fails, Sora2 info will be None
|
||||||
print(f"Failed to get Sora2 info: {e}")
|
print(f"Failed to get Sora2 info: {e}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user