"""fingerprint matching module.""" import argparse from copy import deepcopy import json import config from dejavu import Dejavu from dejavu.logic.recognizer.file_recognizer import FileRecognizer import s3_file def match(bucket, key): djv_config = deepcopy(config.DB_CONFIG) djv_config['fingerprint_limit'] = 180 djv = Dejavu(djv_config) recognizer = FileRecognizer(djv) results = recognizer.recognize_file(bucket, key) for result in results['results']: del result['file_sha1'] result['song_name'] = result['song_name'].decode('utf-8') result['offset'] = int(result['offset']) return results if __name__ == '__main__': # Task entry point. parser = argparse.ArgumentParser(prog='matcher') parser.add_argument('-b', '--bucket', required=True, help='bucket') parser.add_argument('-o', '--object', required=True, help='object') args = parser.parse_args() matches = match(args.bucket, args.object) print(json.dumps(matches))