From ed97d4ce275f35534389954fc67e968a82bfa752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr> Date: Thu, 3 Mar 2022 17:46:07 +0100 Subject: [PATCH] Download progress bar => WIP --- Makefile | 8 ++++++++ .../instance/search/services/download.service.ts | 13 +++++++++++++ tasks/requirements.txt | 3 +++ tasks/src/anis_tasks/app.py | 2 ++ 4 files changed, 26 insertions(+) create mode 100644 client/src/app/instance/search/services/download.service.ts diff --git a/Makefile b/Makefile index 3dfea6a7..808b8283 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,8 @@ list: @echo " phpcs > Run php code sniffer test suite" @echo " install_services > install services dependencies (virtualenv)" @echo " shell_services > Shell into python services" + @echo " install_tasks > install tasks dependencies (virtualenv)" + @echo " shell_tasks > Shell into python tasks" @echo " create-db > Create a database for dev only (need token_enabled=0)" @echo " remove-pgdata > Remove the anis-next database" @echo "" @@ -91,6 +93,12 @@ install_services: shell_services: @docker-compose exec services bash +install_tasks: + @docker run --init -it --rm --user $(UID):$(GID) -v $(CURDIR)/tasks:/project -w /project python:3.8 /bin/bash -c "python3 -m venv venv && source /project/venv/bin/activate && pip install -r requirements.txt" + +shell_tasks: + @docker-compose exec tasks bash + create-db: @docker-compose exec server sh /mnt/init-keycloak.sh @docker-compose exec server sh /mnt/create-db.sh diff --git a/client/src/app/instance/search/services/download.service.ts b/client/src/app/instance/search/services/download.service.ts new file mode 100644 index 00000000..2fa8241d --- /dev/null +++ b/client/src/app/instance/search/services/download.service.ts @@ -0,0 +1,13 @@ +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; + +export class DownloadService { + constructor(private http: HttpClient) { } + + download(url: string): Observable<Blob> { + return this.http.get(url, { + reportProgress: true, + responseType: 'blob' + }); + } +} diff --git a/tasks/requirements.txt b/tasks/requirements.txt index 8d953796..1bb63938 100644 --- a/tasks/requirements.txt +++ b/tasks/requirements.txt @@ -1,6 +1,9 @@ certifi==2021.10.8 charset-normalizer==2.0.12 +decorator==5.1.1 idna==3.3 pika==1.2.0 +py==1.11.0 requests==2.27.1 +retry==0.9.2 urllib3==1.26.8 diff --git a/tasks/src/anis_tasks/app.py b/tasks/src/anis_tasks/app.py index bc365abb..810e581c 100644 --- a/tasks/src/anis_tasks/app.py +++ b/tasks/src/anis_tasks/app.py @@ -3,10 +3,12 @@ import logging, sys # Third party imports import pika +from retry import retry # Local application imports from anis_tasks import utils, archive +@retry(pika.exceptions.AMQPConnectionError, delay=5, jitter=(1, 3)) def run(): try: # Check config variables -- GitLab