Merge pull request #6 from francescocarzaniga/master

Replace extension checking with python-magic
master
Eugen Ciur 2020-11-29 08:35:29 +01:00 committed by GitHub
commit 8d5077933f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 9 additions and 7 deletions

View File

@ -24,7 +24,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install pycodestyle pytest coverage
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements/base.txt ]; then pip install -r requirements/base.txt; fi
sudo apt install poppler-utils pdftk
- name: Lint with pycodestyle
run: |

View File

@ -2,6 +2,7 @@ import os
import re
import subprocess
import logging
from magic import from_file
from .conf import settings
from .exceptions import FileTypeNotSupported
@ -63,18 +64,18 @@ def get_pagecount(filepath):
if os.path.isdir(filepath):
raise ValueError("Filepath %s is a directory!" % filepath)
base, ext = os.path.splitext(filepath)
mime_type = from_file(filepath, mime=True)
# pure images (png, jpeg) have only one page :)
if ext and ext.lower() in ('.jpeg', '.png', '.jpg'):
if mime_type in ['image/png', 'image/jpeg', 'image/jpg']:
# whatever png/jpg image is there - it is
# considered by default one page document.
return 1
if ext and ext.lower() in ('.tiff', ):
if mime_type == 'image/tiff':
return get_tiff_pagecount(filepath)
if ext and ext.lower() not in ('.pdf', '.tiff'):
if mime_type != 'application/pdf':
raise FileTypeNotSupported(
"Only jpeg, png, pdf and tiff are handled by this"
" method"

1
requirements/base.txt Normal file
View File

@ -0,0 +1 @@
python-magic

View File

@ -1,2 +1,2 @@
I am not even binary!
ÿØÿØI am not even binary!
The idea is to test pdfinfo.get_pagecount

Before

Width:  |  Height:  |  Size: 63 B

After

Width:  |  Height:  |  Size: 67 B

View File

@ -1 +1 @@
well... I am text! But who cares? The idea is to test pdfinfo.get_pagecount
ÿØÿîwell... I am text! But who cares? The idea is to test pdfinfo.get_pagecount

Before

Width:  |  Height:  |  Size: 75 B

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 B

After

Width:  |  Height:  |  Size: 1.3 KiB