From 9f6152f327a281479741cee2d1ce50fd8879d65c Mon Sep 17 00:00:00 2001 From: nikili0n Date: Mon, 25 Sep 2023 23:22:10 +0300 Subject: [PATCH] minor fixes --- src/web/main.py | 12 ++++++------ src/web/templates/index.html | 13 ++++++++++--- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/web/main.py b/src/web/main.py index 68a8080..593230f 100644 --- a/src/web/main.py +++ b/src/web/main.py @@ -115,7 +115,7 @@ async def get_url_for_download_video(request: Request, data: SubmitIn = Depends( logging.info(f" [x] Sent '{link}'") # TODO: возможно возвращать идентификаторы задач aka куски ссылок - return JSONResponse(status_code=200, content={"result": f"Задача поставлена в работу, ссылка: {link['link']}"}) + return JSONResponse(status_code=201, content={"result": f"Задача поставлена в работу, ссылка: {link['link']}"}) # TODO: если уже была попытка сделать задачу и в редисе она с ошибкой, то переташить её в очередь на # выполнение с очисткой состояние об ошибке @@ -150,15 +150,15 @@ async def download_video(request: Request, link: str): error_tasks = [ tasks_done.pop(tasks_done.index(error_task)) for error_task in tasks_done if error_task["status"] == "error" - ] - if len(tasks) > 0: + ] if tasks_done else None + if tasks and len(tasks) > 0: task = tasks[0] return JSONResponse( status_code=202, content={"result": f"Задача {task['link']} в данный момент в работе, выполняется"} ) # TODO: если уже была попытка сделать задачу и в редисе она с ошибкой, то переташить её в очередь на выполнение с очисткой состояние об ошибке - if len(error_tasks) > 0: + if error_tasks and len(error_tasks) > 0: error_task = error_tasks[0] await red.del_task_from_task_done_queue(error_task) return JSONResponse(status_code=510, @@ -172,5 +172,5 @@ async def download_video(request: Request, link: str): except Exception as ex: print(ex) - -uvicorn.run("src.web.main:app", host="0.0.0.0", log_level="info") +if __name__ == '__main__': + uvicorn.run("src.web.main:app", host="0.0.0.0", log_level="info") diff --git a/src/web/templates/index.html b/src/web/templates/index.html index e1eb97e..7d6c4e1 100644 --- a/src/web/templates/index.html +++ b/src/web/templates/index.html @@ -124,12 +124,18 @@ xhr.onload = () => { document.forms.download.querySelector('[type="submit"]').disabled = false; document.forms.download.querySelector('.submit-spinner').classList.add('submit-spinner_hide'); - if (xhr.status !== 200) { + console.log(xhr.status); + if (xhr.status !== 200 && xhr.status !== 201) { return; - } + }; + const response = xhr.response; result.innerHTML = xhr.response.result; result.href = xhr.response.result; + console.log(response); + if (xhr.status === 201) { + sendReq() + } } xhr.onerror = () => { document.forms.download.querySelector('[type="submit"]').disabled = false; @@ -138,7 +144,8 @@ document.forms.download.querySelector('[type="submit"]').disabled = true; document.forms.download.querySelector('.submit-spinner').classList.remove('submit-spinner_hide'); xhr.send(new FormData(document.forms.download)); - sendReq() + + } // при отправке формы