From ac73b9711ab6be6f3104ea1d674b61af62c26442 Mon Sep 17 00:00:00 2001 From: ta264 Date: Wed, 1 Jul 2020 20:17:28 +0100 Subject: [PATCH] Fixed: Parsing books written before year 1 --- .../MetadataSource/Goodreads/GoodreadsProxyFixture.cs | 1 + .../Goodreads/Extensions/XmlExtensions.cs | 2 +- .../MetadataSource/Goodreads/Resources/WorkResource.cs | 10 +--------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs index d3170d96f..7b832cccc 100644 --- a/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs +++ b/src/NzbDrone.Core.Test/MetadataSource/Goodreads/GoodreadsProxyFixture.cs @@ -44,6 +44,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads } [TestCase("64216", "Guards! Guards!")] + [TestCase("1371", "Ιλιάς")] public void should_be_able_to_get_book_detail(string mbId, string name) { var details = Subject.GetBookInfo(mbId); diff --git a/src/NzbDrone.Core/MetadataSource/Goodreads/Extensions/XmlExtensions.cs b/src/NzbDrone.Core/MetadataSource/Goodreads/Extensions/XmlExtensions.cs index 67d0a17ca..d1845d97a 100644 --- a/src/NzbDrone.Core/MetadataSource/Goodreads/Extensions/XmlExtensions.cs +++ b/src/NzbDrone.Core/MetadataSource/Goodreads/Extensions/XmlExtensions.cs @@ -125,7 +125,7 @@ namespace NzbDrone.Core.MetadataSource.Goodreads return null; } - if (!publicationYear.HasValue) + if (!publicationYear.HasValue || publicationYear <= 0) { return null; } diff --git a/src/NzbDrone.Core/MetadataSource/Goodreads/Resources/WorkResource.cs b/src/NzbDrone.Core/MetadataSource/Goodreads/Resources/WorkResource.cs index e43b6447d..15d0a98b3 100644 --- a/src/NzbDrone.Core/MetadataSource/Goodreads/Resources/WorkResource.cs +++ b/src/NzbDrone.Core/MetadataSource/Goodreads/Resources/WorkResource.cs @@ -119,15 +119,7 @@ namespace NzbDrone.Core.MetadataSource.Goodreads TextReviewsCount = element.ElementAsInt("text_reviews_count"); - // Merge the Goodreads publication fields into one date property - var originalPublicationYear = element.ElementAsInt("original_publication_year"); - var originalPublicationMonth = element.ElementAsInt("original_publication_month"); - var originalPublicationDay = element.ElementAsInt("original_publication_day"); - if (originalPublicationYear != 0) - { - OriginalPublicationDate = new DateTime(originalPublicationYear, Math.Max(originalPublicationMonth, 1), Math.Max(originalPublicationDay, 1), 0, 0, 0, DateTimeKind.Utc); - } - + OriginalPublicationDate = element.ElementAsMultiDateField("original_publication"); OriginalTitle = element.ElementAsString("original_title"); OriginalLanguageId = element.ElementAsNullableInt("original_language_id"); MediaType = element.ElementAsString("media_type");