예제 #1
0
def newPicture():
    e = Event('getImage.newPicture')
    pict = Picture()
    blibb = request.form['b']
    key = request.form['k']
    user = get_user_name(key)
    items = dict()
    r = pict.create(user, items, blibb)
    e.save()
    if r != 'null':
        return r
    else:
        abort(404)
예제 #2
0
def upload():
    current_app.logger.info('Upload Image')
    login_key = request.form.get('login_key', False)
    # app_token = request.form.get('app_token', False)
    app_user = request.form.get('u', False)

    if login_key:
        user = get_user_name(login_key)
    else:
        user = app_user

    if 'file' in request.files:
        file = request.files['file']
        if is_image(file.filename):
            object_id = Picture.create(user, {}, file.filename)
        elif is_attachment(file.filename):
            object_id = Attachment.create(user, {}, file.filename)

        filename = secure_filename(object_id + '-' + file.filename)
        c = connect_s3()
        bucket_name = get_config_value('BUCKET')
        bucket = c.create_bucket(bucket_name)
        k = Key(bucket)
        k.key = user + '/' + filename
        k.set_metadata('owner', user)
        extension = os.path.splitext(filename)[1]
        k.content_type = file.content_type
        current_app.logger.info('Extension: ' + str(extension))
        current_app.logger.info('file.content_type: ' + str(file.content_type))
        if extension.lower() == '.jpg':
            k.content_type = 'image/jpeg'
        if extension.lower() == '.png':
            k.content_type = 'image/png'
        if extension.lower() == '.gif':
            k.content_type = 'image/gif'
        current_app.logger.info('Extension: ' + str(extension))
        current_app.logger.info('file.content_type: ' + str(k.content_type))
        k.set_contents_from_string(file.read())
        k.make_public()
        url = 'http://%s/%s' % (bucket_name, k.key)
        current_app.logger.info(
            '########## url: ' + str(url) + ' ' + str(bucket)
        )
        if is_image(file.filename):
            Picture.add_url(object_id, url)
        elif is_attachment(file.filename):
            object_id = Attachment.add_url(object_id, file.filename)

        return jsonify({'upload': url})
    return jsonify({'upload': 'error'})
예제 #3
0
def getImage(pict_id=None, size=160):
    e = Event('web.content.getImage')
    r = None
    if is_valid_id(pict_id):
        try:
            img = Picture.dump_image(pict_id)
            g = file(Picture.get_image_by_size(img, size))
            return Response(g, direct_passthrough=True)
        except IOError:
            abort(404)
    e.save()
    if r != 'null':
        return json.dumps(r)
    else:
        abort(404)
예제 #4
0
def newBlibb():
    name = request.form['bname']
    desc = request.form['bdesc']
    template = request.form['btemplate']
    key = request.form['bkey']
    user = get_user_name(key)
    image_id = request.form['bimage']
    slug = request.form['slug']
    write_access = request.form['write_access']
    read_access = request.form['read_access']

    # check if a blibb with that slug already exists
    blibb = Blibb.get_by_slug(user, slug)
    # return jsonify(blibb)

    if not blibb:
        res = {'error': 'None'}
        if is_valid_id(image_id):
            image = Picture.dump_image(image_id)
        else:
            image = 'blibb.png'

        new_id = Blibb.insert(user, name, slug, desc, template, image, read_access, write_access)
        res = {'id': new_id}
    else:
        res = {'error': 'Blibb with that slug already exists'}
    return jsonify(res)
예제 #5
0
def getImageByUsername(user_name=None):
    r = Picture.get_images({'u': user_name}, {'_id': 1, 'b': 1})
    current_app.logger.info(r)
    if r and len(r) > 0:
        return jsonify({'images': r})
    else:
        abort(404)
예제 #6
0
def set_picture_data():
    e = Event('getImage.set_picture_data')
    jsonData = request.form['p']
    r = Picture.updateJson(jsonData)
    e.save()
    if r != 'null':
        return r
    else:
        abort(404)
예제 #7
0
def get_picture_data(picture_id=None):
    e = Event('getImage.get_picture_data')
    r = None
    if is_valid_id(picture_id):
        r = Picture.dump_image(picture_id)
    e.save()
    if r is not None:
        return jsonify(r)
    else:
        abort(404)
예제 #8
0
	def test_getObjects(self):
		p = Picture()
		res = p.getObjects({'u':'ipedrazas'},{'_id','b'})
		print res		
예제 #9
0
 def add_picture(self, filter, picture_id):
     if is_valid_id(picture_id):
         image = Picture.dump_image(picture_id)
         objects.update(filter, {"$set": {'img': image}})
         return picture_id
     return Message.get('id_not_valid')