littleprynter/src/web.py
2022-03-17 10:39:22 +01:00

69 lines
2.4 KiB
Python

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