|
|
|
@ -44,7 +44,10 @@ namespace ErsatzTV.Core.Metadata |
|
|
|
_logger = logger; |
|
|
|
_logger = logger; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public async Task<Unit> ScanLocalMediaSource(LocalMediaSource localMediaSource, string ffprobePath) |
|
|
|
public async Task<Unit> ScanLocalMediaSource( |
|
|
|
|
|
|
|
LocalMediaSource localMediaSource, |
|
|
|
|
|
|
|
string ffprobePath, |
|
|
|
|
|
|
|
bool refreshAllMetadata) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (!Directory.Exists(localMediaSource.Folder)) |
|
|
|
if (!Directory.Exists(localMediaSource.Folder)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -97,14 +100,16 @@ namespace ErsatzTV.Core.Metadata |
|
|
|
|
|
|
|
|
|
|
|
// if exists, check if the file was modified
|
|
|
|
// if exists, check if the file was modified
|
|
|
|
// also, try to re-categorize incorrect media types by refreshing metadata
|
|
|
|
// also, try to re-categorize incorrect media types by refreshing metadata
|
|
|
|
Seq<MediaItem> modifiedMediaItems = existingMediaItems.Filter( |
|
|
|
Seq<MediaItem> modifiedMediaItems = refreshAllMetadata |
|
|
|
mediaItem => |
|
|
|
? existingMediaItems |
|
|
|
{ |
|
|
|
: existingMediaItems.Filter( |
|
|
|
DateTime lastWrite = File.GetLastWriteTimeUtc(mediaItem.Path); |
|
|
|
mediaItem => |
|
|
|
bool modified = lastWrite > mediaItem.LastWriteTime.IfNone(DateTime.MinValue); |
|
|
|
{ |
|
|
|
return modified || mediaItem.Metadata == null || |
|
|
|
DateTime lastWrite = File.GetLastWriteTimeUtc(mediaItem.Path); |
|
|
|
mediaItem.Metadata.MediaType != localMediaSource.MediaType; |
|
|
|
bool modified = lastWrite > mediaItem.LastWriteTime.IfNone(DateTime.MinValue); |
|
|
|
}); |
|
|
|
return modified || mediaItem.Metadata == null || |
|
|
|
|
|
|
|
mediaItem.Metadata.MediaType != localMediaSource.MediaType; |
|
|
|
|
|
|
|
}); |
|
|
|
modifiedPlayoutIds.AddRange(await _playoutRepository.GetPlayoutIdsForMediaItems(modifiedMediaItems)); |
|
|
|
modifiedPlayoutIds.AddRange(await _playoutRepository.GetPlayoutIdsForMediaItems(modifiedMediaItems)); |
|
|
|
foreach (MediaItem mediaItem in modifiedMediaItems) |
|
|
|
foreach (MediaItem mediaItem in modifiedMediaItems) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|