helpers_update #1

Merged
a.fabrizio0a806 merged 27 commits from helpers_update into main 2024-10-15 15:42:14 +02:00
4 changed files with 80 additions and 0 deletions
Showing only changes of commit ab3693873c - Show all commits

View File

@ -0,0 +1,4 @@
#The __init__.py files are required to make Python
#treat the directories as containing packages; this is done to prevent directories with a common name, such as string, from unintentionally hiding valid modules that occur later on the module search path.
#See: https://docs.python.org/3/tutorial/modules.html#packages

View File

View File

@ -0,0 +1,76 @@
import os
import tempfile
import logging
import pyqrcode
import time
CATALINA_HOME = 'CATALINA_HOME'
log = logging.getLogger(__name__)
temp_dir = None
qr_code_dir = None
qr_code_dir_name = "qr_code_for_catalogue"
class D4S_QrCode():
def __init__(self, qr_code_url=None):
self._qr_code_url = qr_code_url
global temp_dir
if temp_dir is None:
D4S_QrCode.init_temp_dir()
if temp_dir is None:
raise Exception('No temp directory found!')
def get_qrcode_path(self):
image_name = self._qr_code_url.rsplit('/', 1)[-1]
image_name+=".svg"
image_path = os.path.join(qr_code_dir, image_name)
# ONLY IF QRCODE DOES NOT EXIST THEN IT WILL BE CREATED
if not os.path.isfile(image_path):
url = pyqrcode.create(self._qr_code_url)
url.svg(image_path, scale=3)
log.debug("Created QRCode image: " + image_name)
attempt = 0
while not os.path.exists(image_path) and attempt < 3:
time.sleep(1)
attempt += 1
if os.path.isfile(image_path):
log.info("QRcode image exists at: " + image_path)
else:
log.error("%s isn't a file!" % image_path)
return image_path
@classmethod
def init_temp_dir(cls):
global temp_dir
global qr_code_dir_name
global qr_code_dir
try:
temp_dir = str(os.environ[CATALINA_HOME])
temp_dir = os.path.join(temp_dir, "temp")
except KeyError as error:
log.error("No environment variable for: %s" % CATALINA_HOME)
if temp_dir is None:
temp_dir = tempfile.gettempdir() # using system tmp dir
log.debug("Temp dir is: %s" % temp_dir)
qr_code_dir = os.path.join(temp_dir, qr_code_dir_name)
if not os.path.exists(qr_code_dir):
os.makedirs(qr_code_dir)
def get_temp_directory(self):
return temp_dir
def get_qr_code_dir(self):
return qr_code_dir
# D4S_QrCode.init_temp_dir()
#qr_code = D4S_QrCode("http://data.d4science.org/ctlg/BiodiversityLab/distribution_of_the_giant_squid_architeuthis")
#print qr_code.get_qrcode_path()