Skip to content

Commit

Permalink
Remove hachoir replace with exiftools
Browse files Browse the repository at this point in the history
  • Loading branch information
kevthehermit committed Nov 16, 2016
1 parent 0d1620a commit d9a662d
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 59 deletions.
File renamed without changes.
61 changes: 61 additions & 0 deletions extensions/exifdata/exifdata.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
from web.common import Extension, string_clean_hex
from web.database import Database
import exiftool
import tempfile
from base64 import b64encode


class ExifData(Extension):

extension_name = 'ExifData'
extension_type = 'filedetails'

def run(self):
db = Database()
metadata = {}
img_src = None
if 'file_id' in self.request.POST:
file_id = self.request.POST['file_id']
file_object = db.get_filebyid(file_id)
file_data = file_object.read()

with tempfile.NamedTemporaryFile() as tmp:
tmp.write(file_data)

try:
with exiftool.ExifTool() as et:
metadata = et.get_metadata(tmp.name)
if 'File:MIMEType' in metadata:
if 'image' in metadata['File:MIMEType']:
img_src = b64encode(file_data)

# Clean up the metadata to remove things we don't need.
remove = ['File:Directory',
'File:FileInodeChangeDate',
'File:FileModifyDate',
'File:FileAccessDate',
'SourceFile',
'File:FilePermissions']

print metadata
for item in remove:
if item in metadata:
print metadata[item]
print "Dropping"
del metadata[item]


except OSError:
metadata['error'] = "Exiftool is not installed. 'sudo apt-get install libimage-exiftool-perl'"
except Exception as e:
metadata['error'] = "Error colleting EXIF data: {0}".format(e)



self.render_type = 'file'
self.render_data = {'ExifData': {'results': metadata, 'file_id': file_id, 'img_src': img_src}}

def display(self):
file_id = self.request.POST['file_id']
self.render_data = {'ExifData': {'results': None, 'file_id': file_id}}

Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@

<div id="hach-out">
<div id="exif-out">
<h3>MetaData</h3>
{% if HachoirMetaData.results %}
{% if ExifData.results %}
<div class="row">
<div class="col-lg-6">

<table class="table table-striped table-bordered table-hover">
{% for key, value in HachoirMetaData.results.items %}
{% for key, value in ExifData.results.items %}

<tr>
<th>{{ key }}</th>
Expand All @@ -21,13 +21,13 @@ <h3>MetaData</h3>

</div>
<div class="col-lg-6">
{% if HachoirMetaData.img_src %}
<img class="img-responsive" alt="Embedded Image" src="data:image/png;base64,{{ HachoirMetaData.img_src }}" />
{% if ExifData.img_src %}
<img class="img-responsive" alt="Embedded Image" src="data:image/png;base64,{{ ExifData.img_src }}" />
{% endif %}
</div>
</div>
{% else %}

<a href="#" onclick="ajaxHandler('HachoirMetaData', {'file_id':'{{HachoirMetaData.file_id}}', 'target_div':'hach-out', 'extension':true}, false ); return false" class="btn btn-info" role="button">Parse Meta</a>
<a href="#" onclick="ajaxHandler('ExifData', {'file_id':'{{ExifData.file_id}}', 'target_div':'exif-out', 'extension':true}, false ); return false" class="btn btn-info" role="button">Parse Meta</a>
{% endif %}
</div>
53 changes: 0 additions & 53 deletions extensions/hachoirmetadata/hachoirmetadata.py

This file was deleted.

2 changes: 2 additions & 0 deletions manage.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import os
import sys

sys.dont_write_bytecode = True

if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "volgui.settings")

Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ hachoir_core
hachoir_parser
hachoir_metadata
pycrypto
git+https://github.com/smarnach/pyexiftool.git#egg=pyexiftool

0 comments on commit d9a662d

Please sign in to comment.