Beispiel #1
0
# 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