diff options
| author | nfmccrina <nfmccrina@users.noreply.github.com> | 2024-05-17 13:51:37 -0400 |
|---|---|---|
| committer | Joshua M. Boniface <joshua@boniface.me> | 2024-05-17 13:51:37 -0400 |
| commit | 4385430f05a7cbb886bf1075daf069bd8efadb70 (patch) | |
| tree | d37df43ef84ff6bda63af37050e6a4edf3fecde1 | |
| parent | 4e2b30b193c55f5ee962be2f76e1754eca8b85da (diff) | |
Backport pull request #11621 from jellyfin/release-10.9.z
Handle exception for unexpected audio file YEAR tag values
Original-merge: d5dc4435d9d0e2a1bbbb64a9133134afa9655da6
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
| -rw-r--r-- | CONTRIBUTORS.md | 1 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/AudioFileProber.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/ProbeProvider.cs | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 8550222a1..47c06998c 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -255,3 +255,4 @@ - [JPUC1143](https://github.com/Jpuc1143/) - [0x25CBFC4F](https://github.com/0x25CBFC4F) - [Robert Lützner](https://github.com/rluetzner) + - [Nathan McCrina](https://github.com/nfmccrina) diff --git a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs index 9f37d8b54..34681fac8 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs @@ -15,6 +15,7 @@ using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.MediaInfo; +using Microsoft.Extensions.Logging; using TagLib; namespace MediaBrowser.Providers.MediaInfo @@ -27,6 +28,7 @@ namespace MediaBrowser.Providers.MediaInfo private readonly IMediaEncoder _mediaEncoder; private readonly IItemRepository _itemRepo; private readonly ILibraryManager _libraryManager; + private readonly ILogger<AudioFileProber> _logger; private readonly IMediaSourceManager _mediaSourceManager; private readonly LyricResolver _lyricResolver; private readonly ILyricManager _lyricManager; @@ -34,6 +36,7 @@ namespace MediaBrowser.Providers.MediaInfo /// <summary> /// Initializes a new instance of the <see cref="AudioFileProber"/> class. /// </summary> + /// <param name="logger">Instance of the <see cref="ILogger"/> interface.</param> /// <param name="mediaSourceManager">Instance of the <see cref="IMediaSourceManager"/> interface.</param> /// <param name="mediaEncoder">Instance of the <see cref="IMediaEncoder"/> interface.</param> /// <param name="itemRepo">Instance of the <see cref="IItemRepository"/> interface.</param> @@ -41,6 +44,7 @@ namespace MediaBrowser.Providers.MediaInfo /// <param name="lyricResolver">Instance of the <see cref="LyricResolver"/> interface.</param> /// <param name="lyricManager">Instance of the <see cref="ILyricManager"/> interface.</param> public AudioFileProber( + ILogger<AudioFileProber> logger, IMediaSourceManager mediaSourceManager, IMediaEncoder mediaEncoder, IItemRepository itemRepo, @@ -51,6 +55,7 @@ namespace MediaBrowser.Providers.MediaInfo _mediaEncoder = mediaEncoder; _itemRepo = itemRepo; _libraryManager = libraryManager; + _logger = logger; _mediaSourceManager = mediaSourceManager; _lyricResolver = lyricResolver; _lyricManager = lyricManager; @@ -276,7 +281,14 @@ namespace MediaBrowser.Providers.MediaInfo if (!audio.PremiereDate.HasValue) { - audio.PremiereDate = new DateTime(year, 01, 01); + try + { + audio.PremiereDate = new DateTime(year, 01, 01); + } + catch (ArgumentOutOfRangeException ex) + { + _logger.LogError(ex, "Error parsing YEAR tag in {File}. '{TagValue}' is an invalid year.", audio.Path, tags.Year); + } } } diff --git a/MediaBrowser.Providers/MediaInfo/ProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/ProbeProvider.cs index b330b419b..8bb8d5bb4 100644 --- a/MediaBrowser.Providers/MediaInfo/ProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/ProbeProvider.cs @@ -103,6 +103,7 @@ namespace MediaBrowser.Providers.MediaInfo _subtitleResolver); _audioProber = new AudioFileProber( + loggerFactory.CreateLogger<AudioFileProber>(), mediaSourceManager, mediaEncoder, itemRepo, |
