Files
2026-01-09 19:24:41 +00:00

45 lines
1.4 KiB
Python

from fastapi import APIRouter, Depends, BackgroundTasks, HTTPException
from sqlalchemy.orm import Session
from ..config import settings, Settings
from ..samba_manager import SambaManager
from ..database import get_db
import os
import logging
router = APIRouter()
logger = logging.getLogger(__name__)
def sync_stash_db_task():
samba_manager = SambaManager(
settings.samba_server_ip,
settings.stash_share,
settings.samba_username,
settings.samba_password,
)
try:
logger.info(f"Syncing Stash DB from {settings.stash_remote_db_path}")
with open(settings.stash_db_path, "wb") as f:
samba_manager.download_file(settings.stash_remote_db_path, f)
logger.info("Stash DB synced successfully")
except Exception as e:
logger.error(f"Stash DB sync failed: {e}")
finally:
samba_manager.close()
@router.post("/sync")
def sync_stash(background_tasks: BackgroundTasks):
background_tasks.add_task(sync_stash_db_task)
return {"message": "Stash sync started"}
@router.get("/status")
def get_stash_status():
exists = os.path.exists(settings.stash_db_path)
size = os.path.getsize(settings.stash_db_path) if exists else 0
mtime = os.path.getmtime(settings.stash_db_path) if exists else 0
return {
"enabled": settings.stash_enabled,
"db_exists": exists,
"db_size": size,
"db_mtime": mtime
}