diff --git a/beets/ui/__init__.py b/beets/ui/__init__.py index 1e64cd89c..993964291 100644 --- a/beets/ui/__init__.py +++ b/beets/ui/__init__.py @@ -989,3 +989,29 @@ def main(args=None): except KeyboardInterrupt: # Silently ignore ^C except in verbose mode. log.debug(traceback.format_exc()) + + + +def summarize_items(items): + """Produces a brief summary line for manually resolving duplicates during import. + Accepts a list of tuples, one per item containing: + (path, format, bitrate, duration) + """ + + summary_text = "" + summary_text += "%d items. " % len(items) + format_counts = {} + for item in items: + format_counts[item[1]] = format_counts.get(item[1],0) + 1; + + for format, count in format_counts.iteritems(): + summary_text += '{count} {format}. '.format(format=format, count=count) + + average_bitrate = sum([item[2] for item in items]) / len(items) + total_duration = sum([item[3] for item in items]) + summary_text += '{bitrate}kbps average bitrate. '.format(bitrate=int(average_bitrate/1000)) + summary_text += '{length} total length. '.format(length=human_seconds_short(total_duration)) + + return summary_text + + diff --git a/beets/ui/commands.py b/beets/ui/commands.py index 3eec70fd7..0cc3bcf9d 100644 --- a/beets/ui/commands.py +++ b/beets/ui/commands.py @@ -756,9 +756,9 @@ class TerminalImportSession(importer.ImportSession): # print some detail about the existing and new items so it can be an informed decision for duplicate in found_duplicates: old_items = [(item.path, item.format, item.bitrate, item.length) for item in duplicate.items()] - print("OLD: " + util.summarize_items(old_items)) + print("OLD: " + ui.summarize_items(old_items)) new_items = [(item.path, item.format, item.bitrate, item.length) for item in task.items] - print("NEW: " + util.summarize_items(new_items)) + print("NEW: " + ui.summarize_items(new_items)) sel = ui.input_options( ('Skip new', 'Keep both', 'Remove old') diff --git a/beets/util/__init__.py b/beets/util/__init__.py index c66831c30..ec3a3c1bc 100644 --- a/beets/util/__init__.py +++ b/beets/util/__init__.py @@ -25,7 +25,6 @@ import traceback import subprocess import platform - MAX_FILENAME_LENGTH = 200 WINDOWS_MAGIC_PREFIX = u'\\\\?\\' @@ -658,30 +657,3 @@ def max_filename_length(path, limit=MAX_FILENAME_LENGTH): return min(res[9], limit) else: return limit - -def summarize_items(items): - """Produces a brief summary line for manually resolving duplicates during import. - Accepts a list of tuples, one per item containing: - (path, format, bitrate, duration) - """ - - summary_text = "" - summary_text += "%d items. " % len(items) - format_counts = {} - for item in items: - format_counts[item[1]] = format_counts.get(item[1],0) + 1; - - for format, count in format_counts.iteritems(): - summary_text += '{count} {format}. '.format(format=format, count=count) - - average_bitrate = sum([item[2] for item in items]) / len(items) - total_duration = sum([item[3] for item in items]) - summary_text += '{bitrate}K average bitrate. '.format(bitrate=int(average_bitrate/1000)) - summary_text += '{length}s total length. '.format(length=int(total_duration)) - - return summary_text - - - - -