Ejemplo n.º 1
0
def addImage(mime, description, bf, name):
    'Add Image'
    image = Images(mime=mime, description=description, bf=bf, name=name)
    image.size = len(image.bf)
    image.filetype, image.width, image.height = getImageInfo(bf)
    image.put()
    return image
Ejemplo n.º 2
0
    def post(self):
        data = request.get_json()
        try:
            user_id = data['user_id']
            name = data['name']
            sex = data['sex']
            filename = data['filename']
            b64image = data['b64image']
            decoded_image = base64.b64decode(b64image)
        except Exception as e:
            abort(400, e)
        file_data = BytesIO(decoded_image)
        file = FileStorage(file_data, filename=filename)
        img_uri = os.path.join("static", BaseConfig.IMAGE_URI, filename)
        file.save(img_uri)

        new_image = Images(img_uri)
        db.session.add(new_image)
        try:
            db.session.commit()
        except Exception as e:
            abort(500, e)

        # PREDICTION

        ####
        return jsonify()
def upload():
    #---make static file if not exists
    target = os.path.join(APP_ROOT, 'static/')
    print(target)
    if not os.path.isdir(target):
        os.mkdir(target)
    else:
        print("Couldn't create upload directory {}".format(target))

    #---get image
    print(request.files.getlist("file"))
    for upload in request.files.getlist("file"):
        print(upload)
        print("{} is the filename".format(upload.filename))
        name = upload.filename
        destination = "/".join([target, name])
        print("Accept incoming file:", name)
        print("Save it to:", destination)
        upload.save(destination)

        #---and store..
        user_id = current_user.user_id
        name = upload.filename
        username = Users.query.filter_by(user_id=user_id).first().username
        image = str('www.doc.gold.uk/usr/340/static/' + str(name))
        new_image = Images(user_id=user_id,
                           username=username,
                           image=image,
                           name=name)
        db.session.add(new_image)
        db.session.commit()

        #result = Images.query.filter_by(name=name).first()
        return redirect(vs_url_for('add_image'))
    return render_template('complete.html', name=name)
Ejemplo n.º 4
0
def add_image():
        link = request.json["link"]
        user_id = request.json["user_id"]
        new_image = Images(link=link,user_id=user_id)
        db.session.add(new_image)
        db.session.commit()
        return jsonify(success=True)
Ejemplo n.º 5
0
def add_image(request):
    if 'token' in request.POST:
        token = request.POST['token']

    userdetail = UserDetail(request).getLoginUser()
    user_id = userdetail['id']

    data = {}

    if 'file' in request.FILES:
        image = request.FILES.get('file')
        file_type = image.content_type.split('/')[0]

        print "\n\n type of image :   ", type(file_type)

        if str(file_type) != "image":
            data = {'is_valid': False, 'message': 'Please upload Images Only.'}
            return HttpResponse(json.dumps(data))
        try:
            images = Images(user_id=user_id, image=request.FILES.get('file'))
            images.save()
            token = images.token
            image_id = images.id
            image_name = images.image_name
            url = "http://" + request.META['HTTP_HOST'] + "/images/view/" + str(
                token) + "/" + str(image_id)
            data = {
                'is_valid': True,
                'name': image_name,
                'url': url,
                'token': token
            }
        except:
            data = {'is_valid': False, 'message': 'Cannot Be Uploaded.'}
    return HttpResponse(json.dumps(data))
Ejemplo n.º 6
0
def get_image_id(request):
    # Get our desired filename.
    uploading_filename = request.form.get("imageFileName")
    if not uploading_filename:
        return exceptions.BadRequest()

    # Ensure we have an image.
    if "jpegData" not in request.files:
        return exceptions.BadRequest()

    # An image ID has a maximum size of 7.
    unique_id = generate_unique_id(Images, Images.image_id, 7)
    if unique_id == "":
        return exceptions.InternalServerError()

    filename = f"{unique_id}.jpg"

    # Next, save our file to disk.
    jpeg_image = request.files["jpegData"]
    jpeg_image.save(determine_path(current_order.order_id, filename))

    # Finally, save state to the database.
    added_image = Images(image_id=unique_id,
                         order_id=current_order.order_id,
                         filename=filename)
    db.session.add(added_image)
    db.session.commit()

    return {
        "imageID": unique_id,
    }
