testapiaddyuming

This commit is contained in:
huangzhenpc
2025-02-27 10:08:58 +08:00
parent c158e42ded
commit dab8c386e8
2 changed files with 51 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
from flask import Flask, request, jsonify
from .config import Config
from .utils import get_latest_emails, get_latest_email_with_code
from .utils import get_latest_emails, get_latest_email_with_code, add_allowed_domain, remove_allowed_domain, get_allowed_domains
def create_app():
app = Flask(__name__)
@@ -25,4 +25,25 @@ def create_app():
return jsonify(email_data)
return jsonify({'error': 'No emails found for this recipient'}), 404
@app.route('/allowed_domains/add', methods=['POST'])
def add_domain():
domain = request.json.get('domain')
if not domain:
return jsonify({'error': 'Domain is required'}), 400
add_allowed_domain(domain)
return jsonify({'message': 'Domain added successfully'}), 201
@app.route('/allowed_domains/remove', methods=['POST'])
def remove_domain():
domain = request.json.get('domain')
if not domain:
return jsonify({'error': 'Domain is required'}), 400
remove_allowed_domain(domain)
return jsonify({'message': 'Domain removed successfully'}), 200
@app.route('/allowed_domains/list', methods=['GET'])
def list_domains():
domains = get_allowed_domains()
return jsonify(domains), 200
return app

View File

@@ -258,4 +258,32 @@ def extract_code_from_body(body):
"""从邮件正文中提取验证码"""
import re
match = re.search(r'\b(\d{6})\b', body)
return match.group(1) if match else None
return match.group(1) if match else None
def add_allowed_domain(domain):
"""添加允许的域名"""
try:
redis_client.sadd('allowed_domains', domain)
logger.info(f'Added allowed domain: {domain}')
except Exception as e:
logger.error(f'Error adding allowed domain: {e}')
def remove_allowed_domain(domain):
"""删除允许的域名"""
try:
redis_client.srem('allowed_domains', domain)
logger.info(f'Removed allowed domain: {domain}')
except Exception as e:
logger.error(f'Error removing allowed domain: {e}')
def get_allowed_domains():
"""获取当前允许的域名列表"""
try:
domains = redis_client.smembers('allowed_domains')
return [domain.decode() for domain in domains]
except Exception as e:
logger.error(f'Error fetching allowed domains: {e}')
return []