Browse Source

catch ffprobe errors parsing statistics (#11)

pull/13/head
Jason Dove 4 years ago committed by GitHub
parent
commit
c2d8a54a47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      ErsatzTV.Core/Metadata/LocalStatisticsProvider.cs

20
ErsatzTV.Core/Metadata/LocalStatisticsProvider.cs

@ -7,6 +7,7 @@ using ErsatzTV.Core.Domain; @@ -7,6 +7,7 @@ using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Interfaces.Metadata;
using ErsatzTV.Core.Interfaces.Repositories;
using LanguageExt;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using static LanguageExt.Prelude;
@ -15,15 +16,26 @@ namespace ErsatzTV.Core.Metadata @@ -15,15 +16,26 @@ namespace ErsatzTV.Core.Metadata
public class LocalStatisticsProvider : ILocalStatisticsProvider
{
private readonly IMediaItemRepository _mediaItemRepository;
private readonly ILogger<LocalStatisticsProvider> _logger;
public LocalStatisticsProvider(IMediaItemRepository mediaItemRepository) =>
public LocalStatisticsProvider(IMediaItemRepository mediaItemRepository, ILogger<LocalStatisticsProvider> logger)
{
_mediaItemRepository = mediaItemRepository;
_logger = logger;
}
public async Task RefreshStatistics(string ffprobePath, MediaItem mediaItem)
{
FFprobe ffprobe = await GetProbeOutput(ffprobePath, mediaItem);
MediaMetadata metadata = ProjectToMediaMetadata(ffprobe);
await ApplyStatisticsUpdate(mediaItem, metadata);
try
{
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(

Loading…
Cancel
Save