Exemple #1
0
def test_to_jpeg() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path0 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                     height=512,
                                     width=256,
                                     page=0,
                                     force=True)
    assert os.path.exists(path0) is True
    assert os.path.getsize(path0) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0)

    with Image.open(path0) as jpeg:
        assert jpeg.height == 357
        assert jpeg.width == 256

    path1 = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                     height=512,
                                     width=256,
                                     page=1,
                                     force=True)
    assert os.path.exists(path1) is True
    assert os.path.getsize(path1) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1)

    with Image.open(path1) as jpeg:
        assert jpeg.height == 357
        assert jpeg.width == 256
Exemple #2
0
def test_to_jpeg():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path0 = manager.get_jpeg_preview(file_path=os.path.join(
        CURRENT_DIR, 'the_odt.odt'),
                                     height=512,
                                     width=256,
                                     page=0,
                                     force=True)
    assert os.path.exists(path0) == True
    assert os.path.getsize(path0) > 0
    assert path0 == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x512-page0.jpeg'  # nopep8

    with Image.open(path0) as jpeg:
        assert jpeg.height in range(361, 363)
        assert jpeg.width == 256

    path1 = manager.get_jpeg_preview(file_path=os.path.join(
        CURRENT_DIR, 'the_odt.odt'),
                                     height=512,
                                     width=256,
                                     page=1,
                                     force=True)
    assert os.path.exists(path1) == True
    assert os.path.getsize(path1) > 0
    assert path1 == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x512-page1.jpeg'  # nopep8
    with Image.open(path1) as jpeg:
        assert jpeg.height in range(361, 363)
        assert jpeg.width == 256
Exemple #3
0
def test_odp_to_jpeg_no_extension() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert (manager.has_jpeg_preview(file_path=ODP_FILE_PATH_NO_EXTENSION,
                                     file_ext=ODP_FILE_EXT) is True)
    path0 = manager.get_jpeg_preview(
        file_path=ODP_FILE_PATH_NO_EXTENSION,
        file_ext=ODP_FILE_EXT,
        height=512,
        width=256,
        page=0,
        force=True,
    )
    assert os.path.exists(path0)
    assert os.path.getsize(path0) > 0
    re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path0)

    with Image.open(path0) as jpeg:
        assert jpeg.height == 192
        assert jpeg.width == 256

    path1 = manager.get_jpeg_preview(
        file_path=ODP_FILE_PATH_NO_EXTENSION,
        file_ext=ODP_FILE_EXT,
        height=512,
        width=256,
        page=1,
        force=True,
    )
    assert os.path.exists(path1)
    assert os.path.getsize(path1) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN_WITH_PAGE__JPEG, path1)

    with Image.open(path1) as jpeg:
        assert jpeg.height == 192
        assert jpeg.width == 256
Exemple #4
0
def test_to_jpeg__default_size(file_path):
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    with pytest.raises(UnsupportedMimeType):
        manager.get_jpeg_preview(
            file_path=file_path,
            file_ext='.bin'
        )
Exemple #5
0
def test_to_jpeg(file_path):
    manager = PreviewManager(
        cache_folder_path=CACHE_DIR,
        create_folder=True
    )
    with pytest.raises(UnsupportedMimeType):
        manager.get_jpeg_preview(
            file_path=file_path,
            height=256,
            width=512
        )
Exemple #6
0
 def get_one(self,
             page_id: str='-1',
             revision_id: str=None,
             size: int=300,
             *args, **kwargs):
     file_id = int(tg.request.controller_state.routing_args.get('file_id'))
     page = int(page_id)
     revision_id = int(revision_id) if revision_id != 'latest' else None
     cache_path = CFG.get_instance().PREVIEW_CACHE_DIR
     preview_manager = PreviewManager(cache_path, create_folder=True)
     user = tmpl_context.current_user
     content_api = ContentApi(user,
                              show_archived=True,
                              show_deleted=True)
     if revision_id:
         file_path = content_api.get_one_revision_filepath(revision_id)
     else:
         file = content_api.get_one(file_id, self._item_type)
         file_path = content_api.get_one_revision_filepath(file.revision_id)
     try:
         path = preview_manager.get_jpeg_preview(file_path=file_path,
                                                 page=page,
                                                 height=size,
                                                 width=size)
         with open(path, 'rb') as large:
             result = large.read()
     except PreviewGeneratorException:
         result = None
     return result
