实现邮箱API集成和注册数量限制功能
This commit is contained in:
84
EmailAPIClient.py
Normal file
84
EmailAPIClient.py
Normal file
@@ -0,0 +1,84 @@
|
||||
import requests
|
||||
import json
|
||||
from loguru import logger
|
||||
|
||||
class EmailAPIClient:
|
||||
"""自建邮箱API客户端
|
||||
|
||||
用于从API获取邮箱账号
|
||||
"""
|
||||
|
||||
def __init__(self, api_url="https://steamapi.cursorpro.com.cn/api/create_user"):
|
||||
"""初始化API客户端
|
||||
|
||||
Args:
|
||||
api_url: API服务器地址
|
||||
"""
|
||||
self.api_url = api_url
|
||||
|
||||
def create_email_account(self):
|
||||
"""创建新的邮箱账号
|
||||
|
||||
通过调用API创建一个新的邮箱账号
|
||||
|
||||
Returns:
|
||||
dict: 包含以下字段的字典,如果失败则返回None
|
||||
- id: 账号ID
|
||||
- username: 用户名
|
||||
- email: 邮箱地址
|
||||
- password: 邮箱密码
|
||||
- success: 是否成功
|
||||
- message: 信息
|
||||
"""
|
||||
try:
|
||||
logger.info(f"正在从API获取邮箱账号: {self.api_url}")
|
||||
|
||||
response = requests.post(self.api_url, timeout=30)
|
||||
|
||||
if response.status_code != 200:
|
||||
logger.error(f"API请求失败,状态码: {response.status_code}")
|
||||
return None
|
||||
|
||||
try:
|
||||
result = response.json()
|
||||
except json.JSONDecodeError:
|
||||
logger.error("API返回的数据不是有效的JSON格式")
|
||||
return None
|
||||
|
||||
if not result.get("success", False):
|
||||
logger.error(f"API返回错误: {result.get('message', '未知错误')}")
|
||||
return None
|
||||
|
||||
logger.info(f"成功获取邮箱账号: {result.get('email')}")
|
||||
return result
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"获取邮箱账号出错: {str(e)}")
|
||||
return None
|
||||
|
||||
def get_email_credentials(self):
|
||||
"""获取邮箱凭据
|
||||
|
||||
获取邮箱地址和密码,并格式化为凭据字典
|
||||
|
||||
Returns:
|
||||
dict: 包含email和password字段的字典,如果失败则返回None
|
||||
"""
|
||||
account = self.create_email_account()
|
||||
if not account:
|
||||
return None
|
||||
|
||||
return {
|
||||
'email': account.get('email'),
|
||||
'password': account.get('password')
|
||||
}
|
||||
|
||||
# 测试代码
|
||||
if __name__ == "__main__":
|
||||
client = EmailAPIClient()
|
||||
email_data = client.get_email_credentials()
|
||||
if email_data:
|
||||
print(f"获取到的邮箱: {email_data['email']}")
|
||||
print(f"获取到的密码: {email_data['password']}")
|
||||
else:
|
||||
print("获取邮箱账号失败")
|
||||
Reference in New Issue
Block a user