This commit is contained in:
huangzhenpc
2025-04-02 09:28:25 +08:00
parent 31fe73f998
commit d16f6bdc62
3 changed files with 359 additions and 70 deletions

View File

@@ -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