Exemple #7
0
def create_preview(doc_id):
    document = BaseDocument.objects.get(unique_uuid=doc_id)
    upload_document_path = get_upload_document_path(
        document, os.path.basename(document.main_file.name))
    upload_cache_path = get_preview_directory(
        document, os.path.basename(document.main_file.name))
    full_path = os.path.join(MEDIA_ROOT, upload_document_path)
    full_cache_path = os.path.join(MEDIA_ROOT, upload_cache_path)
    cache_path = os.path.dirname(full_cache_path)

    manager = PreviewManager(cache_path, create_folder=True)
    try:
        path_to_preview_image = manager.get_jpeg_preview(full_path,
                                                         width=1920,
                                                         height=1080)
    except UnavailablePreviewType:
        logger.warning("UnavailablePreviewType: Preview was not created")
    else:
        preview_dir_path = os.path.dirname(path_to_preview_image)
        preview_base_name = os.path.basename(path_to_preview_image)
        document.preview.name = os.path.join(
            upload_cache_path, os.path.basename(path_to_preview_image))

        if document.main_file.name.endswith('.pdf'):
            document.preview_pdf.name = upload_document_path
            return

        os.chdir(preview_dir_path)
        for file in glob.glob(
                preview_base_name.replace('-1920x1080.jpeg', '') + "*.pdf"):
            document.preview_pdf.name = os.path.join(upload_cache_path,
                                                     os.path.basename(file))
            return
Exemple #8
0
def add(request, code, lecture):
    try:
        lecture = Lecture.objects.get(pk=lecture)
    except Exception as e:
        raise Http404
    if request.method != "POST": raise Http404()

    print(request.FILES)
    form = ResourceForm(request.POST, request.FILES)
    print(form)
    # print(form.errors)
    if form.is_valid():
        file = form.cleaned_data['file']
        resource = Resource(title=file.name, lecture=lecture, file=file)
        resource.save()
    else:
        return HttpResponse("error")
    manager = PreviewManager(cache_path, create_folder=True)
    print(resource.file.path)
    path_to_preview_image = manager.get_jpeg_preview(resource.file.path,
                                                     page=0)
    resource.preview = path_to_preview_image.split('/')[-1]
    resource.save()

    return HttpResponseRedirect(reverse('courses:course', args=[code]))
Exemple #9
0
def test_text_to_jpeg():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=os.path.join(
        CURRENT_DIR, 'the_text.txt'),
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
def generate():
    name = request.args.get('filename', 'unnamed')
    app.logger.info('POST  /preview?filename=%s' % name)

    data = request.data
    with tempfile.TemporaryDirectory() as tmpdirname:
        input_path = os.path.join(tmpdirname, name)
        file = open(input_path, 'w+b')
        file.write(data)
        file.close()

        cache_path = os.path.join(tmpdirname, 'cache')
        try:
            manager = PreviewManager(cache_path, create_folder=True)
            output_path = manager.get_jpeg_preview(input_path)

            file = open(output_path, 'r+b')
            output = file.read()
            response = make_response(output)
            response.headers['Content-Type'] = 'image/jpeg'
            response.headers[
                'Content-Disposition'] = 'inline;filename=%s' % output_path
            app.logger.info(' ==> POST  /preview?filename=%s  ok' %
                            output_path)
            return response
        except InputExtensionNotFound as error:
            return jsonify(error=repr(error), code=400), 400
        except Exception as error:
            return jsonify(error=repr(error), code=400), 400
