Files
littleprynter/src/web.py

70 lines
2.5 KiB
Python

from flask import Flask, request, flash
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))
try:
self.printer.print_sms(texte, sign)
self.printer.cut()
except Exception as e:
self.app.logger.error(e)
flash("Error while printing the SMS : "+ str(e))
flash("You message " + str( texte ) + " has been printed :)")
def print_image(self, image, sign):
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=sign,process=True)
self.printer.cut()
except Exception as e:
self.app.logger.error(e)
flash("Could not upload file." + str(e))
flash("Your image has been printed :)")
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(str(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