Browse Source

catch ffprobe errors parsing statistics (#11)

pull/1213/head
Jason Dove 6 years ago committed by GitHub
parent
commit
80e7ddb157
  1. 20
      ErsatzTV.Core/Metadata/LocalStatisticsProvider.cs

20
ErsatzTV.Core/Metadata/LocalStatisticsProvider.cs

@ -7,6 +7,7 @@ using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Interfaces.Metadata; using ErsatzTV.Core.Interfaces.Metadata;
using ErsatzTV.Core.Interfaces.Repositories; using ErsatzTV.Core.Interfaces.Repositories;
using LanguageExt; using LanguageExt;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using static LanguageExt.Prelude; using static LanguageExt.Prelude;
@ -15,15 +16,26 @@ namespace ErsatzTV.Core.Metadata
public class LocalStatisticsProvider : ILocalStatisticsProvider public class LocalStatisticsProvider : ILocalStatisticsProvider
{ {
private readonly IMediaItemRepository _mediaItemRepository; private readonly IMediaItemRepository _mediaItemRepository;
private readonly ILogger<LocalStatisticsProvider> _logger;
public LocalStatisticsProvider(IMediaItemRepository mediaItemRepository) => public LocalStatisticsProvider(IMediaItemRepository mediaItemRepository, ILogger<LocalStatisticsProvider> logger)
{
_mediaItemRepository = mediaItemRepository; _mediaItemRepository = mediaItemRepository;
_logger = logger;
}
public async Task RefreshStatistics(string ffprobePath, MediaItem mediaItem) public async Task RefreshStatistics(string ffprobePath, MediaItem mediaItem)
{ {
FFprobe ffprobe = await GetProbeOutput(ffprobePath, mediaItem); try
MediaMetadata metadata = ProjectToMediaMetadata(ffprobe); {
await ApplyStatisticsUpdate(mediaItem, metadata); FFprobe ffprobe = await GetProbeOutput(ffprobePath, mediaItem);
MediaMetadata metadata = ProjectToMediaMetadata(ffprobe);
await ApplyStatisticsUpdate(mediaItem, metadata);
}
catch (Exception ex)
{
_logger.LogWarning(ex, "Failed to refresh statistics for media item at {Path}", mediaItem.Path);
}
} }
private async Task ApplyStatisticsUpdate( private async Task ApplyStatisticsUpdate(

Loading…
Cancel
Save