可用
This commit is contained in:
66
reupload_all.py
Normal file
66
reupload_all.py
Normal file
@@ -0,0 +1,66 @@
|
||||
import asyncio
|
||||
from loguru import logger
|
||||
|
||||
from core.config import Config
|
||||
from core.database import DatabaseManager
|
||||
from core.logger import setup_logger
|
||||
from upload_accounts import AccountUploader
|
||||
|
||||
|
||||
class ReuploadAll:
|
||||
def __init__(self):
|
||||
self.config = Config.from_yaml()
|
||||
self.logger = setup_logger(self.config)
|
||||
self.db_manager = DatabaseManager(self.config)
|
||||
self.uploader = AccountUploader()
|
||||
|
||||
async def initialize(self):
|
||||
"""初始化数据库和上传器"""
|
||||
await self.db_manager.initialize()
|
||||
await self.uploader.initialize()
|
||||
|
||||
async def cleanup(self):
|
||||
"""清理资源"""
|
||||
await self.db_manager.cleanup()
|
||||
await self.uploader.cleanup()
|
||||
|
||||
async def reset_all_extracted(self):
|
||||
"""重置所有账号的提取状态"""
|
||||
try:
|
||||
async with self.db_manager.get_connection() as conn:
|
||||
await conn.execute(
|
||||
"""
|
||||
UPDATE email_accounts
|
||||
SET extracted = 0, updated_at = CURRENT_TIMESTAMP
|
||||
WHERE status = 'success' AND sold = 1
|
||||
"""
|
||||
)
|
||||
await conn.commit()
|
||||
self.logger.success("已重置所有账号的提取状态")
|
||||
except Exception as e:
|
||||
self.logger.error(f"重置提取状态时出错: {e}")
|
||||
|
||||
async def process(self):
|
||||
"""处理重新上传所有账号"""
|
||||
try:
|
||||
# 重置所有账号的提取状态
|
||||
await self.reset_all_extracted()
|
||||
|
||||
# 使用上传器处理所有账号
|
||||
processed = await self.uploader.process_accounts()
|
||||
self.logger.success(f"重新上传完成,共处理 {processed} 个账号")
|
||||
|
||||
except Exception as e:
|
||||
self.logger.error(f"重新上传过程中出错: {e}")
|
||||
finally:
|
||||
await self.cleanup()
|
||||
|
||||
|
||||
async def main():
|
||||
reuploader = ReuploadAll()
|
||||
await reuploader.initialize()
|
||||
await reuploader.process()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user