@ -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 ;
@ -275,9 +280,16 @@ namespace MediaBrowser.Providers.MediaInfo
audio . ProductionYear = year ;
if ( ! audio . PremiereDate . HasValue )
{
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 ) ;
}
}
}
if ( ! audio . LockedFields . Contains ( MetadataField . Genres ) )