helpers_update #1
|
@ -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
|
||||
|
|
@ -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()
|
Loading…
Reference in New Issue