From 3254f2f3b0b63e594cabb6409507e214955e15b9 Mon Sep 17 00:00:00 2001 From: Tai Lee Date: Sun, 2 Jun 2013 22:53:53 +1000 Subject: [PATCH] Don't assume all releases know the original year. Use `add_ratio()` if they do, otherwise apply full penalty with `add()`. --- beets/autotag/match.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/beets/autotag/match.py b/beets/autotag/match.py index 4f59680e8..8762d3bf9 100644 --- a/beets/autotag/match.py +++ b/beets/autotag/match.py @@ -415,14 +415,18 @@ def distance(items, album_info, mapping): # Year. if likelies['year'] and album_info.year: - # No penalty for matching release or original year. if likelies['year'] in (album_info.year, album_info.original_year): + # No penalty for matching release or original year. dist.add('year', 0.0) - else: + elif album_info.original_year: + # Prefer matchest closest to the release year. diff = abs(likelies['year'] - album_info.year) diff_max = abs(datetime.date.today().year - album_info.original_year) dist.add_ratio('year', diff, diff_max) + else: + # Full penalty when there is no original year. + dist.add('year', 1.0) # Prefer earlier releases. if album_info.year and album_info.original_year and \