Exemple #11
0
def get_image_preview(file_id, path):
    cache_path = pathconst.TEMP
    manager = PreviewManager(cache_path, create_folder=True)
    path_to_jpeg_preview = manager.get_jpeg_preview(file_path=path,
                                                    height=800,
                                                    width=800)
    return path_to_jpeg_preview
Exemple #12
0
def test_to_jpeg_no_extension() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = HTML_FILE_PATH_NO_EXTENSION
    assert manager.has_jpeg_preview(file_path=image_file_path) is True
    path_to_file = manager.get_jpeg_preview(file_path=image_file_path,
                                            force=True)
    assert os.path.exists(path_to_file) is True
Exemple #13
0
 def get_one(self,
             page_id: str = '-1',
             revision_id: str = None,
             size: int = 300,
             *args,
             **kwargs):
     file_id = int(tg.request.controller_state.routing_args.get('file_id'))
     page = int(page_id)
     revision_id = int(revision_id) if revision_id != 'latest' else None
     cache_path = CFG.get_instance().PREVIEW_CACHE_DIR
     preview_manager = PreviewManager(cache_path, create_folder=True)
     user = tmpl_context.current_user
     content_api = ContentApi(user, show_archived=True, show_deleted=True)
     if revision_id:
         file_path = content_api.get_one_revision_filepath(revision_id)
     else:
         file = content_api.get_one(file_id, self._item_type)
         file_path = content_api.get_one_revision_filepath(file.revision_id)
     try:
         path = preview_manager.get_jpeg_preview(file_path=file_path,
                                                 page=page,
                                                 height=size,
                                                 width=size)
         with open(path, 'rb') as large:
             result = large.read()
     except PreviewGeneratorException:
         result = None
     return result
def test_text_to_jpeg():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_pdf_preview(file_path=IMAGE_FILE_PATH, ) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                            force=True)
    assert os.path.exists(path_to_file) is True
    assert os.path.getsize(path_to_file) > 0
Exemple #15
0
def test_algorithm4():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH__A4) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH__A4,
                                            force=True)
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
Exemple #16
0
def test_text_to_jpeg() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = HTML_FILE_PATH
    assert manager.has_jpeg_preview(file_path=image_file_path) is True
    path_to_file = manager.get_jpeg_preview(file_path=image_file_path,
                                            force=True)
    assert os.path.exists(path_to_file) is True
    assert os.path.getsize(path_to_file) > 0
Exemple #17
0
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(226, 228)
        assert jpeg.width == 256
def test_to_jpeg_no_extension_extension_forced():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    image_file_path = IMAGE_FILE_PATH_NO_EXTENSION
    assert manager.has_jpeg_preview(file_path=image_file_path,
                                    file_ext=".txt") is True
    path_to_file = manager.get_jpeg_preview(file_path=image_file_path,
                                            force=True,
                                            file_ext=".txt")
    assert os.path.exists(path_to_file) is True
Exemple #19
0
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, )
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == '/tmp/preview-generator-tests/cache/f910f2af6cda4fff79f21456e19e021c-256x256.jpeg'  # nopep8
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(229, 231)
        assert jpeg.width == 256
Exemple #20
0
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, )
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == '/tmp/preview-generator-tests/cache/4ebf3400b8b74282dfbf61e784777928-256x256.jpeg'  # nopep8
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(254, 256)
        assert jpeg.width == 256
def main() -> None:
    args = parse_args()
    logging.basicConfig(level=logging.ERROR - 10 * args.v)  # In logging, levels are 40, 30, 20, 10.
    if args.check_dependencies:
        check_dependencies()
    if args.input_files:
        manager = PreviewManager("./")
        for input_file in args.input_files:
            path_to_preview_image = manager.get_jpeg_preview(input_file)
            print(input_file, "→", path_to_preview_image)
Exemple #22
0
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH,
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == '/tmp/preview-generator-tests/cache/243918a3cda4aa11bfe7603b627a587f-256x256.jpeg'  # nopep8
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(100, 102)
        assert jpeg.width == 256
