diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-04-15 16:26:03 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-04-15 16:26:03 +0200 |
| commit | 79f0e696f3f6067a0841a37404fb546dedaa07cb (patch) | |
| tree | a064f2841dc532f81fcf04eb84300e679fda2b27 /check/commands/phash/query.py | |
| parent | e257e83f313a2976347b0a30f58e66b7bcbc1235 (diff) | |
cli suite working
Diffstat (limited to 'check/commands/phash/query.py')
| -rw-r--r-- | check/commands/phash/query.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/check/commands/phash/query.py b/check/commands/phash/query.py new file mode 100644 index 0000000..8fc8c61 --- /dev/null +++ b/check/commands/phash/query.py @@ -0,0 +1,45 @@ +""" +Search the database for an image +""" + +import click +import os + +from PIL import Image + +from app.models.sql_factory import search_by_phash, search_by_hash +from app.utils.im_utils import compute_phash_int +from app.utils.file_utils import sha256 + +@click.command() +@click.option('-i', '--input', 'opt_fn', + required=True, + help="File to search") +@click.pass_context +def cli(ctx, opt_fn): + """ + Search the database for an image + """ + print('Searching for a file...') + + if not os.path.exists(opt_fn): + print("File does not exist") + return + + im = Image.open(opt_fn).convert('RGB') + phash = compute_phash_int(im) + + hash = sha256(opt_fn) + + phash_match = search_by_phash(phash) + hash_match = search_by_hash(hash) + + hash_result = 'NO' + if hash_match: + hash_result = 'YES' + + phash_result = 'NO' + if len(phash_match): + phash_result = 'YES, score={}'.format(phash_match[0]['score']) + + print("{} - hash={}, phash={}".format(opt_fn, hash_result, phash_result)) |
