40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Subprocess wrapper for Toolzu operations to avoid asyncio event loop conflicts.
|
|
This runs Toolzu operations in a completely isolated subprocess.
|
|
|
|
Refactored to use the common wrapper factory from base_subprocess_wrapper.
|
|
"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add parent directory to path
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
from wrappers.base_subprocess_wrapper import create_download_wrapper, run_wrapper_main
|
|
|
|
|
|
def create_toolzu_downloader(config, unified_db):
|
|
"""Factory function to create a Toolzu downloader instance."""
|
|
from modules.toolzu_module import ToolzuDownloader
|
|
|
|
return ToolzuDownloader(
|
|
headless=config.get('headless', False),
|
|
show_progress=True,
|
|
use_database=True,
|
|
log_callback=None, # Module uses universal logger
|
|
unified_db=unified_db,
|
|
cookie_file=config.get('cookie_file', '/opt/media-downloader/cookies/toolzu_cookies.json'),
|
|
toolzu_email=config.get('toolzu_email'),
|
|
toolzu_password=config.get('toolzu_password')
|
|
)
|
|
|
|
|
|
# Create the download function using the factory
|
|
run_toolzu_download = create_download_wrapper("Toolzu", "toolzu", create_toolzu_downloader)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run_wrapper_main(run_toolzu_download)
|