Exemple #23
0
def test_to_jpeg_no_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=os.path.join(
        CURRENT_DIR, 'the_pdf.pdf'),
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
Exemple #24
0
def pdf_to_image(cach_dir_path, pdf_file_path, font_path=None):
    """Convert text file to a grayscale image with black characters on a white background.

    arguments:
    text_path - the content of this file will be converted to an image
    font_path - path to a font file (for example impact.ttf)
    """
    preview_manager = PreviewManager(cach_dir_path, create_folder= True)
    preview = preview_manager.get_jpeg_preview(pdf_file_path, height=Height,width=WIDTH)
    return preview
Exemple #25
0
def create_thumb(sender, instance):
    #Se il file è un audio gli assegno una thumbnail prefatta
    if 'audio' in instance.tipoFile:
        return '/thumb/audio.png'
    else:
        filepath = instance.fileUrl.file.name
        cache_path = settings.MEDIA_ROOT + '/thumb'
        manager = PreviewManager(cache_path, create_folder=True)
        FullPathToimage = manager.get_jpeg_preview(filepath)
        return '/thumb/' + os.path.basename(FullPathToimage)
    def create_preview(self):
        full_path = self.upload.path
        cache_path = os.path.dirname(full_path)
        manager = PreviewManager(cache_path, create_folder=True)
        path_to_preview_image = manager.get_jpeg_preview(full_path,
                                                         width=200,
                                                         height=200)

        self.preview.name = path_to_preview_image.replace(MEDIA_ROOT, '')
        #raise Exception(self.preview.name,path_to_preview_image)
        self.save()
Exemple #27
0
def test_to_jpeg_no_size_no_page():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(file_path=os.path.join(
        CURRENT_DIR, 'the_odt.odt'),
                                            force=True)
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == '/tmp/preview-generator-tests/cache/22dd222de01caa012b7b214747169d41-256x256.jpeg'  # nopep8
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
def test_to_jpeg__default_size() -> None:
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH)
    assert os.path.exists(path_to_file) is True
    assert os.path.getsize(path_to_file) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(229, 231)
        assert jpeg.width == 256
Exemple #29
0
def test_to_jpeg_no_size_no_page():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    assert manager.has_jpeg_preview(file_path=IMAGE_FILE_PATH) is True
    path_to_file = manager.get_jpeg_preview(file_path=IMAGE_FILE_PATH, force=True)
    assert os.path.exists(path_to_file) is True
    assert os.path.getsize(path_to_file) > 0
    assert re.match(test_utils.CACHE_FILE_PATH_PATTERN__JPEG, path_to_file)

    with Image.open(path_to_file) as jpeg:
        assert jpeg.height == 256
        assert jpeg.width in range(180, 182)
Exemple #30
0
def test_problem():
    CUR_DIR = os.path.dirname(os.path.realpath(__file__))
    CACHE_PATH = '/tmp/cache'
    PROBLEM_FILE = CUR_DIR + '/problem.ai'

    manager = PreviewManager(CACHE_PATH, create_folder=True)
    output = manager.get_jpeg_preview(file_path=PROBLEM_FILE,
                                      height=512,
                                      width=512,
                                      force=True)
    print(output)
Exemple #31
0
def test_to_jpeg__default_size():
    manager = PreviewManager(cache_folder_path=CACHE_DIR, create_folder=True)
    path_to_file = manager.get_jpeg_preview(
        file_path=IMAGE_FILE_PATH,
        force=True
    )
    assert os.path.exists(path_to_file) == True
    assert os.path.getsize(path_to_file) > 0
    assert path_to_file == '/tmp/preview-generator-tests/cache/a0dcd8bf562212788204a09d85331d04-256x256.jpeg'  # nopep8
    with Image.open(path_to_file) as jpeg:
        assert jpeg.height in range(182, 184)
        assert jpeg.width == 256