Esempio n. 1
0
def refresh_thumbnail():
    def refresh_thumbnail_helper(dir_model):
        dir_children = [d for d in Directory.query.filter(Directory.parent == dir_model.id).all()]
        file_children = [f for f in File.query.filter(File.parent == dir_model.id).all()]
        for file in file_children:
            if file.thumbnail_uuid != DEFAULT_THUMBNAIL_NAME:
                return file.thumbnail_uuid
        for d in dir_children:
            if d.thumbnail_uuid != DEFAULT_THUMBNAIL_NAME:
                return d.thumbnail_uuid
        # WE HAVE TO GO DEEPER (inception noise)
        for d in dir_children:
            return refresh_thumbnail_helper(d)
        # No thumbnail found
        return DEFAULT_THUMBNAIL_NAME

    missing_thumbnails = File.query.filter(File.thumbnail_uuid == DEFAULT_THUMBNAIL_NAME).all()
    for file_model in missing_thumbnails:
        dir_path = get_full_dir_path(file_model.parent)
        file_path = os.path.join(dir_path, file_model.name)
        mime = file_model.mimetype
        file_model.thumbnail_uuid = generate_image_thumbnail(file_path, dir_path, mime)
        db.session.flush()
        db.session.commit()
        db.session.refresh(file_model)

    missing_thumbnails = Directory.query.filter(Directory.thumbnail_uuid == DEFAULT_THUMBNAIL_NAME).all()
    for dir_model in missing_thumbnails:
        dir_model.thumbnail_uuid = refresh_thumbnail_helper(dir_model)
        db.session.flush()
        db.session.commit()
        db.session.refresh(dir_model)
Esempio n. 2
0
def refresh_default_thumbnails():
    missing_thumbnails = File.query.filter(File.thumbnail_uuid == DEFAULT_THUMBNAIL_NAME).all()
    for file_model in missing_thumbnails:
        dir_path = get_full_dir_path(file_model.parent)
        file_path = os.path.join(dir_path, file_model.name)
        mime = file_model.mimetype
        file_model.thumbnail_uuid = generate_image_thumbnail(file_path, dir_path, mime)
        db.session.flush()
        db.session.commit()
        db.session.refresh(file_model)

    missing_thumbnails = Directory.query.filter(Directory.thumbnail_uuid == DEFAULT_THUMBNAIL_NAME).all()
    for dir_model in missing_thumbnails:
        dir_model.thumbnail_uuid = refresh_directory_thumbnail(dir_model)
        db.session.flush()
        db.session.commit()
        db.session.refresh(dir_model)