Ejemplo n.º 7
0
def upload_file(id=""):
    JSON = {}
    if request.method == 'POST':
        files = request.files.getlist('upload')

        if files:

            # load_photo(files, path_image, 768, path_thumbnail, 150)
            filename = secure_filename(
                utilites.transliterate(files[0].filename, "."))
            input_image_folder = Config.full_images_folder + "/articles/" + str(
                id) + "/"

            if os.path.exists(input_image_folder):
                files[0].save(input_image_folder + filename)
            else:
                os.mkdir(input_image_folder)
                files[0].save(input_image_folder + filename)

            path = "/articles/" + str(id) + "/" + filename

            JSON["fileName"] = filename
            JSON["uploaded"] = 1
            JSON["url"] = Config.images_folder + path

            image = Images(filename, path, "", utilites.timeNow("u"), id)
            db.session.add(image)
            db.session.commit()

    JSON = json.dumps(JSON, ensure_ascii=True, indent=None, sort_keys=False)
    return JSON, {'Content-Type': 'text/json'}
Ejemplo n.º 8
0
    def setUp(self):
        self.engine = create_engine('mysql+pymysql://')
        self.session = Session(engine)
        Base.metadata.create_all(self.engine)

        self.characters_instance = Characters(1009610, "Spider-Man")
        self.session.add(self.character_instance)

        self.comics_instance = Comics(30885, "Age of Heroes (Trade Paperback)")
        self.session.add(self.comics_instance)

        self.creators_instance = Creators(9799, "David Baldeon")
        self.session.add(self.creators_instance)

        self.events_instance = Events(116, "Acts of Vengeance!")
        self.session.add(self.events_instance)

        self.series_instance = Series(10235, "Age of Heroes (2011)")
        self.session.add(self.series_instance)

        self.stories_instance = Stories(483, "Interior #483")
        self.session.add(self.stories_instance)

        self.images_instance = Images(
            1, 0, "http://i.annihil.us/u/prod/marvel/i/mg/3/40/4c06c8261544e")
        self.session.add(self.images_instance)

        self.session.commit()
Ejemplo n.º 9
0
def home(request):
    posts = Blog.objects.all()[:10]
    for post in posts:
        html = django_markdown.utils.markdown(value=post.body)
        soup = BeautifulSoup(html)
        try:
            ex = soup.p.string
            imgs = soup.findAll('img', {'src': True})
            if len(imgs) > 1:
                post.type = 4
            for img in imgs:
                url = img['src']
                imglist = Images.objects.filter(link=url)
                if len(imglist) == 0:
                    image = Images(link=url)
                    image.save()
                else:
                    image = imglist[0]
                post.imagelinks.add(image)
            post.save()
            post.excerpt = ex[0:330] + '...'
            post.save()
        except:
            pass

    return render_to_response('alwaysblue/index.html', {
        'tags': Tag.objects.all(),
        'posts': posts
    })
Ejemplo n.º 10
0
def get_image_id(request):
    # Get our desired filename.
    uploading_filename = request.form.get("imageFileName")
    if not uploading_filename:
        return exceptions.BadRequest()

    # Ensure we have an image.
    if "jpegData" not in request.files:
        return exceptions.BadRequest()

    # Sanitize for when we write to disk.
    filename = secure_filename(uploading_filename)
    # Necessary as render templates require the original filename with ".jpg" appended.
    # Nobody here is fond of this.
    filename += ".jpg"

    # An image ID has a maximum size of 7.
    unique_id = generate_unique_id(Images, Images.image_id, 7)
    if unique_id == "":
        return exceptions.InternalServerError()

    # Next, save our file to disk.
    jpeg_image = request.files["jpegData"]
    jpeg_image.save(determine_path(current_order.order_id, filename))

    # Finally, save state to the database.
    added_image = Images(
        image_id=unique_id, order_id=current_order.order_id, filename=filename
    )
    db.session.add(added_image)
    db.session.commit()

    return {
        "imageID": unique_id,
    }
Ejemplo n.º 11
0
def edit_photos():
    upload = FileForm()
    set_loop = Set.query.order_by(Set.id.desc()).all()
    if upload.validate_on_submit():
        for loop in set_loop:
            if request.form["select_set"] == loop.tag:
                file = request.files['file']
                bucket.put_object(Key='Tractor Show/' + loop.name + '/' +
                                  file.filename,
                                  Body=file)
                newFile = Images(name=file.filename, set=loop)
                db.session.add(newFile)
                db.session.commit()
                return redirect('/dashboard/photos#' + loop.tag)

    add_set = AddSet()
    if add_set.validate_on_submit():
        render_tag = tag_generator(request.form["set"])
        new_set = Set(name=request.form["set"], tag=render_tag)
        db.session.add(new_set)
        db.session.commit()
        return redirect(url_for('edit_photos'))
    return render_template('authentication/edit-photos.html',
                           upload=upload,
                           add_set=add_set,
                           set_loop=set_loop,
                           s3projects=s3projects)
