From f721289b1da1499db0c8f2c13fab9faba41c5fc8 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Mon, 25 Mar 2024 18:13:09 +0100 Subject: [PATCH] Simplify logic for rendering user exports --- .../templates/preferences/export-user.html | 4 ++- bookwyrm/views/preferences/export.py | 28 ++++++------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/bookwyrm/templates/preferences/export-user.html b/bookwyrm/templates/preferences/export-user.html index 13fe16a77..bd675afaa 100644 --- a/bookwyrm/templates/preferences/export-user.html +++ b/bookwyrm/templates/preferences/export-user.html @@ -123,7 +123,9 @@ + {% if export.size %} {{ export.size|get_file_size }} + {% endif %} {% if export.url %} @@ -133,7 +135,7 @@ {% trans "Download your export" %} - {% elif export.job.complete and not export.job.status == "stopped" and not export.job.status == "failed" %} + {% elif export.unavailable %} {% trans "Archive is no longer available" %} {% endif %} diff --git a/bookwyrm/views/preferences/export.py b/bookwyrm/views/preferences/export.py index 1d77e1200..f501f331b 100644 --- a/bookwyrm/views/preferences/export.py +++ b/bookwyrm/views/preferences/export.py @@ -165,28 +165,16 @@ class ExportUser(View): for job in jobs: export = {"job": job} - if settings.USE_S3: - storage = S3Boto3Storage(querystring_auth=True, custom_domain=None) - - # for s3 we create a new tar file in s3, - # so we need to check the size of _that_ file + if job.export_data: try: - export["size"] = S3Boto3Storage.size( - storage, f"exports/{job.task_id}.tar.gz" - ) - except Exception: # pylint: disable=broad-except - export["size"] = 0 - - else: - # for local storage export_data is the tar file - try: - export["size"] = job.export_data.size if job.export_data else 0 + export["size"] = job.export_data.size + export["url"] = reverse("prefs-export-file", args=[job.task_id]) except FileNotFoundError: - # file no longer exists - export["size"] = 0 - - if export["size"] > 0: - export["url"] = reverse("prefs-export-file", args=[job.task_id]) + # file no longer exists locally + export["unavailable"] = True + except Exception: # pylint: disable=broad-except + # file no longer exists on storage backend + export["unavailable"] = True exports.append(export)