aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations')
-rw-r--r--Emby.Server.Implementations/Data/SqliteItemRepository.cs27
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs23
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvManager.cs2
-rw-r--r--Emby.Server.Implementations/Migrations/LibraryScanMigration.cs8
4 files changed, 24 insertions, 36 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
index 151702905..8e6a277a4 100644
--- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs
+++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs
@@ -3855,16 +3855,18 @@ namespace Emby.Server.Implementations.Data
}
}
- if (query.ArtistNames.Length > 0)
+ if (query.ArtistIds.Length > 0)
{
var clauses = new List<string>();
var index = 0;
- foreach (var artist in query.ArtistNames)
+ foreach (var artistId in query.ArtistIds)
{
- clauses.Add("@ArtistName" + index + " in (select CleanValue from itemvalues where ItemId=Guid and Type <= 1)");
+ var paramName = "@ArtistIds" + index;
+
+ clauses.Add("(select CleanName from TypedBaseItems where guid=" + paramName + ") in (select CleanValue from itemvalues where ItemId=Guid and Type<=1)");
if (statement != null)
{
- statement.TryBind("@ArtistName" + index, GetCleanValue(artist));
+ statement.TryBind(paramName, artistId.ToGuidParamValue());
}
index++;
}
@@ -3963,23 +3965,6 @@ namespace Emby.Server.Implementations.Data
whereClauses.Add(clause);
}
- if (query.Studios.Length > 0)
- {
- var clauses = new List<string>();
- var index = 0;
- foreach (var item in query.Studios)
- {
- clauses.Add("@Studio" + index + " in (select CleanValue from itemvalues where ItemId=Guid and Type=3)");
- if (statement != null)
- {
- statement.TryBind("@Studio" + index, GetCleanValue(item));
- }
- index++;
- }
- var clause = "(" + string.Join(" OR ", clauses.ToArray()) + ")";
- whereClauses.Add(clause);
- }
-
if (query.Keywords.Length > 0)
{
var clauses = new List<string>();
diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
index 84a255c7a..2e591711b 100644
--- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
@@ -326,7 +326,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
{
epgData = GetEpgDataForChannel(timer.ChannelId);
}
- await UpdateTimersForSeriesTimer(epgData, timer, true).ConfigureAwait(false);
+ await UpdateTimersForSeriesTimer(epgData, timer, false, true).ConfigureAwait(false);
}
}
@@ -573,7 +573,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}
_seriesTimerProvider.Add(info);
- await UpdateTimersForSeriesTimer(epgData, info, false).ConfigureAwait(false);
+ await UpdateTimersForSeriesTimer(epgData, info, true, false).ConfigureAwait(false);
return info.Id;
}
@@ -614,7 +614,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
epgData = GetEpgDataForChannel(instance.ChannelId);
}
- await UpdateTimersForSeriesTimer(epgData, instance, true).ConfigureAwait(false);
+ await UpdateTimersForSeriesTimer(epgData, instance, true, true).ConfigureAwait(false);
}
}
@@ -2159,7 +2159,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
}
}
- private async Task UpdateTimersForSeriesTimer(List<ProgramInfo> epgData, SeriesTimerInfo seriesTimer, bool deleteInvalidTimers)
+ private async Task UpdateTimersForSeriesTimer(List<ProgramInfo> epgData, SeriesTimerInfo seriesTimer, bool updateTimerSettings, bool deleteInvalidTimers)
{
var allTimers = GetTimersForSeries(seriesTimer, epgData)
.ToList();
@@ -2204,12 +2204,15 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
enabledTimersForSeries.Add(existingTimer);
}
- existingTimer.KeepUntil = seriesTimer.KeepUntil;
- existingTimer.IsPostPaddingRequired = seriesTimer.IsPostPaddingRequired;
- existingTimer.IsPrePaddingRequired = seriesTimer.IsPrePaddingRequired;
- existingTimer.PostPaddingSeconds = seriesTimer.PostPaddingSeconds;
- existingTimer.PrePaddingSeconds = seriesTimer.PrePaddingSeconds;
- existingTimer.Priority = seriesTimer.Priority;
+ if (updateTimerSettings)
+ {
+ existingTimer.KeepUntil = seriesTimer.KeepUntil;
+ existingTimer.IsPostPaddingRequired = seriesTimer.IsPostPaddingRequired;
+ existingTimer.IsPrePaddingRequired = seriesTimer.IsPrePaddingRequired;
+ existingTimer.PostPaddingSeconds = seriesTimer.PostPaddingSeconds;
+ existingTimer.PrePaddingSeconds = seriesTimer.PrePaddingSeconds;
+ existingTimer.Priority = seriesTimer.Priority;
+ }
existingTimer.SeriesTimerId = seriesTimer.Id;
_timerProvider.Update(existingTimer);
diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
index 265817cbe..525db4036 100644
--- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -1681,7 +1681,7 @@ namespace Emby.Server.Implementations.LiveTv
return new QueryResult<BaseItem>();
}
- if (_services.Count == 1 && !(query.IsInProgress ?? false))
+ if (_services.Count == 1 && !(query.IsInProgress ?? false) && (!query.IsLibraryItem.HasValue || query.IsLibraryItem.Value))
{
return GetEmbyRecordings(query, new DtoOptions(), user);
}
diff --git a/Emby.Server.Implementations/Migrations/LibraryScanMigration.cs b/Emby.Server.Implementations/Migrations/LibraryScanMigration.cs
index c494abc0b..600dd8033 100644
--- a/Emby.Server.Implementations/Migrations/LibraryScanMigration.cs
+++ b/Emby.Server.Implementations/Migrations/LibraryScanMigration.cs
@@ -33,10 +33,10 @@ namespace Emby.Server.Implementations.Migrations
{
Task.Run(() =>
{
- var task = _taskManager.ScheduledTasks.Select(i => i.ScheduledTask)
- .First(i => string.Equals(i.Key, "RefreshLibrary", StringComparison.OrdinalIgnoreCase));
-
- _taskManager.QueueScheduledTask(task);
+ _taskManager.QueueScheduledTask(_taskManager.ScheduledTasks.Select(i => i.ScheduledTask)
+ .First(i => string.Equals(i.Key, "RefreshLibrary", StringComparison.OrdinalIgnoreCase)));
+ _taskManager.QueueScheduledTask(_taskManager.ScheduledTasks.Select(i => i.ScheduledTask)
+ .First(i => string.Equals(i.Key, "RefreshGuide", StringComparison.OrdinalIgnoreCase)));
});
var list = _config.Configuration.Migrations.ToList();