Ejemplo n.º 12
0
def xmlparse():
    #pagecode = urllib.urlopen("http://www.esmadrid.com/opendata/alojamientos_v1_es.xml")
    pagecode = urllib.urlopen(
        "http://cursosweb.github.io/etc/alojamientos_es.xml")
    xmlsheet = pagecode.read()
    noticias = xmlsheet.split("<service ")
    for noticia in noticias[1:-1]:
        url = noticia.split("<web>")[1].split("</web>")[0]
        try:
            alojamiento = Alojamientos.objects.get(url=url)
        except Alojamientos.DoesNotExist:
            name = noticia.split("<name><![CDATA[")[1].split("]]></name>")[0]
            address = noticia.split("<address>")[1].split("</address>")[0]
            zipcode = noticia.split("<zipcode>")[1].split("</zipcode>")[0]
            country = noticia.split("<country>")[1].split("</country>")[0]
            latitude = noticia.split("<latitude>")[1].split("</latitude>")[0]
            longitude = noticia.split("<longitude>")[1].split(
                "</longitude>")[0]
            city = noticia.split("<subAdministrativeArea>")[1].split(
                "</subAdministrativeArea>")[0]
            alojamiento = Alojamientos(name=name,
                                       url=url,
                                       address=address,
                                       zipcode=zipcode,
                                       country=country,
                                       latitude=latitude,
                                       longitude=longitude,
                                       city=city)
            alojamiento.save()
            images = noticia.split('<url>')
            for image in images[1:6]:
                image_url = image.split('</url>')[0]
                image = Images(url=image_url, alojamiento=alojamiento)
                image.save()
Ejemplo n.º 13
0
def addImage2(bf):
    image = Images(bf=bf)
    image.size = len(bf)
    image.filetype, image.width, image.height = getImageInfo(bf)
    if not image.filetype: return None
    image.mime = image.filetype
    image.put()
    return image
Ejemplo n.º 14
0
def addImage(title, bf, referer):
    'Add Image'
    image = Images(description=title, bf=bf, referer=referer)
    image.size = len(image.bf)
    image.filetype, image.width, image.height = getImageInfo(bf)
    if not image.filetype: return None
    image.mime = image.filetype

    image.put()
    return image
Ejemplo n.º 15
0
def create_image_record(bucket, key):
    '''
    Creates an Image object to store in DB.
    Record stored in Images table.

    :param bucket: S3 bucket to use
    :param key: path to image in specified S3 bucket
    :returns: Images Object
  '''
    return Images(bucket=bucket, filename=PurePath(key).name, key=key)
Ejemplo n.º 16
0
def save_update_db(load_info):

    latinput = load_info['lat_input']
    lnginput = load_info['lng_input']
    datepicker = load_info['datepicker']
    tipo = load_info['tipo']
    notes = load_info['notes']

    print('entrou update', latinput, lnginput)

    newsub = Submission(latinput=latinput,
                        lnginput=lnginput,
                        type_S=tipo,
                        temp=datepicker,
                        notes=notes)

    db.session.add(newsub)
    db.session.flush()

    print('ppppp   ', newsub, newsub.id)

    file_urls = []

    image_list = load_info['images']

    for k, image in enumerate(image_list):
        print(allowed_image(image.filename))
        if allowed_image(image.filename):

            ext = image.filename.rsplit(".", 1)[1]

            new_filename = image.filename.rsplit(".", 1)[0] + '_sub' + str(
                newsub.id) + '.' + ext

            filename = photos.save(image, name=new_filename)

            print('rrr', filename)
            file_urls.append(photos.url(filename))

            newfile = Images(sub=newsub,
                             img_data=image.read(),
                             img_name=new_filename,
                             stamp_save=date.today())
            db.session.add(newfile)

            print('aaaa   ', newfile)

    print(file_urls)
    db.session.commit()
    session['images_urls'] = file_urls
    print('saved to database')
    return 'Saved to database'
