fix: update to not add empty dirs
This commit is contained in:
@@ -688,6 +688,9 @@ async def manual_scan(background_tasks: BackgroundTasks, path: Optional[str] = N
|
||||
movie_skipped += 1
|
||||
elif result == "processed":
|
||||
movie_processed += 1
|
||||
elif result == "no_video_files":
|
||||
print(f"INFO: Skipped empty directory: {item.name}")
|
||||
movie_skipped += 1
|
||||
except Exception as e:
|
||||
print(f"ERROR: Failed processing movie {item}: {e}")
|
||||
movie_total += 1
|
||||
@@ -1132,6 +1135,34 @@ async def delete_series_episodes(imdb_id: str, dependencies: dict):
|
||||
}
|
||||
|
||||
|
||||
async def delete_movie(imdb_id: str, dependencies: dict):
|
||||
"""Delete a specific movie from the database"""
|
||||
db = dependencies["db"]
|
||||
|
||||
try:
|
||||
deleted = db.delete_movie(imdb_id)
|
||||
|
||||
if deleted:
|
||||
return {
|
||||
"success": True,
|
||||
"message": f"Deleted movie {imdb_id} from database",
|
||||
"imdb_id": imdb_id
|
||||
}
|
||||
else:
|
||||
return {
|
||||
"success": False,
|
||||
"message": f"Movie {imdb_id} not found in database",
|
||||
"imdb_id": imdb_id
|
||||
}
|
||||
|
||||
except Exception as e:
|
||||
return {
|
||||
"success": False,
|
||||
"error": str(e),
|
||||
"imdb_id": imdb_id
|
||||
}
|
||||
|
||||
|
||||
async def cleanup_orphaned_episodes(dependencies: dict):
|
||||
"""Find and delete episodes that don't have corresponding video files"""
|
||||
db = dependencies["db"]
|
||||
@@ -1154,6 +1185,28 @@ async def cleanup_orphaned_episodes(dependencies: dict):
|
||||
}
|
||||
|
||||
|
||||
async def cleanup_orphaned_movies(dependencies: dict):
|
||||
"""Find and delete movies that don't have corresponding video files"""
|
||||
db = dependencies["db"]
|
||||
|
||||
try:
|
||||
deleted_movies = db.delete_orphaned_movies()
|
||||
|
||||
return {
|
||||
"success": True,
|
||||
"message": f"Cleaned up {len(deleted_movies)} orphaned movies",
|
||||
"deleted_count": len(deleted_movies),
|
||||
"deleted_movies": deleted_movies
|
||||
}
|
||||
|
||||
except Exception as e:
|
||||
return {
|
||||
"success": False,
|
||||
"error": str(e),
|
||||
"message": "Failed to cleanup orphaned movies"
|
||||
}
|
||||
|
||||
|
||||
# ---------------------------
|
||||
# Route Registration
|
||||
# ---------------------------
|
||||
@@ -1212,10 +1265,18 @@ def register_routes(app, dependencies: dict):
|
||||
async def _delete_series_episodes(imdb_id: str):
|
||||
return await delete_series_episodes(imdb_id, dependencies)
|
||||
|
||||
@app.delete("/database/movie/{imdb_id}")
|
||||
async def _delete_movie(imdb_id: str):
|
||||
return await delete_movie(imdb_id, dependencies)
|
||||
|
||||
@app.post("/database/cleanup/orphaned-episodes")
|
||||
async def _cleanup_orphaned_episodes():
|
||||
return await cleanup_orphaned_episodes(dependencies)
|
||||
|
||||
@app.post("/database/cleanup/orphaned-movies")
|
||||
async def _cleanup_orphaned_movies():
|
||||
return await cleanup_orphaned_movies(dependencies)
|
||||
|
||||
@app.post("/manual/scan")
|
||||
async def _manual_scan(background_tasks: BackgroundTasks, path: Optional[str] = None, scan_type: str = "both", scan_mode: str = "smart"):
|
||||
return await manual_scan(background_tasks, path, scan_type, scan_mode, dependencies)
|
||||
|
||||
Reference in New Issue
Block a user