From e27a0fdc41ef032650f23a9c340c9907e709d928 Mon Sep 17 00:00:00 2001 From: Vermaas <vermaas@astron.nl> Date: Fri, 14 Apr 2023 11:29:52 +0200 Subject: [PATCH] attempt to display binary image content --- atdb/atdb/settings/base.py | 4 ++-- atdb/logs/atdb.log | 6 ++++++ atdb/taskdatabase/services/algorithms.py | 11 +++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/atdb/atdb/settings/base.py b/atdb/atdb/settings/base.py index 44ee30e9..fc212fbe 100644 --- a/atdb/atdb/settings/base.py +++ b/atdb/atdb/settings/base.py @@ -165,8 +165,8 @@ LOGGING = { }, 'loggers': { 'taskdatabase': { - 'handlers': ['my_handler','mail_admins'], - # 'handlers': ['my_handler', 'my_file_handler', 'mail_admins'], + #'handlers': ['my_handler','mail_admins'], + 'handlers': ['my_handler', 'my_file_handler'], 'level': 'INFO', }, 'django': { diff --git a/atdb/logs/atdb.log b/atdb/logs/atdb.log index f09c58db..a16fd1f6 100644 --- a/atdb/logs/atdb.log +++ b/atdb/logs/atdb.log @@ -155328,3 +155328,9 @@ [2020-01-24 10:55:57,471] SIGNAL : pre_save Observation(191002141) [2020-01-24 10:55:57,471] handle_pre_save(191002141) [2020-01-24 10:55:57,485] handle_post_save(191002141) +[14/Apr/2023 11:21:35,862] 'ascii' codec can't decode byte 0x89 in position 0: ordinal not in range(128) +[14/Apr/2023 11:21:35,864] task 25485 - (regular) - 146233 has no plots, skipped. +[14/Apr/2023 11:21:39,651] 'ascii' codec can't decode byte 0x89 in position 0: ordinal not in range(128) +[14/Apr/2023 11:21:39,652] task 25485 - (regular) - 146233 has no plots, skipped. +[14/Apr/2023 11:26:20,724] can only concatenate str (not "bytes") to str +[14/Apr/2023 11:26:20,725] task 25485 - (regular) - 146233 has no plots, skipped. diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py index 4ed7164f..bdcdc4ce 100644 --- a/atdb/taskdatabase/services/algorithms.py +++ b/atdb/taskdatabase/services/algorithms.py @@ -4,6 +4,7 @@ Description: Business logic for ATDB. These functions are called from the views (views.py). """ import requests +import base64 from datetime import datetime, timedelta from django.db.models import Q, Sum import logging @@ -749,16 +750,18 @@ def construct_inspectionplots(task,source='task_id'): if basename.endswith('png'): # retrieve and evaluate the url first + #logger.info('retrieve '+url) response = requests.get(url) - if response.status_code!=200: - # try again - logger.error(response) + content_as_string = base64.b64encode(response.content).decode("utf-8") + img_html = '<img width="800" src = "data:image/png;base64,' + content_as_string + '">' - results += '<tr><td><a href="' + url + '" target="_blank"><img width="800" src="' + url + '" alt="'+basename+'"/></a></td></tr>' +# results += '<tr><td><a href="' + url + '" target="_blank"><img width="800" src="' + url + '" alt="'+basename+'"/></a></td></tr>' + results += '<tr><td><a href="' + url + '" target="_blank">' + img_html+ '</a></td></tr>' plot_files.append(plot_file) except Exception as error: + logger.error(error) logger.info('task ' + str(task) + ' has no plots, skipped.') return results -- GitLab