Segment data (intro, recap, credits, preview) is fetched from
TheIntroDB API
- using each item's TMDB or IMDB ID. Segments are not loaded when you press play; run the TheIntroDB media segment scan scheduled task to populate them.
+ (v4) using each item's TVDB, TMDB or IMDB ID. TVDB is preferred: it is the API's identity, and it is what lets series with a non-default display order (DVD, absolute) resolve to the right episode. Segments are not loaded when you press play; run the TheIntroDB media segment scan scheduled task to populate them.
@@ -28,7 +28,7 @@
Connection
diff --git a/TheIntroDB/Providers/TheIntroDbSegmentProvider.cs b/TheIntroDB/Providers/TheIntroDbSegmentProvider.cs
index 775e7da..8df7b76 100644
--- a/TheIntroDB/Providers/TheIntroDbSegmentProvider.cs
+++ b/TheIntroDB/Providers/TheIntroDbSegmentProvider.cs
@@ -8,6 +8,7 @@
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using TheIntroDB.Api;
using TheIntroDB.Models;
@@ -23,6 +24,12 @@ public class TheIntroDbSegmentProvider
{
private static readonly HttpClient _httpClient = new HttpClient();
+ // One warning per series whose display order cannot be expressed, not one per
+ // episode of it. Static because a provider instance is short-lived (one per
+ // scan or per event), so an instance field would not dedupe a scan.
+ private static readonly System.Collections.Concurrent.ConcurrentDictionary