Commit ·
888adce
1
Parent(s): 6a6eda2
update
Browse files- LoadBalancer.py +1 -1
- app.py +11 -3
LoadBalancer.py
CHANGED
|
@@ -14,7 +14,7 @@ CACHE_DIR = os.getenv("CACHE_DIR")
|
|
| 14 |
|
| 15 |
class LoadBalancer:
|
| 16 |
def __init__(self, cache_dir, token, repo, polling_interval=4, max_retries=3, initial_delay=1):
|
| 17 |
-
self.version = "0.0.0.
|
| 18 |
self.instances = []
|
| 19 |
self.instances_health = {}
|
| 20 |
self.polling_interval = polling_interval
|
|
|
|
| 14 |
|
| 15 |
class LoadBalancer:
|
| 16 |
def __init__(self, cache_dir, token, repo, polling_interval=4, max_retries=3, initial_delay=1):
|
| 17 |
+
self.version = "0.0.0.8 Alpha Debug"
|
| 18 |
self.instances = []
|
| 19 |
self.instances_health = {}
|
| 20 |
self.polling_interval = polling_interval
|
app.py
CHANGED
|
@@ -93,24 +93,32 @@ async def get_recent_items(limit: int = 5):
|
|
| 93 |
})
|
| 94 |
|
| 95 |
@app.get("/api/get/genre_categories")
|
| 96 |
-
async def get_genre_categories():
|
| 97 |
"""
|
| 98 |
Retrieve all available genre categories along with their density (number of media items).
|
| 99 |
|
|
|
|
|
|
|
|
|
|
| 100 |
Returns:
|
| 101 |
A JSON response containing a list of genre objects, for example:
|
| 102 |
[{'name': 'Comedy', 'density': 12}, {'name': 'Drama', 'density': 8}, ...]
|
| 103 |
"""
|
| 104 |
try:
|
| 105 |
categories = [
|
| 106 |
-
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
for genre, data in sorted(genre_list.genres.items())
|
| 108 |
]
|
| 109 |
return JSONResponse(content={"genres": categories})
|
| 110 |
except Exception as e:
|
| 111 |
raise HTTPException(status_code=500, detail=f"Error retrieving genre categories: {str(e)}")
|
| 112 |
|
| 113 |
-
|
| 114 |
@app.get("/api/get/genre")
|
| 115 |
async def get_genre_items(
|
| 116 |
genre: List[str] = Query(...),
|
|
|
|
| 93 |
})
|
| 94 |
|
| 95 |
@app.get("/api/get/genre_categories")
|
| 96 |
+
async def get_genre_categories(media_type: Optional[str] = Query(None, description="Filter by media type: 'movie' or 'series'")):
|
| 97 |
"""
|
| 98 |
Retrieve all available genre categories along with their density (number of media items).
|
| 99 |
|
| 100 |
+
Query Parameters:
|
| 101 |
+
media_type: Optional. Filter by media type ('movie' or 'series'). If not provided, returns the total count.
|
| 102 |
+
|
| 103 |
Returns:
|
| 104 |
A JSON response containing a list of genre objects, for example:
|
| 105 |
[{'name': 'Comedy', 'density': 12}, {'name': 'Drama', 'density': 8}, ...]
|
| 106 |
"""
|
| 107 |
try:
|
| 108 |
categories = [
|
| 109 |
+
{
|
| 110 |
+
"name": genre,
|
| 111 |
+
"density": sum(
|
| 112 |
+
1 for entry in data["entries"].values()
|
| 113 |
+
if media_type is None or entry[3] == media_type
|
| 114 |
+
)
|
| 115 |
+
}
|
| 116 |
for genre, data in sorted(genre_list.genres.items())
|
| 117 |
]
|
| 118 |
return JSONResponse(content={"genres": categories})
|
| 119 |
except Exception as e:
|
| 120 |
raise HTTPException(status_code=500, detail=f"Error retrieving genre categories: {str(e)}")
|
| 121 |
|
|
|
|
| 122 |
@app.get("/api/get/genre")
|
| 123 |
async def get_genre_items(
|
| 124 |
genre: List[str] = Query(...),
|