# Copyright © 2023 Dean Lee import shutil from datetime import datetime from flask import Flask import sane from PIL import Image app = Flask(__name__) cache = 'image-cache/' outputPath = '/mnt/nas-lee/share' currentTime = datetime.now() timeString = currentTime.strftime('date-%d-%m-%y-time-%I-%M-%S-%p') precision = currentTime.microsecond newFilename = timeString + '.jpg' def readImageFile(imageFile): image = Image.open(cache + imageFile) return image @app.route('/get-scanner') def getScanner(): sane.init() devices = sane.get_devices(True) return devices[0][0] @app.route('/scan/') def scan(scanner): sane.init() scanner = sane.open(scanner) image = scanner.scan() image.save(cache + newFilename) scanner.close() return newFilename @app.route('/rotate/') def rotate(imageFile): image = readImageFile(imageFile) image = image.transpose(Image.ROTATE_180) image.save(cache + newFilename) return newFilename @app.route('/save/') def save(fileName): shutil.copy((cache + fileName), outputPath) return fileName @app.route('/pdf/') def makePdf(images): imageList = images.split('/') imageList = list(map(readImageFile, imageList)) pdfFilename = timeString + '.pdf' imageList[0].save((cache + pdfFilename), save_all=True, append_images=imageList[1:]) return pdfFilename