@ -15,7 +15,7 @@ public class GetAllChannelsForApiHandler : IRequestHandler<GetAllChannelsForApi,
@@ -15,7 +15,7 @@ public class GetAllChannelsForApiHandler : IRequestHandler<GetAllChannelsForApi,
@ -10,7 +10,7 @@ public class GetChannelLineupHandler : IRequestHandler<GetChannelLineup, List<Li
@@ -10,7 +10,7 @@ public class GetChannelLineupHandler : IRequestHandler<GetChannelLineup, List<Li
@ -12,7 +12,7 @@ public class GetChannelPlaylistHandler : IRequestHandler<GetChannelPlaylist, Cha
@@ -12,7 +12,7 @@ public class GetChannelPlaylistHandler : IRequestHandler<GetChannelPlaylist, Cha
@ -72,7 +75,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -72,7 +75,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -97,14 +100,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -97,14 +100,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -112,7 +115,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -112,7 +115,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -126,14 +129,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -126,14 +129,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -142,7 +145,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -142,7 +145,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -178,7 +181,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -178,7 +181,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -188,254 +191,316 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -188,254 +191,316 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -448,7 +513,11 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -448,7 +513,11 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -589,10 +658,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -589,10 +658,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -684,10 +757,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -684,10 +757,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -819,13 +896,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -819,13 +896,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -835,14 +913,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -835,14 +913,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -854,7 +932,8 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -854,7 +932,8 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -864,14 +943,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -864,14 +943,14 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -892,7 +971,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@@ -892,7 +971,7 @@ public class EmbyTelevisionRepository : IEmbyTelevisionRepository
@ -24,46 +24,60 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -24,46 +24,60 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -97,14 +111,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -97,14 +111,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -126,14 +140,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -126,14 +140,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -178,7 +192,7 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -178,7 +192,7 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -188,254 +202,319 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -188,254 +202,319 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -448,7 +527,11 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -448,7 +527,11 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -589,10 +672,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -589,10 +672,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -684,10 +771,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -684,10 +771,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -819,13 +910,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -819,13 +910,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -835,14 +927,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -835,14 +927,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -854,7 +946,8 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -854,7 +946,8 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -864,14 +957,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@@ -864,14 +957,14 @@ public class JellyfinTelevisionRepository : IJellyfinTelevisionRepository
@ -25,183 +25,227 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -25,183 +25,227 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@"SELECT PlexEpisode.Key, PlexEpisode.Etag, MI.State FROM PlexEpisode
newCommandDefinition(
@"SELECT PlexEpisode.Key, PlexEpisode.Etag, MI.State FROM PlexEpisode
INNERJOINEpisodeEonPlexEpisode.Id=E.Id
INNERJOINMediaItemMIonE.Id=MI.Id
INNERJOINLibraryPathLPonMI.LibraryPathId=LP.Id
INNERJOINSeasonS2onE.SeasonId=S2.Id
INNERJOINPlexSeasonPSonS2.Id=PS.Id
WHERELP.LibraryId=@LibraryIdANDPS.Key=@Key",
new{LibraryId=library.Id,season.Key})
parameters:new{LibraryId=library.Id,season.Key},
cancellationToken:cancellationToken))
.Map(result=>result.ToList());
}
@ -238,7 +282,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -238,7 +282,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -267,7 +311,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -267,7 +311,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -313,7 +357,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -313,7 +357,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -327,101 +371,128 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -327,101 +371,128 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@"UPDATE MediaItem SET State = 1 WHERE Id IN @Ids",
new{Ids=ids});
newCommandDefinition(
@"UPDATE MediaItem SET State = 1 WHERE Id IN @Ids",
parameters:new{Ids=ids},
cancellationToken:cancellationToken));
returnids;
}
@ -429,9 +500,10 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -429,9 +500,10 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -440,7 +512,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -440,7 +512,7 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -448,28 +520,38 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -448,28 +520,38 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -480,35 +562,42 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -480,35 +562,42 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
intshowId=awaitdbContext.PlexShows
.Where(s=>s.Key==show.Key)
.Select(s=>s.Id)
.FirstOrDefaultAsync();
.FirstOrDefaultAsync(cancellationToken);
awaitdbContext.Connection.ExecuteAsync(
@"INSERT INTO Tag (Name, ExternalTypeId, ShowMetadataId)
@ -524,7 +613,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -524,7 +613,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -534,14 +624,14 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -534,14 +624,14 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -553,7 +643,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -553,7 +643,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -563,14 +654,14 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -563,14 +654,14 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -632,7 +723,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -632,7 +723,8 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@ -663,16 +755,22 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
@@ -663,16 +755,22 @@ public class PlexTelevisionRepository : IPlexTelevisionRepository
file.Key=incomingFile.Key;
awaitdbContext.Connection.ExecuteAsync(
@"UPDATE MediaVersion SET Name = @Name, DateAdded = @DateAdded WHERE Id = @Id",
new{version.Name,version.DateAdded,version.Id});
newCommandDefinition(
@"UPDATE MediaVersion SET Name = @Name, DateAdded = @DateAdded WHERE Id = @Id",
@ -74,7 +74,7 @@ public class SynchronizeEmbyShowByIdHandler : IRequestHandler<SynchronizeEmbySho
@@ -74,7 +74,7 @@ public class SynchronizeEmbyShowByIdHandler : IRequestHandler<SynchronizeEmbySho
@ -121,8 +121,9 @@ public class SynchronizeEmbyShowByIdHandler : IRequestHandler<SynchronizeEmbySho
@@ -121,8 +121,9 @@ public class SynchronizeEmbyShowByIdHandler : IRequestHandler<SynchronizeEmbySho
.Map(v=>v.ToValidation<BaseError>($"Emby library {request.EmbyLibraryId} does not exist."));
@ -107,7 +107,7 @@ public class SynchronizePlexNetworksHandler : IRequestHandler<SynchronizePlexNet
@@ -107,7 +107,7 @@ public class SynchronizePlexNetworksHandler : IRequestHandler<SynchronizePlexNet
@ -33,7 +33,7 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
@@ -33,7 +33,7 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
@ -70,8 +70,11 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
@@ -70,8 +70,11 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
returnresult.Map(_=>$"Show '{parameters.ShowTitle}' in {parameters.Library.Name}");
@ -117,8 +120,9 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
@@ -117,8 +120,9 @@ public class SynchronizePlexShowByIdHandler : IRequestHandler<SynchronizePlexSho
.Map(v=>v.ToValidation<BaseError>($"Plex library {request.PlexLibraryId} does not exist."));
@ -224,13 +224,13 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@@ -224,13 +224,13 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@ -274,12 +274,12 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@@ -274,12 +274,12 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@ -1239,7 +1239,10 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@@ -1239,7 +1239,10 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@ -1265,7 +1268,7 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@@ -1265,7 +1268,7 @@ public class LocalMetadataProvider : ILocalMetadataProvider
@ -91,7 +91,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -91,7 +91,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -147,9 +147,9 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -147,9 +147,9 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -173,7 +173,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -173,7 +173,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
{
// trash shows that are no longer present on the media server
@ -296,7 +296,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -296,7 +296,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -346,9 +346,9 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -346,9 +346,9 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -372,7 +372,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -372,7 +372,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
// trash seasons that are no longer present on the media server
@ -393,7 +393,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -393,7 +393,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -413,7 +413,8 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -413,7 +413,8 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
existingEpisodes,
incoming,
localPath,
deepScan))
deepScan,
cancellationToken))
{
continue;
}
@ -485,11 +486,11 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -485,11 +486,11 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -497,7 +498,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -497,7 +498,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -505,7 +506,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -505,7 +506,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -528,7 +529,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -528,7 +529,7 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
// trash episodes that are no longer present on the media server
@ -544,7 +545,8 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -544,7 +545,8 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
List<TEtag>existingEpisodes,
TEpisodeincoming,
stringlocalPath,
booldeepScan)
booldeepScan,
CancellationTokencancellationToken)
{
// deep scan will always pull every episode
if(deepScan)
@ -575,10 +577,10 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -575,10 +577,10 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -587,10 +589,10 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@@ -587,10 +589,10 @@ public abstract class MediaServerTelevisionLibraryScanner<TConnectionParameters,
@ -182,7 +182,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -182,7 +182,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@ -216,7 +216,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -216,7 +216,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@ -234,7 +234,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -234,7 +234,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@ -336,7 +336,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -336,7 +336,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@ -350,7 +350,8 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -350,7 +350,8 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@ -371,7 +372,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
@@ -371,7 +372,7 @@ public class RemoteStreamFolderScanner : LocalFolderScanner, IRemoteStreamFolder
remoteStream.RemoteStreamMetadata??=[];
_logger.LogDebug("Refreshing {Attribute} for {Path}","Metadata",path);
private static string ValidatePathExists(string path) => !File.Exists(path) ? "Path does not exist" : null;
@ -191,8 +203,6 @@
@@ -191,8 +203,6 @@
private static string ValidateInitialSegmentCount(int count) => count < 1 ? "HLS Segmenter initial segment count must be greater than or equal to 1" : null;