mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-21 17:44:43 +01:00
update interval trigger
This commit is contained in:
@@ -3,6 +3,7 @@ using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Entities;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Plugins;
|
||||
using MediaBrowser.Model.Configuration;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Server.Implementations.ScheduledTasks;
|
||||
@@ -700,4 +701,23 @@ namespace MediaBrowser.Server.Implementations.IO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class LibraryMonitorStartup : IServerEntryPoint
|
||||
{
|
||||
private readonly ILibraryMonitor _monitor;
|
||||
|
||||
public LibraryMonitorStartup(ILibraryMonitor monitor)
|
||||
{
|
||||
_monitor = monitor;
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
_monitor.Start();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,8 +438,6 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
|
||||
return lineups;
|
||||
}
|
||||
|
||||
_logger.Info("Headends on account ");
|
||||
|
||||
var options = new HttpRequestOptions()
|
||||
{
|
||||
Url = ApiUrl + "/headends?country=" + country + "&postalcode=" + location,
|
||||
@@ -454,16 +452,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
|
||||
using (Stream responce = await _httpClient.Get(options).ConfigureAwait(false))
|
||||
{
|
||||
var root = _jsonSerializer.DeserializeFromStream<List<ScheduleDirect.Headends>>(responce);
|
||||
_logger.Info("Lineups on account ");
|
||||
|
||||
if (root != null)
|
||||
{
|
||||
foreach (ScheduleDirect.Headends headend in root)
|
||||
{
|
||||
_logger.Info("Headend: " + headend.headend);
|
||||
foreach (ScheduleDirect.Lineup lineup in headend.lineups)
|
||||
{
|
||||
_logger.Info("Headend: " + lineup.uri);
|
||||
|
||||
lineups.Add(new NameIdPair
|
||||
{
|
||||
Name = string.IsNullOrWhiteSpace(lineup.name) ? lineup.lineup : lineup.name,
|
||||
@@ -474,7 +469,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info("No lineups on account");
|
||||
_logger.Info("No lineups available");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using System.Linq;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Controller.Configuration;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Server.Implementations.Library;
|
||||
using System;
|
||||
@@ -17,14 +19,16 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
|
||||
/// The _library manager
|
||||
/// </summary>
|
||||
private readonly ILibraryManager _libraryManager;
|
||||
private readonly IServerConfigurationManager _config;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="RefreshMediaLibraryTask" /> class.
|
||||
/// </summary>
|
||||
/// <param name="libraryManager">The library manager.</param>
|
||||
public RefreshMediaLibraryTask(ILibraryManager libraryManager)
|
||||
public RefreshMediaLibraryTask(ILibraryManager libraryManager, IServerConfigurationManager config)
|
||||
{
|
||||
_libraryManager = libraryManager;
|
||||
_config = config;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -33,12 +37,18 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
|
||||
/// <returns>IEnumerable{BaseTaskTrigger}.</returns>
|
||||
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
|
||||
{
|
||||
return new ITaskTrigger[] {
|
||||
|
||||
new StartupTrigger(),
|
||||
var list = new ITaskTrigger[] {
|
||||
|
||||
new IntervalTrigger{ Interval = TimeSpan.FromHours(8)}
|
||||
};
|
||||
|
||||
}.ToList();
|
||||
|
||||
if (!_config.Configuration.DisableStartupScan)
|
||||
{
|
||||
list.Add(new StartupTrigger());
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user