reids 域名添加 添加时间映射

This commit is contained in:
huangzhenpc
2025-03-01 11:11:44 +08:00
parent 6d9293cb9d
commit c5d8533fad
2 changed files with 34 additions and 12 deletions

View File

@@ -118,15 +118,15 @@ sudo systemctl start email-system
} }
``` ```
- **获取当前允许的域名列表**: - **获取当前允许的域名及其创建时间**:
- **请求方法**: `GET` - **请求方法**: `GET`
- **请求路径**: `/allowed_domains/list` - **请求路径**: `/allowed_domains/list`
- **成功响应**: - **成功响应**:
```json ```json
[ {
"nosqli.com", "email.nosqli.com": "2025-02-26T19:03:53.838745",
"email.nosqli.com" "tw.nosqli.com": "2025-02-26T19:05:00.123456"
] }
``` ```
## 日志记录 ## 日志记录

View File

@@ -260,10 +260,13 @@ def extract_code_from_body(body):
def add_allowed_domain(domain): def add_allowed_domain(domain):
"""添加允许的域名""" """添加允许的域名并记录创建时间"""
try: try:
redis_client.sadd('allowed_domains', domain) timestamp = datetime.now().isoformat()
logger.info(f'Added allowed domain: {domain}') redis_client.rpush('allowed_domains_list', domain) # 添加到列表
redis_client.hset(f'domain:{domain}', 'created_at', timestamp) # 记录创建时间
redis_client.hset(f'domain_time:{domain}', 'timestamp', timestamp) # 记录时间
logger.info(f'Added allowed domain: {domain} with timestamp: {timestamp}')
except Exception as e: except Exception as e:
logger.error(f'Error adding allowed domain: {e}') logger.error(f'Error adding allowed domain: {e}')
@@ -272,16 +275,35 @@ def remove_allowed_domain(domain):
"""删除允许的域名""" """删除允许的域名"""
try: try:
redis_client.srem('allowed_domains', domain) redis_client.srem('allowed_domains', domain)
redis_client.delete(f'domain_time:{domain}') # 删除时间记录
logger.info(f'Removed allowed domain: {domain}') logger.info(f'Removed allowed domain: {domain}')
except Exception as e: except Exception as e:
logger.error(f'Error removing allowed domain: {e}') logger.error(f'Error removing allowed domain: {e}')
def get_allowed_domains(): def get_allowed_domains():
"""获取当前允许的域名列表""" """获取当前允许的域名"""
try: try:
domains = redis_client.smembers('allowed_domains') domains = redis_client.lrange('allowed_domains_list', 0, -1)
return [domain.decode() for domain in domains] domain_list = []
for domain in domains:
domain_list.append(domain.decode())
return domain_list
except Exception as e: except Exception as e:
logger.error(f'Error fetching allowed domains: {e}') logger.error(f'Error fetching allowed domains: {e}')
return [] return []
def get_allowed_domains_for_time():
"""获取当前允许的域名及其创建时间,按时间排序"""
try:
domains = redis_client.lrange('allowed_domains_list', 0, -1)
domain_info = {}
for domain in domains:
domain = domain.decode()
created_at = redis_client.hget(f'domain_time:{domain}', 'timestamp')
domain_info[domain] = created_at.decode() if created_at else None
return domain_info
except Exception as e:
logger.error(f'Error fetching allowed domains: {e}')
return {}