aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-26 21:31:54 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-26 21:31:54 -0400
commit5b21ec6747f5c1eef8b44ad8ead4f89ed715a501 (patch)
treee0d7d21a8eb6af3717ddbf5dee755b1461cfd62a /MediaBrowser.Server.Implementations/Persistence
parentd4050fbf2cbec98306d3f39c2cf7b620147afdee (diff)
update interval trigger
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs14
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs26
2 files changed, 34 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
index 69e04c072..7a993b7db 100644
--- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
@@ -1,14 +1,15 @@
using MediaBrowser.Common.Progress;
using MediaBrowser.Common.ScheduledTasks;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
+using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Model.Logging;
namespace MediaBrowser.Server.Implementations.Persistence
{
@@ -17,12 +18,14 @@ namespace MediaBrowser.Server.Implementations.Persistence
private readonly ILibraryManager _libraryManager;
private readonly IItemRepository _itemRepo;
private readonly ILogger _logger;
+ private readonly IServerConfigurationManager _config;
- public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger)
+ public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config)
{
_libraryManager = libraryManager;
_itemRepo = itemRepo;
_logger = logger;
+ _config = config;
}
public string Name
@@ -53,7 +56,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
var itemIds = _libraryManager.GetItemIds(new InternalItemsQuery
{
IsCurrentSchema = false,
- Limit = 100000,
// These are constantly getting regenerated so don't bother with them here
ExcludeItemTypes = new[] { typeof(LiveTvProgram).Name }
@@ -81,6 +83,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
progress.Report(percent * 100);
}
+ if (!_config.Configuration.DisableStartupScan)
+ {
+ _config.Configuration.DisableStartupScan = true;
+ _config.SaveConfiguration();
+ }
+
progress.Report(100);
}
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 71578d1e0..806e86a5a 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -72,7 +72,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
private IDbCommand _deletePeopleCommand;
private IDbCommand _savePersonCommand;
- private const int LatestSchemaVersion = 4;
+ private const int LatestSchemaVersion = 6;
/// <summary>
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
@@ -173,6 +173,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
_connection.AddColumn(_logger, "TypedBaseItems", "DateCreated", "DATETIME");
_connection.AddColumn(_logger, "TypedBaseItems", "DateModified", "DATETIME");
+ _connection.AddColumn(_logger, "TypedBaseItems", "ForcedSortName", "Text");
+ _connection.AddColumn(_logger, "TypedBaseItems", "IsOffline", "BIT");
+
PrepareStatements();
_mediaStreamsRepository.Initialize();
@@ -223,7 +226,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
"VoteCount",
"DisplayMediaType",
"DateCreated",
- "DateModified"
+ "DateModified",
+ "ForcedSortName",
+ "IsOffline"
};
_saveItemCommand = _connection.CreateCommand();
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -391,6 +396,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
_saveItemCommand.GetParameter(index++).Value = item.DateCreated;
_saveItemCommand.GetParameter(index++).Value = item.DateModified;
+ _saveItemCommand.GetParameter(index++).Value = item.ForcedSortName;
+ _saveItemCommand.GetParameter(index++).Value = item.IsOffline;
+
_saveItemCommand.Transaction = transaction;
_saveItemCommand.ExecuteNonQuery();
@@ -948,7 +956,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
var includeTypes = query.IncludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
-
if (includeTypes.Length == 1)
{
whereClauses.Add("type=@type");
@@ -959,6 +966,19 @@ namespace MediaBrowser.Server.Implementations.Persistence
var inClause = string.Join(",", includeTypes.Select(i => "'" + i + "'").ToArray());
whereClauses.Add(string.Format("type in ({0})", inClause));
}
+
+ var excludeTypes = query.ExcludeItemTypes.SelectMany(MapIncludeItemTypes).ToArray();
+ if (excludeTypes.Length == 1)
+ {
+ whereClauses.Add("type<>@type");
+ cmd.Parameters.Add(cmd, "@type", DbType.String).Value = excludeTypes[0];
+ }
+ else if (excludeTypes.Length > 1)
+ {
+ var inClause = string.Join(",", excludeTypes.Select(i => "'" + i + "'").ToArray());
+ whereClauses.Add(string.Format("type not in ({0})", inClause));
+ }
+
if (query.ChannelIds.Length == 1)
{
whereClauses.Add("ChannelId=@ChannelId");