Update app.py
Browse files
app.py
CHANGED
|
@@ -287,15 +287,27 @@ def jio_fetch(url: str) -> str:
|
|
| 287 |
|
| 288 |
|
| 289 |
@app.post("/jio_dl")
|
| 290 |
-
async def jio_download(request:
|
| 291 |
try:
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
if not url:
|
| 295 |
-
logger.error("
|
| 296 |
-
raise HTTPException(status_code=400, detail="Missing 'url' in request data")
|
| 297 |
response = jio_fetch(url)
|
| 298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 299 |
except HTTPException:
|
| 300 |
# Re - raise the HTTPException if it's already raised in jio_fetch
|
| 301 |
raise
|
|
|
|
| 287 |
|
| 288 |
|
| 289 |
@app.post("/jio_dl")
|
| 290 |
+
async def jio_download(request: JioDownloadRequest):
|
| 291 |
try:
|
| 292 |
+
url = request.url
|
| 293 |
+
quality = request.quality
|
| 294 |
+
if not url or not quality:
|
| 295 |
+
logger.error("Missing 'url' or 'quality' in request data.")
|
| 296 |
+
raise HTTPException(status_code=400, detail="Missing 'url' or 'quality' in request data")
|
| 297 |
response = jio_fetch(url)
|
| 298 |
+
data = response.get("data")
|
| 299 |
+
if not data or len(data) == 0:
|
| 300 |
+
logger.error("No data found in the response.")
|
| 301 |
+
raise HTTPException(status_code=404, detail="No data found for the given URL.")
|
| 302 |
+
download_urls = data[0].get("downloadUrl")
|
| 303 |
+
if not download_urls:
|
| 304 |
+
logger.error("No download URLs found in the response.")
|
| 305 |
+
raise HTTPException(status_code=404, detail="No download URLs found for the given song.")
|
| 306 |
+
for download_url in download_urls:
|
| 307 |
+
if download_url.get("quality") == quality:
|
| 308 |
+
return {"download_url": download_url.get("url")}
|
| 309 |
+
logger.error(f"No download URL found for quality {quality}.")
|
| 310 |
+
raise HTTPException(status_code=404, detail=f"No download URL found for quality {quality}.")
|
| 311 |
except HTTPException:
|
| 312 |
# Re - raise the HTTPException if it's already raised in jio_fetch
|
| 313 |
raise
|