# IMPORT MODULES ======================================================================================================= from flask import request, make_response, jsonify from werkzeug import secure_filename from PIL import Image import os import gc from accModules import flaskConfig # API ADD TO DB ======================================================================================================= # -? Handles adding a whole new part submission to database. Also handles image processing. UPLOAD_FOLDER = flaskConfig.uploadFolderSrc() ALLOWED_EXTENSIONS = flaskConfig.allowedExtensions() def apiAddToDb(partId, compmode): # Step 1: Obtain form data for processing. formData = request.form file = request.files["file"] def nextPartSeq(): # This will return value of the next sequence number for part table. cursor, conn = flaskConfig.connect_db() cursor.execute("SELECT * from sqlite_sequence WHERE name = 'part'") fetchall = cursor.fetchall() conn.close() gc.collect() nextPartId = str(fetchall[0][1] + 1) return nextPartId
def convertImgs(): getImg() if i[5] == '': instanceImg = 'noimage.jpg' else: instanceImg = i[5] ALLOWED_EXTENSIONS = flaskConfig.allowedExtensions() def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS # This will rename the uploaded file to be suited for usage in /images/part-images/.. def rename_file(partName): def nextPartSeq(): # This will return value of the next sequence number for part table. conn = sqlite3.connect(DATABASE) cursor = conn.cursor() cursor.execute("SELECT * from sqlite_sequence WHERE name = 'part'") fetchall = cursor.fetchall() nextPartId = str(int(fetchall[0][1]) + 1) return nextPartId # Step 2: Find what is the next seq number for part table. nextPartId = nextPartSeq() partName = partName.replace(" ", "-").lower()[0:18] partName = partName.replace('/','-') filename = str(nextPartId) + '-' + '1' + '-' + str(partName) return filename tempSavedLocation = os.path.join('/Users/carlosherrera/Documents/airsoftcc/session 8-18-2015/working copy 2/acc/accModules/misc/testdump/', instanceImg) UPLOAD_FOLDER = '/Users/carlosherrera/Documents/airsoftcc/session 8-18-2015/working copy 2/acc/accModules/misc/testdump/uploadfolder/' work_file = Image.open(tempSavedLocation) full_res = work_file.copy() med = work_file.copy() thumb = work_file.copy() imgUrlDict = {'full_res_url': "", 'med_res_url' : "", 'thumb_res_url' : "", } def make_full_res(): new_dimensions = (900,900) full_res.thumbnail(new_dimensions) full_res.save(UPLOAD_FOLDER + "full-res/%s" % (rename_file(partName) + "-full-res") +".jpg","JPEG") full_res_name = rename_file(partName)+"-full-res"+".jpg" full_res_url = "images/part-images/full-res/" + full_res_name imgUrlDict['full_res_url'] = full_res_url def make_med(): new_dimensions = (400,400) med.thumbnail(new_dimensions) med.save(UPLOAD_FOLDER + "med-res/%s" % (rename_file(partName) + "-med") +".jpg","JPEG") med_name = rename_file(partName)+"-med"+".jpg" med_res_url = "images/part-images/med-res/" + med_name imgUrlDict['med_res_url'] = med_res_url def make_thumb(): new_dimensions = (150,150) thumb.thumbnail(new_dimensions) thumb.save(UPLOAD_FOLDER + "thumb/%s" % (rename_file(partName) + "-thumb") +".jpg","JPEG") thumb_name = rename_file(partName)+"-thumb"+".jpg" thumb_res_url = "images/part-images/thumb/" + thumb_name imgUrlDict['thumb_res_url'] = thumb_res_url make_full_res() make_med() make_thumb() return imgUrlDict