@ -28,6 +28,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
@@ -28,6 +28,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Poster will continue to be added as icon by default
- Add buttons to edit Jellyfin and Emby connection information in **Media Sources** > **Jellyfin** and **Media Sources** > **Emby**
- Add audio format `aac (latm)` for DVB-C compatibility; `aac` uses ADTS by default which is required in most cases
- Add deep scan option for external collections (Plex, Jellyfin, Emby)
- Jellyfin and Emby collection scans have always been deep scans
- Now, by default, they will be quick scans that trust Jellyfin and Emby's etags for detecting changes
- If a quick scan misses updating a collection, deep scans can be triggered manually
@ -91,6 +91,11 @@ public class CallEmbyCollectionScannerHandler : CallLibraryScannerHandler<Synchr
@@ -91,6 +91,11 @@ public class CallEmbyCollectionScannerHandler : CallLibraryScannerHandler<Synchr
@ -91,6 +91,11 @@ public class CallJellyfinCollectionScannerHandler : CallLibraryScannerHandler<Sy
@@ -91,6 +91,11 @@ public class CallJellyfinCollectionScannerHandler : CallLibraryScannerHandler<Sy
@ -91,6 +91,11 @@ public class CallPlexCollectionScannerHandler : CallLibraryScannerHandler<Synchr
@@ -91,6 +91,11 @@ public class CallPlexCollectionScannerHandler : CallLibraryScannerHandler<Synchr
@ -47,36 +47,36 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -47,36 +47,36 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@ -88,7 +88,7 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -88,7 +88,7 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@ -97,6 +97,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -97,6 +97,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@"SELECT Id FROM EmbyMovie WHERE ItemId = @ItemId",
new{movie.ItemId});
if(movieId<=0)
{
returnOption<int>.None;
}
awaitdbContext.Connection.ExecuteAsync(
@"INSERT INTO Tag (Name, ExternalCollectionId, MovieMetadataId)
SELECT@Name,@ItemId,IdFROM
@ -107,6 +112,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -107,6 +112,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@"SELECT Id FROM EmbyShow WHERE ItemId = @ItemId",
new{show.ItemId});
if(showId<=0)
{
returnOption<int>.None;
}
awaitdbContext.Connection.ExecuteAsync(
@"INSERT INTO Tag (Name, ExternalCollectionId, ShowMetadataId)
SELECT@Name,@ItemId,IdFROM
@ -117,6 +127,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -117,6 +127,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@"SELECT Id FROM EmbySeason WHERE ItemId = @ItemId",
new{season.ItemId});
if(seasonId<=0)
{
returnOption<int>.None;
}
awaitdbContext.Connection.ExecuteAsync(
@"INSERT INTO Tag (Name, ExternalCollectionId, SeasonMetadataId)
SELECT@Name,@ItemId,IdFROM
@ -127,6 +142,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -127,6 +142,11 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@"SELECT Id FROM EmbyEpisode WHERE ItemId = @ItemId",
new{episode.ItemId});
if(episodeId<=0)
{
returnOption<int>.None;
}
awaitdbContext.Connection.ExecuteAsync(
@"INSERT INTO Tag (Name, ExternalCollectionId, EpisodeMetadataId)
SELECT@Name,@ItemId,IdFROM
@ -134,7 +154,7 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@@ -134,7 +154,7 @@ public class EmbyCollectionRepository : IEmbyCollectionRepository
@ -52,6 +52,7 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
@@ -52,6 +52,7 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
connectionParameters,
connectionParameters.MediaSource,
request.ForceScan,
request.DeepScan,
libraryRefreshInterval,
request.BaseUrl));
}
@ -97,7 +98,8 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
@@ -97,7 +98,8 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
@ -115,6 +117,7 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
@@ -115,6 +117,7 @@ public class SynchronizeEmbyCollectionsHandler : IRequestHandler<SynchronizeEmby
@ -52,6 +52,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
@@ -52,6 +52,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
connectionParameters,
connectionParameters.PlexMediaSource,
request.ForceScan,
request.DeepScan,
libraryRefreshInterval,
request.BaseUrl));
}
@ -99,6 +100,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
@@ -99,6 +100,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
@ -117,6 +119,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
@@ -117,6 +119,7 @@ public class SynchronizePlexCollectionsHandler : IRequestHandler<SynchronizePlex
@ -26,7 +26,7 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
@@ -26,7 +26,7 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
@ -46,13 +46,13 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
@@ -46,13 +46,13 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
_logger.LogDebug("Emby collection {Name} is unchanged",collection.Name);
continue;
}
// add if new
if(maybeExisting.IsNone)
@ -98,16 +98,74 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
@@ -98,16 +98,74 @@ public class EmbyCollectionScanner : IEmbyCollectionScanner
@ -26,7 +26,11 @@ public class JellyfinCollectionScanner : IJellyfinCollectionScanner
@@ -26,7 +26,11 @@ public class JellyfinCollectionScanner : IJellyfinCollectionScanner
@ -48,12 +52,13 @@ public class JellyfinCollectionScanner : IJellyfinCollectionScanner
@@ -48,12 +52,13 @@ public class JellyfinCollectionScanner : IJellyfinCollectionScanner
@ -30,6 +30,7 @@ public class PlexCollectionScanner : IPlexCollectionScanner
@@ -30,6 +30,7 @@ public class PlexCollectionScanner : IPlexCollectionScanner
@ -49,7 +50,7 @@ public class PlexCollectionScanner : IPlexCollectionScanner
@@ -49,7 +50,7 @@ public class PlexCollectionScanner : IPlexCollectionScanner