17 lines
754 B
Python
17 lines
754 B
Python
"""High-level identification: match + canonical naming for one scanned disc."""
|
|
from . import iso_reader, matcher, namer
|
|
|
|
|
|
def identify(conn, record):
|
|
"""Return ``{method, release, serial, canonical}`` for a scanned disc record."""
|
|
method, release = matcher.match(conn, record)
|
|
return identify_with_release(record, release, method)
|
|
|
|
|
|
def identify_with_release(record, release, method):
|
|
serial = record.get("serial")
|
|
if not serial and release and iso_reader.looks_like_serial(release.get("serial")):
|
|
serial = iso_reader.normalize_serial(release.get("serial"))
|
|
canonical = namer.canonical_name(release, serial) if release else None
|
|
return {"method": method, "release": release, "serial": serial, "canonical": canonical}
|