summaryrefslogtreecommitdiff
path: root/importpkg.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2013-08-01 23:06:26 +0200
committerHelmut Grohne <helmut@subdivi.de>2013-08-01 23:06:26 +0200
commit2712edb550968ce7ec8cd9800241d7944666631a (patch)
treec213907b81aaad6cc7ab07fc7ea809f32fcb5fbe /importpkg.py
parentd3f68ad766b1c33867c2c504b0f5e6d9bb7cbf03 (diff)
downloaddebian-dedup-2712edb550968ce7ec8cd9800241d7944666631a.tar.gz
support hashing gif images
* Rename "image_sha512" to "png_sha512". * dedup.image.ImageHash is now a base class for image hashes such as PNGHash and GIFHash. * Enable both hashes in importpkg. * Fix README. * Add new hash combinations to webapp. * Add "gif file not named *.gif" to issues in update_sharing. * Add redirect for "image_sha512" to webapp for backwards compatibility.
Diffstat (limited to 'importpkg.py')
-rwxr-xr-ximportpkg.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/importpkg.py b/importpkg.py
index 02d4936..182ca01 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -19,7 +19,7 @@ from dedup.arreader import ArReader
from dedup.hashing import HashBlacklist, DecompressedHash, SuppressingHash, \
HashedStream, hash_file
from dedup.compression import GzipDecompressor, DecompressedStream
-from dedup.image import ImageHash
+from dedup.image import GIFHash, PNGHash
class MultiHash(object):
def __init__(self, *hashes):
@@ -44,17 +44,24 @@ def gziphash():
hashobj.name = "gzip_sha512"
return HashBlacklist(hashobj, boring_sha512_hashes)
-def imagehash():
- hashobj = ImageHash(hashlib.sha512())
+def pnghash():
+ hashobj = PNGHash(hashlib.sha512())
hashobj = SuppressingHash(hashobj, (ValueError,))
- hashobj.name = "image_sha512"
+ hashobj.name = "png_sha512"
+ return hashobj
+
+def gifhash():
+ hashobj = GIFHash(hashlib.sha512())
+ hashobj = SuppressingHash(hashobj, (ValueError,))
+ hashobj.name = "gif_sha512"
return hashobj
def get_hashes(tar):
for elem in tar:
if not elem.isreg(): # excludes hard links as well
continue
- hasher = MultiHash(sha512_nontrivial(), gziphash(), imagehash())
+ hasher = MultiHash(sha512_nontrivial(), gziphash(), pnghash(),
+ gifhash())
hasher = hash_file(hasher, tar.extractfile(elem))
hashes = {}
for hashobj in hasher.hashes: