catch ffprobe errors parsing statistics (#11)
This commit is contained in:
@@ -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,16 +16,27 @@ 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)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
FFprobe ffprobe = await GetProbeOutput(ffprobePath, mediaItem);
|
FFprobe ffprobe = await GetProbeOutput(ffprobePath, mediaItem);
|
||||||
MediaMetadata metadata = ProjectToMediaMetadata(ffprobe);
|
MediaMetadata metadata = ProjectToMediaMetadata(ffprobe);
|
||||||
await ApplyStatisticsUpdate(mediaItem, metadata);
|
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(
|
||||||
MediaItem mediaItem,
|
MediaItem mediaItem,
|
||||||
|
|||||||
Reference in New Issue
Block a user