diff --git a/MediaBrowser.Providers/Books/ComicBookInfo/ComicBookInfoProvider.cs b/MediaBrowser.Providers/Books/ComicBookInfo/ComicBookInfoProvider.cs
index 4ef618b0eb..990d452fb1 100644
--- a/MediaBrowser.Providers/Books/ComicBookInfo/ComicBookInfoProvider.cs
+++ b/MediaBrowser.Providers/Books/ComicBookInfo/ComicBookInfoProvider.cs
@@ -236,7 +236,7 @@ public class ComicBookInfoProvider : IComicProvider
try
{
// use first day of the month because this format doesn't include a day
- return new DateTime(year, month, 1);
+ return new DateTime(year, month, 1, 0, 0, 0, DateTimeKind.Unspecified);
}
catch (ArgumentOutOfRangeException)
{
diff --git a/MediaBrowser.Providers/Books/ComicInfo/ComicInfoReader.cs b/MediaBrowser.Providers/Books/ComicInfo/ComicInfoReader.cs
index 429a2cf6d5..b8329e7805 100644
--- a/MediaBrowser.Providers/Books/ComicInfo/ComicInfoReader.cs
+++ b/MediaBrowser.Providers/Books/ComicInfo/ComicInfoReader.cs
@@ -14,7 +14,7 @@ namespace MediaBrowser.Providers.Books.ComicInfo;
///
/// ComicInfo reader.
///
-public class ComicInfoReader
+public static class ComicInfoReader
{
///
/// Filename to check for comic metadata either next to the comic file or inside the archive.
@@ -26,7 +26,7 @@ public class ComicInfoReader
///
/// The XDocument to read for comic metadata.
/// The resulting book.
- public Book? ReadComicBookMetadata(XDocument xml)
+ public static Book? ReadComicBookMetadata(XDocument xml)
{
var book = new Book();
var hasFoundMetadata = false;
@@ -67,7 +67,7 @@ public class ComicInfoReader
///
/// The XDocument to read for people metadata.
/// The metadata result to update.
- public void ReadPeopleMetadata(XDocument xml, MetadataResult metadataResult)
+ public static void ReadPeopleMetadata(XDocument xml, MetadataResult metadataResult)
{
ReadCommaSeparatedStringsInto(xml, "ComicInfo/Writer", authors =>
{
@@ -106,7 +106,7 @@ public class ComicInfoReader
/// the XDocument to read for metadata.
/// The path to search.
/// The action to take after parsing all metadata.
- public void ReadCultureInfoInto(XDocument xml, string xPath, Action commitResult)
+ public static void ReadCultureInfoInto(XDocument xml, string xPath, Action commitResult)
{
string? culture = null;
@@ -115,14 +115,8 @@ public class ComicInfoReader
return;
}
- try
- {
- // culture cannot be null here as the method would have returned earlier
- commitResult(new CultureInfo(culture!));
- }
- catch (CultureNotFoundException)
- {
- }
+ // culture cannot be null here as the method would have returned earlier
+ commitResult(new CultureInfo(culture!));
}
private static bool ReadStringInto(XDocument xml, string xPath, Action commitResult)
@@ -194,7 +188,7 @@ public class ComicInfoReader
try
{
- var dateTime = new DateTime(year, month, day);
+ var dateTime = new DateTime(year, month, day, 0, 0, 0, DateTimeKind.Unspecified);
commitResult(dateTime);
return true;
diff --git a/MediaBrowser.Providers/Books/ComicInfo/ExternalComicInfoProvider.cs b/MediaBrowser.Providers/Books/ComicInfo/ExternalComicInfoProvider.cs
index 62fca925c8..8dd76d8b15 100644
--- a/MediaBrowser.Providers/Books/ComicInfo/ExternalComicInfoProvider.cs
+++ b/MediaBrowser.Providers/Books/ComicInfo/ExternalComicInfoProvider.cs
@@ -19,7 +19,6 @@ public class ExternalComicInfoProvider : IComicProvider
{
private readonly IFileSystem _fileSystem;
private readonly ILogger _logger;
- private readonly ComicInfoReader _utilities = new();
///
/// Initializes a new instance of the class.
@@ -43,7 +42,7 @@ public class ExternalComicInfoProvider : IComicProvider
return new MetadataResult { HasMetadata = false };
}
- var book = _utilities.ReadComicBookMetadata(comicInfoXml);
+ var book = ComicInfoReader.ReadComicBookMetadata(comicInfoXml);
if (book is null)
{
@@ -52,8 +51,8 @@ public class ExternalComicInfoProvider : IComicProvider
var metadataResult = new MetadataResult { Item = book, HasMetadata = true };
- _utilities.ReadPeopleMetadata(comicInfoXml, metadataResult);
- _utilities.ReadCultureInfoInto(comicInfoXml, "ComicInfo/LanguageISO", cultureInfo => metadataResult.ResultLanguage = cultureInfo.ThreeLetterISOLanguageName);
+ ComicInfoReader.ReadPeopleMetadata(comicInfoXml, metadataResult);
+ ComicInfoReader.ReadCultureInfoInto(comicInfoXml, "ComicInfo/LanguageISO", cultureInfo => metadataResult.ResultLanguage = cultureInfo.ThreeLetterISOLanguageName);
return metadataResult;
}
@@ -84,7 +83,7 @@ public class ExternalComicInfoProvider : IComicProvider
}
catch (Exception e)
{
- _logger.LogInformation(e, "Could not load external xml from {Path}. This could mean there is no separate ComicInfo metadata file for this comic or the metadata is bundled within the comic.", path);
+ _logger.LogInformation(e, "Could not load external XML from {Path}. This could mean there is no separate ComicInfo metadata file for this comic or the metadata is bundled within the comic.", path);
return null;
}
}
diff --git a/MediaBrowser.Providers/Books/ComicInfo/InternalComicInfoProvider.cs b/MediaBrowser.Providers/Books/ComicInfo/InternalComicInfoProvider.cs
index eff248b8d4..98a6aba7d6 100644
--- a/MediaBrowser.Providers/Books/ComicInfo/InternalComicInfoProvider.cs
+++ b/MediaBrowser.Providers/Books/ComicInfo/InternalComicInfoProvider.cs
@@ -17,7 +17,6 @@ public class InternalComicInfoProvider : IComicProvider
{
private readonly IFileSystem _fileSystem;
private readonly ILogger _logger;
- private readonly ComicInfoReader _utilities = new();
///
/// Initializes a new instance of the class.
@@ -41,7 +40,7 @@ public class InternalComicInfoProvider : IComicProvider
return new MetadataResult { HasMetadata = false };
}
- var book = _utilities.ReadComicBookMetadata(comicInfoXml);
+ var book = ComicInfoReader.ReadComicBookMetadata(comicInfoXml);
if (book is null)
{
@@ -50,8 +49,8 @@ public class InternalComicInfoProvider : IComicProvider
var metadataResult = new MetadataResult { Item = book, HasMetadata = true };
- _utilities.ReadPeopleMetadata(comicInfoXml, metadataResult);
- _utilities.ReadCultureInfoInto(comicInfoXml, "ComicInfo/LanguageISO", cultureInfo => metadataResult.ResultLanguage = cultureInfo.ThreeLetterISOLanguageName);
+ ComicInfoReader.ReadPeopleMetadata(comicInfoXml, metadataResult);
+ ComicInfoReader.ReadCultureInfoInto(comicInfoXml, "ComicInfo/LanguageISO", cultureInfo => metadataResult.ResultLanguage = cultureInfo.ThreeLetterISOLanguageName);
return metadataResult;
}