Ejemplo n.º 17
0
 def get(self, request, *args, **kwargs):
     conditions = dict(request.query_params)
     for key, value in conditions.iteritems():
         conditions[key] = conditions[key][0]
     if "number_of_data" in conditions.keys():
         number_of_data = conditions["number_of_data"][0]
         conditions.pop('number_of_data', None)
         images = MongoConnection.find_lastest_data("Images", conditions,
                                                    int(number_of_data))
     else:
         images = MongoConnection.find_data("Images", conditions=conditions)
     serializer = serializers.ImageSerializer(
         instance=[Images(**element) for element in images], many=True)
     return Response(serializer.data)
Ejemplo n.º 18
0
def initdb_command():
    db.create_all()

    f = open("static/images.csv", "r")

    for line in f:
        images = [x.strip() for x in line.split(',')]

        if (len(images) != 4):
            continue

        db.session.add(Images(images[0], images[1], images[2], images[3]))
        db.session.commit()

    print('Initialized the database.')
Ejemplo n.º 19
0
def gallery(request, imagename=None):
    print imagename
    if request.method == 'POST':
        title = request.POST['pname']
        img_data = request.POST['pdata']
        p = Images(title=title, img_data=img_data)
        p.save()
    if request.method == 'GET':
        image = Images.objects.filter(title=imagename)
        for i in image:
            data = i.img_data
        print json.dumps(data)
        t = get_template('paint.html')
        html = t.render(Context({}))
        if data:
            html = """<script>var data=JSON.parse(' """ + data + """ ');</script>""" + html
        else:
            html = """<script>alert("Image not found")</script>""" + html
        return HttpResponse(html)
Ejemplo n.º 20
0
def insert_default_entries(db):
    # Create users

    for name, email in DEFAULT_USERS_LIST:
        hashed_password = generate_password_hash(DEFAULT_PASSWORD, method='sha256')
        u = User(username=name, email=email, password=hashed_password)
        db.session.add(u)

    for node in COMPUTE_NODES:
        default_status = COMPUTE_NODE_STATUS_DICT[0]
        c = ComputeNode(ip_addr=node[0], compute_node_status=default_status, compute_node_wt=node[1])
        db.session.add(c)

    # Create Images
    for i, (name, desc, wt) in enumerate(DEFAULT_IMAGES_LIST):
        im = Images(image_name=name, image_wt=wt, description=desc)
        db.session.add(im)

    db.session.commit()
Ejemplo n.º 21
0
def get_upload_url():
    # query param
    filename = request.openapi.parameters.query['filename']
    content_type = request.openapi.parameters.query['content-type']
    # values used for S3 presigned-url
    file_uuid = str(uuid.uuid4())
    stem = path(filename).stem
    # key is a PurePosixPath object so be mindful it's not a string
    key = path(UPLOAD_FOLDER, file_uuid)
    # key = f'{UPLOAD_FOLDER}/{file_uuid}'

    try:
        # upload image in database
        image_record = Images(bucket=BUCKET_NAME,
                              filename=filename,
                              key=str(key))
        db.session.add(image_record)
        db.session.commit()
    except DBAPIError as db_error:
        print(f'DB API Error: {db_error.statement}')
        raise
    except SQLAlchemyError as alchemy_error:
        print(f'SQL Alchemy Error: {alchemy_error}')
        raise

    # params for s3 put_object method
    # tag + uuid
    s3_params = {
        'Bucket': BUCKET_NAME,
        'Key': f'{key}',
        'ContentType': content_type,
        'Tagging': f'{stem}={file_uuid}'
    }

    url = s3.generate_presigned_url('put_object',
                                    Params=s3_params,
                                    HttpMethod="PUT",
                                    ExpiresIn=10)

    payload = {'presigned_url': url}
    return jsonify(payload)
Ejemplo n.º 22
0
def initdb_command():
    db.create_all()

    paths = {
        "filetofish.jpg": ["Yes, a filet-o-fish", "Image description here"],
        "insomnia.jpg":
        ["Sugar We Are Going Down Swinging", "Image description here"],
        "jesusisking.jpg": ["Jesus is King", "Image description here"],
        "lite.jpg": ["Mr. Miller", "Image description here"],
        "miley.jpg": ["Literally No One:", "Image description here"],
        "pennstate.jpg": ["How Tough Are You?", "Image description here"],
        "pizza.jpg": ["A Big Waste of Money", "Image description here"],
        "pizza2.jpg": ["Where's the Ranch?", "Image description here"],
        "pumpkin.jpg": ["Smashing Pumkpins", "Image description here"],
        "rat.jpg": ["Oh Rats", "Image description here"],
    }

    for path in paths:
        db.session.add(Images(path, paths[path][0], paths[path][1]))
        db.session.commit()

    print('Initialized the database.')
