From 895806e8ccb8de00ad7d0da466707c76ddb65502 Mon Sep 17 00:00:00 2001 From: "adrian.sampson" Date: Tue, 14 Apr 2009 03:47:09 +0000 Subject: [PATCH] fixed handling of ID3 frames with empty lists --HG-- extra : convert_revision : svn%3A41726ec3-264d-0410-9c23-a9f1637257cc/trunk%40218 --- beets/mediafile.py | 6 +++++- test/rsrc/emptylist.mp3 | Bin 0 -> 8192 bytes test/test_mediafile.py | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 test/rsrc/emptylist.mp3 diff --git a/beets/mediafile.py b/beets/mediafile.py index 45feb5c36..80f750f19 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -225,9 +225,13 @@ class MediaField(object): # possibly index the list if style.list_elem: - return entry[0] + if entry: # List must have at least one value. + return entry[0] + else: + return None else: return entry + except KeyError: # the tag isn't present return None diff --git a/test/rsrc/emptylist.mp3 b/test/rsrc/emptylist.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..083c6c2e0fe5d54c52ab1e0f049a04426bd5a51d GIT binary patch literal 8192 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 Le5tM^(