diff --git a/server/djrandom/fingerprint/dedup.py b/server/djrandom/fingerprint/dedup.py index 86ce482509d4c2186b686943be99a7d074bfede6..85bbd0eb961e7b807c693a97a9e09304a9353c75 100644 --- a/server/djrandom/fingerprint/dedup.py +++ b/server/djrandom/fingerprint/dedup.py @@ -23,32 +23,22 @@ class DeDuper(object): self._engine = engine self._resolver = Resolver() - def _generate_code_json(self, jsondata, track_id): + def _generate_code_json(self, echoprint_fp, sha1): """Parse the JSON string output of echoprint-codegen, and return a structure that fp.ingest() can deal with. Taken from 'fastingest.py', with minor changes. """ - c = json.loads(jsondata) - if "code" not in c: - return {} - - code = c["code"] - m = c["metadata"] - length = m["duration"] - version = m["version"] - artist = m.get("artist", None) - title = m.get("title", None) - release = m.get("release", None) - decoded = fp.decode_code_string(code) - - data = {"track_id": track_id, - "fp": decoded, - "length": length, - "codever": "%.2f" % version} - if artist: data["artist"] = artist - if release: data["release"] = release - if title: data["track"] = title + c = json.loads(echoprint_fp) + if 'code' not in c: + return None + + decoded = fp.decode_code_string(c['code']) + m = c['metadata'] + data = {'track_id': sha1, + 'fp': decoded, + 'length': m['duration'], + 'codever': '%.2f' % m['version']} return data def dedupe(self, dry_run=True):