fix release year code
authorTom Samstag <github@modtwo.com>
Sat, 11 Feb 2017 19:30:27 +0000 (11:30 -0800)
committerSteve McIntyre <steve@einval.com>
Wed, 21 Feb 2018 21:45:04 +0000 (21:45 +0000)
The fix for #30 implemented in 1f1d33c64206841195a196595ed48f78952c07e6
relies on the release-event-list node from MB containing a count
attribute. However in my testing, that isn't the case, and so the
release year is never populated. This change checks that the
release_event_list isn't undef before trying to get the events (the
cause of the exception in #30) but then doesn't rely on the count() of
the release_event_list.

abcde-musicbrainz-tool
changelog

index 2e00c07..51708b1 100755 (executable)
@@ -97,14 +97,15 @@ if ($command =~ m/^id/) {
     foreach my $release (@releases) {
         my $a_artist = $release->artist()->name();
         my $va = 0;
-       my $rel_year = "";
+        my $rel_year = "";
         if ($a_artist =~ /Various Artists/) {
             $va = 1;
         }
-       if ($release->release_event_list()->count() > 0) {
-           my @events = @{$release->release_event_list()->events()};
-           $rel_year =  substr($events[0]->date(),0,4);
-       }
+        my $release_event_list = $release->release_event_list();
+        if ($release_event_list) {
+            my @events = @{$release->release_event_list()->events()};
+            $rel_year =  substr($events[0]->date(),0,4);
+        }
 
         $releasenum++;
         open (OUT, "> $workdir/cddbread.$releasenum");
index 08af82c..896cb5d 100644 (file)
--- a/changelog
+++ b/changelog
@@ -68,6 +68,9 @@ abcde 2.8.2
  * Add more comprehensive examples for filename munging in the example
    config file. Closes Issue 49:
    https://abcde.einval.com/bugzilla/show_bug.cgi?id=49
+ * Add a more better fix for the year lookup problem in abcde-musicbrainz-tool
+   Thanks to Tom Samstag for the patch. Closes Issue 57:
+   https://abcde.einval.com/bugzilla/show_bug.cgi?id=57
    
 abcde 2.8.1.