Ejemplo n.º 23
0
def upload_file():
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']

        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            flash('No selected file!')
            return redirect(request.url)

        if file and allowed_file(file.filename):
            # Get secure filename
            sec_fname = path.join(app.config['TEMP_FOLDER'],
                                  secure_filename(file.filename))
            file.save(sec_fname)

            # Calculating MD5 hash and use it as filename
            md5_hash = calc_md5(sec_fname)
            save_dir = path.join(app.config['UPLOAD_FOLDER'], md5_hash[0:3])
            if not path.exists(save_dir):
                makedirs(save_dir)
            # copy to new dir
            save_path = path.join(save_dir, md5_hash)
            shutil.copy2(sec_fname, save_path)
            # remove temp
            remove(sec_fname)

            # Get resolution of image
            im = Image.open(save_path)

            im_type = 0  # default Image type

            if im.format == 'JPEG':
                im_type = 0
            elif im.format == 'PNG':
                im_type = 1
            elif im.format == 'GIF':
                im_type = 2

            img = Images(md5_hash, im.size[1], im.size[0], im_type, g.user.id)
            db.session.add(img)
            db.session.commit()

            # Image thumbnail
            thumbs_dir = path.join(app.config['THUMBNAIL_FOLDER'],
                                   md5_hash[0:3])

            if not path.exists(thumbs_dir):
                makedirs(thumbs_dir)

            save_path = path.join(thumbs_dir, md5_hash)
            try:
                im.thumbnail((200, 200), Image.ANTIALIAS)
                #print(im.size)

                im.save(save_path, "JPEG")
            except IOError:
                print("cannot create thumbnail")

            flash('File successfully uploaded. MD5: ' + md5_hash)
            return redirect(url_for('index'))

    return render_template('upload.html')
Ejemplo n.º 24
0
def unhash(request):
    if request.method == 'POST':
        photo = request.POST.get('photo')
        hashcode = request.POST.get('hashcode')
        encrypted = request.POST.get('encrypted')
        #caption is added
        caption = request.POST.get('caption')

        list = encrypted.split("_")
        print list

        #storing the geo-tagged information in variables

        lat = list[0]
        long = list[1]
        hr = list[2]
        min = list[3]
        day = list[4]
        month = list[5]
        yr = list[6]

        hard_location = "Jagatpura, Jaipur Municipal Corporation, Jaipur, Rajasthan, 302033, India"

        # forming the address and storing it in variable

        list.pop(2)
        list.pop(2)
        list.pop(2)
        list.pop(2)
        list.pop(2)
        try:
            geolocator = Nominatim()
            location = geolocator.reverse(list)

            address = (location.address)
        except:
            address = hard_location
        # saving the image in jpeg file

        image = open("image.jpeg", "wb")
        image.write(photo.decode('base64'))
        image.close()
        #generate the hash of the image
        #hash = hashlib.md5()
        hash = hashlib.sha256()
        print hash
        hash.update(open('image.jpeg', 'rb').read())

        generated_hash = (hash.digest()).encode('base64')

        user_obj = Images()

        # saving into database

        user_obj.hashcode = hashcode
        user_obj.caption = caption
        user_obj.latitude = lat
        user_obj.longitude = long
        user_obj.date = day
        user_obj.month = month
        user_obj.year = yr
        user_obj.ocr = 1
        user_obj.mse = 1
        user_obj.pic.save('image.jpeg', File(open('image.jpeg')), save=False)

        user_obj.location = address
        user_obj.generated_hash = generated_hash
        user_obj.save(force_insert=True)

        #ocr = ocr_process('image.jpeg')
        #mse = image_process('image.jpeg')
        #user_obj.ocr = ocr
        #user_obj.mse = mse
        #user_obj.save()
        ##########
        global new_name

        new_name = str("image_" + str(user_obj.Uid) + ".jpeg")
        os.rename("image.jpeg", new_name)
        new_name2 = "image_" + str(user_obj.Uid)
        new_name.encode('UTF-8')

        #returning the user id of the data user submitted
        print(user_obj.Uid)

        try:
            #thread.start_new_thread(return_Uid, ("Thread-1",user_obj.Uid,))
            thread.start_new_thread(constraint_match, (
                "Thread-2",
                user_obj.Uid,
            ))
        except Exception as e:
            print(e)
        return Response(user_obj.Uid)
