Commit 8fa41b10 authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

fixes #7 always perform OCR on images

parent 1f02aea7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ APIs et interfaces de stockage de médias.
- imagemagick (convert)
- pdftoppm
- vips
- tesseract

## Variables d'environnement / valeurs par défaut

+19 −0
Original line number Diff line number Diff line
@@ -85,6 +85,23 @@ def get_file_type_from_extension(extension: str) -> models.FileType:
    return file_type


def make_ocr(f: models.File):
    ocr_return_code = call(["tesseract", f.local_path(), f.local_path() + ".ocr"])
    if ocr_return_code == 0:
        with open(f.local_path() + ".ocr.txt", "r") as ocr:
            content = ocr.read()
            public_owner = User.objects.get(username="public_user")
            metas_set, created = models.MetadataSet.objects.get_or_create(
                title="OCR", owner=public_owner
            )
            meta, created = models.Metadata.objects.get_or_create(
                owner=public_owner, title="tesseract output", set=metas_set
            )
            (_, created,) = models.MetadataResourceValue.objects.get_or_create(
                metadata=meta, resource=f, value=content
            )


def handle_uploaded_file(f: File, user: User, force_file_name=None) -> int:
    upload_hash = hash_upload(f)
    destination_dir = "{}{}{}{}{}{}".format(
@@ -131,6 +148,8 @@ def handle_uploaded_file(f: File, user: User, force_file_name=None) -> int:
                        resource=file,
                    )
        if file.should_have_iiif():
            make_ocr(file)

            iiif_destination_dir = "{}{}{}{}{}{}".format(
                settings.IIIF_DIR,
                os.path.sep,