from flask import Flask, request from werkzeug.utils import secure_filename from printer import Printer import time import os class Web(object): """docstring for web.""" def __init__(self, app, printer ): super(Web).__init__() self.printer = printer self.app = app def print_sms(self, texte, sign: str): # TODO: verify the texte before printing it here ? self.app.logger.debug("Printing : " + str(texte) + " from " + str(sign)) if not os.getenv('LIPY_DEBUG'): time.sleep(1) return self.printer.print_sms(texte, sign) def print_image(self, image, sign: str) -> bool: self.app.logger.debug("Uploading file") try: self.app.logger.debug("Uploading file from " + str(sign)) if self.upload_file(image): self.app.logger.debug("File has been uploaded, printing...") self.printer.print_img(os.path.join(self.app.config['UPLOAD_FOLDER'], secure_filename(image.filename)), sign) return True else: return False except Exception as e: self.app.logger.error(e) raise Exception else: flash("Could not upload file.",'error') return False def login(username: str,password: str) -> bool: pass def logout(username: str, password: str) -> bool: pass def allowed_file(self, filename) -> bool: self.app.logger.debug("Is the filename allowed ?") return '.' in filename and filename.rsplit('.', 1)[1].lower() in self.app.config['ALLOWED_EXTENSIONS'] def upload_file(self, image)-> bool: self.app.logger.debug("Validating file") if image and self.allowed_file(image.filename): filename = secure_filename(image.filename) self.app.logger.debug("File valid") try: image.save(os.path.join(self.app.config['UPLOAD_FOLDER'], filename)) self.app.logger.debug("File saved") except Exception as e: self.app.logger.error("Could not save file") flash(e,'error') return False self.app.logger.debug("File saved to " + str(os.path.join(self.app.config['UPLOAD_FOLDER'], filename))) return True else: self.app.logger.error("Could not save file " + str(filename)) return False