def process_image():
    '''
    takes user input, create thumbnail, and store in DB
  '''

    uploadsDirExists = pathlib.Path('./uploads').exists()
    thumbnailsDirExists = pathlib.Path('./thumbnails').exists()

    if not uploadsDirExists:
        pathlib.Path('./uploads').mkdir()
        print("Uploads folder did not exist but was created.")
        print("Add images to the Uploads folder and try again.")
        return
    if not thumbnailsDirExists:
        pathlib.Path('./thumbnails').mkdir()
        print("Thumbnails folder was created")

    pics = list(pathlib.Path('./uploads').glob('*.*'))

    size = (128, 128)
    userFileName = input("Input image name:  \n")
    imgToProcess = 'noFile'
    stem = 'noStem'
    suffix = 'noSuffix'

    for pic in pics:
        if userFileName == pic.name:
            imgToProcess = str(pic.name)
            stem = str(pic.stem)
            suffix = str(pic.suffix)
        elif userFileName == pic.stem and pic.suffix:
            imgToProcess = str(pic.name)
            stem = str(pic.stem)
            suffix = str(pic.suffix)

    pathToImg = str(pathlib.Path('./uploads/{0}'.format(imgToProcess)))

    thumbnailImg = '{0}.thumbnail{1}'.format(stem, suffix)
    pathToOutput = str(pathlib.Path('./thumbnails/{0}'.format(thumbnailImg)))

    try:
        inThumbnails = pathlib.Path(pathToOutput).exists()

        if inThumbnails:
            print('Thumbnail already exists')
            return

        img = PIL.Image.open(pathToImg)
        img.thumbnail(size)
        img.save(pathToOutput, "JPEG")
        print('Created: {0} of size{1}'.format(thumbnailImg, str(size)))

    except FileNotFoundError:
        print('Oops there was an error.')
        print("File not found.")
        return

    except OSError:
        print('Oops there was an error.')
        print('Not an image file. Try again.')
        return

    except:
        print('Unexpected error:', sys.exc_info()[0])
        print('Check your configuration and try again.')
        return

    originalImage = Images(filename=imgToProcess,
                           thumbnailImg=thumbnailImg,
                           thumbnailPath=pathToOutput,
                           isThumbnail=False)

    processedImage = Thumbnails(filename=thumbnailImg,
                                original=imgToProcess,
                                originalPath=pathToImg,
                                isThumbnail=True)

    session.add_all([originalImage, processedImage])
    session.commit()
