Exemple #1
0
    def test_url_for_filename__with_extension(self, _url, Config):
        config = Mock()
        config.bucket_name.return_value = 'greeble'
        Config.return_value = config

        ImageTruck.url_for_filename('CAFEBABE', extension=True)
        _url.assert_called_once_with('CAFEBABE', 'greeble', extension=True)
Exemple #2
0
def show_image(request_format, image_id, size):
    session = Client().session()
    image = session.query(Image).\
        filter(Image.image_id == image_id).\
        one()
    if g.user:
        albums = session.query(Album).all()
    else:
        albums = []
    if image.album_id is not None:
        album = session.query(Album).\
            filter(Album.album_id == image.album_id).\
            one()
    else:
        album = None
    (prev, next) = image.neighbors()
    resizes = session.query(ImageResize).\
        filter(ImageResize.image_id == image_id).\
        order_by(ImageResize.width.asc()).\
        all()
    url = ImageTruck.url_for_filename(image.filename)

    if resizes and size in [r.suffix for r in resizes]:
        url = '{0}_{1}'.format(url, size)

    tags = image.get_tags()
    if request_format == 'html':
        return render_template('image.html.jinja',
                               image=image,
                               prev=prev,
                               next=next,
                               album=album,
                               albums=albums,
                               url=url,
                               tags=list(tags),
                               metadata_fields=filter(lambda (x,_): getattr(image, x), Image.metadata_fields),
                               getattr=getattr,
                               resizes=resizes,
                               size=size)
    elif request_format == 'json':
        return {
            'description': image.description,
            'title': image.title,
            'camera': image.camera,
            'photographed_at': image.photographed_at,
            'focal_length': image.focal_length,
            'aperture': image.aperture,
            'shutter_speed': image.shutter_speed,
            'iso': image.iso,
            'album_id': image.album_id,
            'tags': list(tags),
            'source_url': url,
        }
Exemple #3
0
def show_image(request_format, image_id, size):
    session = Client().session()
    image = session.query(Image).filter(Image.image_id == image_id).one()
    if g.user:
        albums = session.query(Album).all()
    else:
        albums = []
    if image.album_id is not None:
        album = session.query(Album).filter(Album.album_id == image.album_id).one()
    else:
        album = None
    (prev, next) = image.neighbors()
    resizes = (
        session.query(ImageResize).filter(ImageResize.image_id == image_id).order_by(ImageResize.width.asc()).all()
    )
    url = ImageTruck.url_for_filename(image.filename)

    if resizes and size in [r.suffix for r in resizes]:
        url = "{0}_{1}".format(url, size)

    tags = image.get_tags()
    if request_format == "html":
        return render_template(
            "image.html.jinja",
            image=image,
            prev=prev,
            next=next,
            album=album,
            albums=albums,
            url=url,
            tags=list(tags),
            metadata_fields=filter(lambda (x, _): getattr(image, x), Image.metadata_fields),
            getattr=getattr,
            resizes=resizes,
            size=size,
        )
    elif request_format == "json":
        return {
            "description": image.description,
            "title": image.title,
            "camera": image.camera,
            "photographed_at": image.photographed_at,
            "focal_length": image.focal_length,
            "aperture": image.aperture,
            "shutter_speed": image.shutter_speed,
            "iso": image.iso,
            "album_id": image.album_id,
            "tags": list(tags),
            "source_url": url,
        }
Exemple #4
0
def find(request_format):
    tag_names = request.args['tags'].strip().split(' ')
    image_structs = []
    image_data = Tag.get_image_data(tag_names)
    for filename, image_id, caption in image_data:
        image_structs.append({
            'source_url': ImageTruck.url_for_filename(filename),
            'url': url_for('show_image', image_id=image_id),
            'caption': caption,
        })
    if request_format == 'html':
        return render_template('find.html.jinja', images=image_structs)
    elif request_format == 'json':
        return image_structs
Exemple #5
0
def show_image(request_format, image_id, size):
    session = Client().session()
    image = session.query(Image).\
        filter(Image.image_id == image_id).\
        one()
    if g.user:
        albums = session.query(Album).all()
    else:
        albums = []
    try:
        album = filter(lambda a: a.album_id == image.album_id, albums)[0]
    except IndexError:
        album = None
    resizes = session.query(ImageResize).\
        filter(ImageResize.image_id == image_id).\
        order_by(ImageResize.width.asc()).\
        all()
    url = ImageTruck.url_for_filename(image.filename)
    if resizes and size != 'original':
        if size not in map(lambda r: r.suffix, resizes):
            size = resizes[0].suffix
        url = '%s_%s' % (url, size)
    tags = image.get_tags()
    if request_format == 'html':
        return render_template('image.html.jinja',
                               image=image,
                               album=album,
                               albums=albums,
                               url=url,
                               tags=tags,
                               resizes=resizes,
                               user=g.user,
                               size=size)
    elif request_format == 'json':
        return {
            'description': image.description,
            'title': image.title,
            'camera': image.camera,
            'photographed_at': image.photographed_at,
            'focal_length': image.focal_length,
            'aperture': image.aperture,
            'shutter_speed': image.shutter_speed,
            'iso': image.iso,
            'album_id': image.album_id,
            'tags': list(tags),
            'source_url': url,
        }
 def test_url_for_filename(self):
     eq_(ImageTruck.url_for_filename('CAFEBABE'),
             'https://s3.amazonaws.com/greeble/CAFEBABE')
Exemple #7
0
 def test_url_for_filename(self, Config):
     config = Mock()
     config.bucket_name.return_value = 'greeble'
     Config.return_value = config
     eq_(ImageTruck.url_for_filename('CAFEBABE'),
             'https://s3.amazonaws.com/greeble/CAFEBABE')