ssss
This commit is contained in:
@@ -31,6 +31,9 @@ class AutoCursorService:
|
||||
self.config = Config.from_yaml()
|
||||
self.db_manager = DatabaseManager(self.config)
|
||||
|
||||
# 添加EmailManager实例,用于操作黑名单
|
||||
self.email_manager = None
|
||||
|
||||
# API相关
|
||||
self.api_base_url = "https://cursorapi.nosqli.com/admin/api.AutoCursor"
|
||||
self.proxy = None
|
||||
@@ -94,6 +97,11 @@ class AutoCursorService:
|
||||
logger.info("初始化自动化服务")
|
||||
await self.db_manager.initialize()
|
||||
|
||||
# 初始化EmailManager
|
||||
from services.email_manager import EmailManager
|
||||
self.email_manager = EmailManager(self.config, self.db_manager)
|
||||
await self.email_manager.initialize()
|
||||
|
||||
# 检查并设置代理
|
||||
if hasattr(self.config, "proxy_config") and self.config.proxy_config:
|
||||
if hasattr(self.config.proxy_config, "api_proxy") and self.config.proxy_config.api_proxy:
|
||||
@@ -188,6 +196,12 @@ class AutoCursorService:
|
||||
return 0
|
||||
|
||||
count = 0
|
||||
blacklist_added = 0
|
||||
|
||||
# 如果有EmailManager,确保黑名单初始化
|
||||
if self.email_manager and self.email_manager.use_redis:
|
||||
await self.email_manager._ensure_blacklist_initialized()
|
||||
|
||||
for account in accounts:
|
||||
try:
|
||||
email = account.get("email", "")
|
||||
@@ -199,6 +213,12 @@ class AutoCursorService:
|
||||
logger.warning(f"账号数据不完整: {account}")
|
||||
continue
|
||||
|
||||
# 检查邮箱是否已在黑名单中
|
||||
if self.email_manager and await self.email_manager.is_email_blacklisted(email):
|
||||
logger.warning(f"跳过黑名单中的邮箱: {email}")
|
||||
blacklist_added += 1
|
||||
continue
|
||||
|
||||
# 插入数据库
|
||||
insert_query = '''
|
||||
INSERT INTO email_accounts
|
||||
@@ -221,11 +241,19 @@ class AutoCursorService:
|
||||
except Exception as e:
|
||||
logger.error(f"导入邮箱账号时出错: {e}")
|
||||
|
||||
if blacklist_added > 0:
|
||||
logger.warning(f"已跳过 {blacklist_added} 个黑名单中的邮箱")
|
||||
|
||||
logger.success(f"成功导入 {count} 个邮箱账号")
|
||||
return count
|
||||
|
||||
async def count_pending_accounts(self) -> int:
|
||||
"""统计可用的pending状态账号数量"""
|
||||
if self.email_manager:
|
||||
# 使用EmailManager的方法,确保黑名单一致性
|
||||
return await self.email_manager.count_pending_accounts()
|
||||
|
||||
# 兼容旧代码,直接查询
|
||||
query = """
|
||||
SELECT COUNT(*)
|
||||
FROM email_accounts
|
||||
|
||||
Reference in New Issue
Block a user