Files
mayan-edms/mayan/apps/file_metadata/utils.py
Roberto Rosario 0a7908baca File metadata: Add file metadata app
Add the file metadata app. This app uses binary wrappers called drivers
to extract properties from the file of documents. The default driver
uses the exiftool to extract the EXIF record from JPEG images.
The exiftool can also extra some properties from other files like
PDFs, office files and sound file.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-14 02:16:38 -04:00

49 lines
1.4 KiB
Python

from __future__ import unicode_literals
from .events import event_file_metadata_document_version_submit
from .tasks import task_process_document_version
def method_document_submit(self):
latest_version = self.latest_version
# Don't error out if document has no version
if latest_version:
latest_version.submit_for_file_metadata_processing()
def method_document_version_submit(self):
event_file_metadata_document_version_submit.commit(
action_object=self.document, target=self
)
task_process_document_version.apply_async(
kwargs={
'document_version_id': self.pk,
}
)
def method_get_document_file_metadata(self, dotted_name):
latest_version = self.latest_version
# Don't error out if document has no version
if latest_version:
return latest_version.get_file_metadata(
dotted_name=dotted_name
)
def method_get_document_version_file_metadata(self, dotted_name):
driver_internal_name, key = dotted_name.split('.')
try:
document_driver = self.file_metadata_drivers.get(
driver__internal_name=driver_internal_name
)
except self.file_metadata_drivers.model.DoesNotExist:
return
else:
try:
return document_driver.entries.get(key=key).value
except document_driver.entries.model.DoesNotExist:
return