reids 域名添加 添加时间映射
This commit is contained in:
10
README.md
10
README.md
@@ -118,15 +118,15 @@ sudo systemctl start email-system
|
||||
}
|
||||
```
|
||||
|
||||
- **获取当前允许的域名列表**:
|
||||
- **获取当前允许的域名及其创建时间**:
|
||||
- **请求方法**: `GET`
|
||||
- **请求路径**: `/allowed_domains/list`
|
||||
- **成功响应**:
|
||||
```json
|
||||
[
|
||||
"nosqli.com",
|
||||
"email.nosqli.com"
|
||||
]
|
||||
{
|
||||
"email.nosqli.com": "2025-02-26T19:03:53.838745",
|
||||
"tw.nosqli.com": "2025-02-26T19:05:00.123456"
|
||||
}
|
||||
```
|
||||
|
||||
## 日志记录
|
||||
|
||||
36
app/utils.py
36
app/utils.py
@@ -260,10 +260,13 @@ def extract_code_from_body(body):
|
||||
|
||||
|
||||
def add_allowed_domain(domain):
|
||||
"""添加允许的域名"""
|
||||
"""添加允许的域名并记录创建时间"""
|
||||
try:
|
||||
redis_client.sadd('allowed_domains', domain)
|
||||
logger.info(f'Added allowed domain: {domain}')
|
||||
timestamp = datetime.now().isoformat()
|
||||
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:
|
||||
logger.error(f'Error adding allowed domain: {e}')
|
||||
|
||||
@@ -272,16 +275,35 @@ def remove_allowed_domain(domain):
|
||||
"""删除允许的域名"""
|
||||
try:
|
||||
redis_client.srem('allowed_domains', domain)
|
||||
redis_client.delete(f'domain_time:{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]
|
||||
domains = redis_client.lrange('allowed_domains_list', 0, -1)
|
||||
domain_list = []
|
||||
for domain in domains:
|
||||
domain_list.append(domain.decode())
|
||||
return domain_list
|
||||
except Exception as 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 {}
|
||||
Reference in New Issue
Block a user