Ejemplo n.º 26
0
    def post(self):
        branch_name = self.request.get('branch_name')
        edit_type = self.request.get('e_type')
        premise_type = self.request.get('p_type')
        logging.info(self.request.POST)
        picture_url_0 = self.request.get('picture_url_0')
        if picture_url_0:
            field_storage = self.request.POST.multi['picture_url_0']
            mimetype = field_storage.type
            logging.info("Mimetype: {}".format(mimetype))
        user = self.current_user
        branch_q = db.GqlQuery("SELECT * FROM Branch WHERE branch = :1",
                               branch_name)
        branch = branch_q.get()
        #branch = Branch(parent=branch_key('Business'))
        #branch_key = branch.Key().id()
        #b_key = db.Key.from_path('Branch', branch)
        #tag_list1 = split(self.request.get('form_content_0'))
        tag_list = ['one', 'two', 'three']
        step = 0
        if premise_type == "contention":
            if edit_type == "0":
                c = Contention(branch_key=branch, tags=tag_list)
                c.content = self.request.get('form_content_0')
                c.branch_name = branch_name
                if self.logged_in:
                    logging.info('Checking currently logged in user')
                    logging.info(self.current_user.name)
                    sessiony = self.auth.get_user_by_session()
                    c.author = self.current_user.name
                    c.author_id = sessiony['user_id']
                c.put()
                if picture_url_0 != '':
                    i = Images(branch_key=branch, contention_key=c)
                    i.image = db.Blob(picture_url_0)
                    i.element_type = "contention"
                    i.description = self.request.get('image_description_0')
                    if self.logged_in:
                        i.author = self.current_user.name
                        i.author_id = sessiony['user_id']
                    i.put()
                    c.image_id = i.key().id()
                    c.put()
            elif edit_type == "1":
                contention_ID = self.request.get('c_id')
                con = Contention.get_by_id(int(contention_ID))
                if con.g_frames:
                    step = con.g_frames
                else:
                    step = 0
                gframe = Elements(contention_key=con,
                                  element_type="contention",
                                  gframe=step,
                                  image_id=con.image_id,
                                  author=con.author,
                                  author_id=con.author_id,
                                  content=con.content)
                gframe.put()
                con.content = self.request.get('form_content_0')
                con.g_frames = step + 1
                if picture_url_0 != '':
                    i = Images(branch_key=branch, contention_key=c)
                    i.image = db.Blob(picture_url_0)
                    i.element_type = "contention"
                    i.description = self.request.get('image_description_0')
                    if self.logged_in:
                        sessiony = self.auth.get_user_by_session()
                        i.author = self.current_user.name
                        i.author_id = sessiony['user_id']
                    i.put()
                    con.image_id = i.key().id()
                con.put()
        if premise_type == "element":
            contention_ID = self.request.get('c_id')
            con = Contention.get_by_id(int(contention_ID))
            if edit_type == "0":
                c = Elements(contention_key=con, gframe=step)
                c.content = self.request.get('form_content_0')
                c.branch_name = branch_name
                if self.logged_in:
                    logging.info('Checking currently logged in user')
                    logging.info(self.current_user.name)
                    sessiony = self.auth.get_user_by_session()
                    c.author = self.current_user.name
                    c.author_id = sessiony['user_id']
                c.put()
                if picture_url_0 != '':
                    i = Images(branch_key=branch, contention_key=con)
                    i.image = db.Blob(picture_url_0)
                    i.element_type = "contention"
                    i.description = self.request.get('image_description_0')
                    if self.logged_in:
                        i.author = self.current_user.name
                        i.author_id = sessiony['user_id']
                    i.put()
                    c.image_id = i.key().id()
                    c.put()
                    con.g_frames = step + 1
                    con.put()
            elif edit_type == "1":
                contention_ID = self.request.get('c_id')
                con = Contention.get_by_id(int(contention_ID))
                gframe = Elements(contention_key=con,
                                  element_type="contention",
                                  gframe=step,
                                  image_id=con.image_id,
                                  author=con.author,
                                  author_id=con.author_id,
                                  content=con.content)
                gframe.put()
                con.content = self.request.get('form_content_0')
                con.g_frames = step + 1
                if picture_url_0 != '':
                    i = Images(branch_key=branch, contention_key=c)
                    i.image = db.Blob(picture_url_0)
                    i.element_type = "contention"
                    i.description = self.request.get('image_description_0')
                    if self.logged_in:
                        sessiony = self.auth.get_user_by_session()
                        i.author = self.current_user.name
                        i.author_id = sessiony['user_id']
                    i.put()
                    con.image_id = i.key().id()
                con.put()

        reasons = int(self.request.get('_reasons'))
        objections = int(self.request.get('_objections'))
        if reasons > 0:
            if edit_type == "0":
                for reas in range(1, reasons + 1):
                    pic = 'picture_url_' + str(reas)
                    pict = self.request.get(pic)
                    if premise_type == "contention":
                        r = Elements(contention_key=c,
                                     top_level=1,
                                     gframe=step)
                    if premise_type == "element":
                        r = Elements(contention_key=con,
                                     top_level=0,
                                     gframe=step,
                                     parent_id=c.key().id())
                    r.element_type = 'reason'
                    if pict != '':
                        i = Images(branch_key=branch, contention_key=c)
                        i.image = db.Blob(picture_url_0)
                        i.element_type = "contention"
                        i.description = self.request.get('image_description_0')
                        if self.logged_in:
                            sessiony = self.auth.get_user_by_session()
                            i.author = self.current_user.name
                            i.author_id = sessiony['user_id']
                        i.put()
                    #r.image_id=i.key().id()
                    rcon = 'form_reason_' + str(reas)
                    r.content = self.request.get(rcon)
                    r.branch_name = branch_name
                    if self.logged_in:
                        sessiony = self.auth.get_user_by_session()
                        r.author = self.current_user.name
                        r.author_id = sessiony['user_id']
                    r.put()

            elif edit_type == "1":
                for reas in range(1, reasons + 1):
                    pic = 'picture_url_' + str(reas)
                    pict = self.request.get(pic)
                    el_id = 'form_reason_' + str(reas) + '_'
                    e_id = self.request.get(el_id)
                    rcon = 'form_reason_' + str(reas)
                    r_content = self.request.get(rcon)
                    logging.info("this is test")
                    logging.info('form_reason_' + str(reas) + '_')
                    r = Elements.get_by_id(int(e_id))
                    if r_content != r.content:
                        if premise_type == "contention":
                            gframe = Elements(contention_key=con,
                                              element_type="reason",
                                              gframe=step,
                                              image_id=r.image_id,
                                              author=r.author,
                                              author_id=r.author_id,
                                              content=r.content)
                            gframe.put()
                            r.content = r_content
                            r.g_frame = con.g_frames
                        if premise_type == "element":
                            r = Elements(contention_key=con,
                                         parent_id=c.key().id())
                            r.top_level = 0
                        r.element_type = 'reason'
                        if pict != '':
                            i = Images(branch_key=branch, contention_key=c)
                            i.image = db.Blob(picture_url_0)
                            i.element_type = "contention"
                            i.description = self.request.get(
                                'image_description_0')
                            if self.logged_in:
                                sessiony = self.auth.get_user_by_session()
                                i.author = self.current_user.name
                                i.author_id = sessiony['user_id']
                            i.put()
                        #r.image_id=i.key().id()
                        rcon = 'form_reason_' + str(reas)
                        r.content = self.request.get(rcon)
                        r.branch_name = branch_name
                        if self.logged_in:
                            sessiony = self.auth.get_user_by_session()
                            r.author = self.current_user.name
                            r.author_id = sessiony['user_id']
                        r.put()
        if objections > 0:
            for objs in range(1, objections + 1):
                picobjs = objs + 5
                pic = 'picture_url_' + str(picobjs)
                pict = self.request.get(pic)
                o = Elements(contention_key=c)
                if premise_type == "contention":
                    o = Elements(contention_key=c)
                    o.top_level = 1
                if premise_type == "element":
                    o = Elements(contention_key=con, parent_id=c)
                    o.top_level = 0
                if pict != '':
                    o.image = db.Blob(urlfetch.Fetch(pict).content)
                ocon = 'form_objection_' + str(objs)
                o.content = self.request.get(ocon)
                o.branch_name = branch_name
                if self.logged_in:
                    sessiony = self.auth.get_user_by_session()
                    o.author = self.current_user.name
                    o.author_id = sessiony['user_id']
                o.put()

        self.redirect('/conv?con_id=%s' % c.key().id())
