feat: add custom query support for unresolved folder re-search
- Add SearchFolderRequest model for optional custom search query - Update search endpoint to use custom query if provided - Add search-again input field in UI for custom queries - Increment search_attempts counter on re-search
This commit is contained in:
@@ -224,17 +224,25 @@ async def resolve_unresolved_folder(
|
||||
)
|
||||
|
||||
|
||||
class SearchFolderRequest(BaseModel):
|
||||
"""Request model for searching an unresolved folder with custom query."""
|
||||
query: Optional[str] = Field(None, description="Custom search query override")
|
||||
|
||||
|
||||
@router.post("/unresolved/{folder_name}/search", response_model=UnresolvedFolderResponse)
|
||||
async def search_unresolved_folder(
|
||||
folder_name: str,
|
||||
request: Optional[SearchFolderRequest] = None,
|
||||
db=Depends(get_database_session),
|
||||
) -> UnresolvedFolderResponse:
|
||||
"""Re-search for a specific unresolved folder to get fresh suggestions.
|
||||
|
||||
Performs a new search using the folder's title and caches the results.
|
||||
Performs a new search using the folder's title or a custom query.
|
||||
Caches the results for subsequent display.
|
||||
|
||||
Args:
|
||||
folder_name: URL-encoded folder name to search for
|
||||
request: Optional SearchFolderRequest with custom query override
|
||||
|
||||
Returns:
|
||||
UnresolvedFolderResponse with updated search suggestions
|
||||
@@ -258,10 +266,13 @@ async def search_unresolved_folder(
|
||||
detail=f"Folder already resolved: {folder_name}"
|
||||
)
|
||||
|
||||
# Use custom query if provided, otherwise fall back to folder title
|
||||
search_query = request.query if request and request.query else folder.title
|
||||
|
||||
# Perform search
|
||||
series_app = get_series_app()
|
||||
try:
|
||||
results = await series_app.search(folder.title)
|
||||
results = await series_app.search(search_query)
|
||||
search_result_json = json.dumps(results) if results else "[]"
|
||||
except Exception as e:
|
||||
logger.warning(
|
||||
@@ -278,7 +289,7 @@ async def search_unresolved_folder(
|
||||
folder_name=folder.folder_name,
|
||||
title=folder.title,
|
||||
year=folder.year,
|
||||
search_attempts=folder.search_attempts,
|
||||
search_attempts=folder.search_attempts + 1,
|
||||
search_suggestions=results,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user