major server manager overhaul

This commit is contained in:
2026-01-09 19:24:41 +00:00
parent 6a667d1019
commit c0ac650625
202 changed files with 325323 additions and 6929 deletions
+83
View File
@@ -0,0 +1,83 @@
from huey import SqliteHuey
import os
import logging
from .comics_manager import ComicsManager
from .samba_manager import SambaManager
from .config import settings
from .task_tracker import record_task_start, record_task_end
# Ensure dir exists
os.makedirs("resources/config", exist_ok=True)
# Configure Huey with SQLite backend for persistence
huey = SqliteHuey(filename="resources/config/tasks.db")
logger = logging.getLogger('huey')
def get_samba_manager(share="isolation"):
return SambaManager(
settings.samba_server_ip,
share,
settings.samba_username,
settings.samba_password,
)
@huey.task(context=True)
def task_organize_comics(task=None):
record_task_start(task.id, "Organize Comics")
logger.info(f"Task {task.id}: Organize Comics started")
manager = ComicsManager()
samba_manager = get_samba_manager("isolation")
try:
manager.organize_comics(samba_manager)
record_task_end(task.id, "success")
except Exception as e:
logger.error(f"Task Organize Comics failed: {e}")
record_task_end(task.id, "failed", str(e))
finally:
samba_manager.close()
@huey.task(context=True)
def task_move_comics(series_names, share, path, task=None):
record_task_start(task.id, "Move Comics", f"Count: {len(series_names)} -> {share}:{path}")
logger.info(f"Task {task.id}: Move Comics started")
manager = ComicsManager()
samba_manager = get_samba_manager("isolation")
try:
manager.move_series(samba_manager, series_names, share, path)
record_task_end(task.id, "success")
except Exception as e:
logger.error(f"Task Move Comics failed: {e}")
record_task_end(task.id, "failed", str(e))
finally:
samba_manager.close()
@huey.task(context=True)
def task_update_metadata(target_path, force, task=None):
record_task_start(task.id, "Update Metadata", f"Path: {target_path}")
logger.info(f"Task {task.id}: Update Metadata started")
manager = ComicsManager()
samba_manager = get_samba_manager("isolation")
try:
manager.update_existing_metadata(samba_manager, target_path, force)
record_task_end(task.id, "success")
except Exception as e:
logger.error(f"Task Update Metadata failed: {e}")
record_task_end(task.id, "failed", str(e))
finally:
samba_manager.close()
@huey.task(context=True)
def task_sort_by_artist(root_path, task=None):
record_task_start(task.id, "Sort by Artist", f"Path: {root_path}")
logger.info(f"Task {task.id}: Sort by Artist started")
manager = ComicsManager()
samba_manager = get_samba_manager("isolation")
try:
manager.sort_by_artist(samba_manager, root_path)
record_task_end(task.id, "success")
except Exception as e:
logger.error(f"Task Sort by Artist failed: {e}")
record_task_end(task.id, "failed", str(e))
finally:
samba_manager.close()