add jellyfin season number fallback (#1497)
This commit is contained in:
@@ -49,6 +49,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Test QSV acceleration if configured, and fallback to software mode if test fails
|
- Test QSV acceleration if configured, and fallback to software mode if test fails
|
||||||
- Detect QSV capabilities on Linux (supported decoders, encoders)
|
- Detect QSV capabilities on Linux (supported decoders, encoders)
|
||||||
- Use hardware acceleration for error messages/offline messages
|
- Use hardware acceleration for error messages/offline messages
|
||||||
|
- Try to parse season number from season folder when Jellyfin does not provide season number
|
||||||
|
- This *may* fix issues where Jellyfin libraries show all season numbers as 0 (specials)
|
||||||
|
|
||||||
## [0.8.2-beta] - 2023-09-14
|
## [0.8.2-beta] - 2023-09-14
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using ErsatzTV.Core;
|
using ErsatzTV.Core;
|
||||||
using ErsatzTV.Core.Domain;
|
using ErsatzTV.Core.Domain;
|
||||||
using ErsatzTV.Core.Interfaces.Jellyfin;
|
using ErsatzTV.Core.Interfaces.Jellyfin;
|
||||||
|
using ErsatzTV.Core.Interfaces.Metadata;
|
||||||
using ErsatzTV.Core.Jellyfin;
|
using ErsatzTV.Core.Jellyfin;
|
||||||
using ErsatzTV.Core.Metadata;
|
using ErsatzTV.Core.Metadata;
|
||||||
using ErsatzTV.Infrastructure.Jellyfin.Models;
|
using ErsatzTV.Infrastructure.Jellyfin.Models;
|
||||||
@@ -14,16 +15,19 @@ namespace ErsatzTV.Infrastructure.Jellyfin;
|
|||||||
public class JellyfinApiClient : IJellyfinApiClient
|
public class JellyfinApiClient : IJellyfinApiClient
|
||||||
{
|
{
|
||||||
private readonly IJellyfinPathReplacementService _jellyfinPathReplacementService;
|
private readonly IJellyfinPathReplacementService _jellyfinPathReplacementService;
|
||||||
|
private readonly IFallbackMetadataProvider _fallbackMetadataProvider;
|
||||||
private readonly ILogger<JellyfinApiClient> _logger;
|
private readonly ILogger<JellyfinApiClient> _logger;
|
||||||
private readonly IMemoryCache _memoryCache;
|
private readonly IMemoryCache _memoryCache;
|
||||||
|
|
||||||
public JellyfinApiClient(
|
public JellyfinApiClient(
|
||||||
IMemoryCache memoryCache,
|
IMemoryCache memoryCache,
|
||||||
IJellyfinPathReplacementService jellyfinPathReplacementService,
|
IJellyfinPathReplacementService jellyfinPathReplacementService,
|
||||||
|
IFallbackMetadataProvider fallbackMetadataProvider,
|
||||||
ILogger<JellyfinApiClient> logger)
|
ILogger<JellyfinApiClient> logger)
|
||||||
{
|
{
|
||||||
_memoryCache = memoryCache;
|
_memoryCache = memoryCache;
|
||||||
_jellyfinPathReplacementService = jellyfinPathReplacementService;
|
_jellyfinPathReplacementService = jellyfinPathReplacementService;
|
||||||
|
_fallbackMetadataProvider = fallbackMetadataProvider;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -721,6 +725,16 @@ public class JellyfinApiClient : IJellyfinApiClient
|
|||||||
{
|
{
|
||||||
season.SeasonNumber = item.IndexNumber.Value;
|
season.SeasonNumber = item.IndexNumber.Value;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Option<int> maybeSeasonNumber =
|
||||||
|
_fallbackMetadataProvider.GetSeasonNumberForFolder(item.Path ?? string.Empty);
|
||||||
|
|
||||||
|
foreach (int seasonNumber in maybeSeasonNumber)
|
||||||
|
{
|
||||||
|
season.SeasonNumber = seasonNumber;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return season;
|
return season;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user