ChandimaPrabath commited on
Commit
888adce
·
1 Parent(s): 6a6eda2
Files changed (2) hide show
  1. LoadBalancer.py +1 -1
  2. 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.7 Alpha Debug"
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
- {"name": genre, "density": len(data["entries"])}
 
 
 
 
 
 
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(...),