Ejemplo n.º 27
0
    def post(self):
        data = request.get_json()
        try:
            #user_id = data['user_id']
            name = data['name']
            #sex = data['sex']
            #img_filename = data['img_filename']
            #b64image = data['b64image']  # for profile image!
            b64video = data['b64video']  # for training images!
            training = data['training']
            #decoded_image = base64.b64decode(b64image)
            decoded_video = base64.b64decode(b64video)
        except Exception as e:
            print(e)
            abort(400, e)
        #img_data = BytesIO(decoded_image)
        video_data = BytesIO(decoded_video)

        #user = User.query.filter_by(id=user_id).first()

        seq_image_dir = "{}".format(name)
        user_id = 1  # test...
        seq_filename = "{}_{}.jpg".format(user_id,
                                          get_filename_appended_date(""))
        seq_image_dir = os.path.join("web", "static",
                                     BaseConfig.SEQUENTIAL_IMAGE_URI,
                                     seq_image_dir)
        seq_image_uri = os.path.join(seq_image_dir, seq_filename)
        file = FileStorage(video_data, filename=seq_filename)

        mkdir(seq_image_dir)
        file.save(seq_image_uri)

        # add seq img db
        new_seq_img = SequentialImages(seq_image_dir, 0)
        db.session.add(new_seq_img)
        try:
            db.session.commit()
        except Exception as e:
            abort(500, e)

        img_filename = "{}_{}.{}".format(user_id, secure_filename(""),
                                         img_filename.split('.')[-1])
        img_uri = os.path.join("static", BaseConfig.IMAGE_URI, img_filename)
        file = FileStorage(img_data, filename=img_filename)
        file.save(img_uri)

        # add img db
        new_img = Images(img_uri)
        db.session.add(new_img)
        try:
            db.session.commit()
        except Exception as e:
            abort(500, e)

        ####
        # read and video processing(opencv capture)... and save jpg img...
        vidcap = cv2.VideoCapture(seq_filename)
        success, image = vidcap.read()
        count = 0
        while success:
            if count >= 60:
                break
            cv2.imwrite(os.path.join(seq_image_dir, "frame%d.jpg" % count),
                        image)  # save frame as JPEG file
            success, image = vidcap.read()
            print('Read a new frame: ', success)
            count += 1
        ####

        # EXECUTE TRAINING
        if training == 1:
            print("training!")
        ####

        # add family member db
        '''