diff options
Diffstat (limited to 'MediaBrowser.Api/StartupWizardService.cs')
| -rw-r--r-- | MediaBrowser.Api/StartupWizardService.cs | 78 |
1 files changed, 76 insertions, 2 deletions
diff --git a/MediaBrowser.Api/StartupWizardService.cs b/MediaBrowser.Api/StartupWizardService.cs index 6ee8d3603..e9ac45fa2 100644 --- a/MediaBrowser.Api/StartupWizardService.cs +++ b/MediaBrowser.Api/StartupWizardService.cs @@ -3,8 +3,10 @@ using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Connect; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.LiveTv; using ServiceStack; using System; using System.Linq; @@ -49,13 +51,15 @@ namespace MediaBrowser.Api private readonly IServerApplicationHost _appHost; private readonly IUserManager _userManager; private readonly IConnectManager _connectManager; + private readonly ILiveTvManager _liveTvManager; - public StartupWizardService(IServerConfigurationManager config, IServerApplicationHost appHost, IUserManager userManager, IConnectManager connectManager) + public StartupWizardService(IServerConfigurationManager config, IServerApplicationHost appHost, IUserManager userManager, IConnectManager connectManager, ILiveTvManager liveTvManager) { _config = config; _appHost = appHost; _userManager = userManager; _connectManager = connectManager; + _liveTvManager = liveTvManager; } public void Post(ReportStartupWizardComplete request) @@ -67,6 +71,8 @@ namespace MediaBrowser.Api _config.Configuration.EnableLibraryMetadataSubFolder = true; _config.Configuration.EnableUserSpecificUserViews = true; _config.Configuration.EnableCustomPathSubFolders = true; + _config.Configuration.DisableXmlSavers = true; + _config.Configuration.DisableStartupScan = true; _config.SaveConfiguration(); } @@ -82,7 +88,7 @@ namespace MediaBrowser.Api public object Get(GetStartupConfiguration request) { - return new StartupConfiguration + var result = new StartupConfiguration { UICulture = _config.Configuration.UICulture, EnableInternetProviders = _config.Configuration.EnableInternetProviders, @@ -90,6 +96,22 @@ namespace MediaBrowser.Api MetadataCountryCode = _config.Configuration.MetadataCountryCode, PreferredMetadataLanguage = _config.Configuration.PreferredMetadataLanguage }; + + var tvConfig = GetLiveTVConfiguration(); + + if (tvConfig.TunerHosts.Count > 0) + { + result.LiveTvTunerPath = tvConfig.TunerHosts[0].Url; + result.LiveTvTunerType = tvConfig.TunerHosts[0].Type; + } + + if (tvConfig.ListingProviders.Count > 0) + { + result.LiveTvGuideProviderId = tvConfig.ListingProviders[0].Id; + result.LiveTvGuideProviderType = tvConfig.ListingProviders[0].Type; + } + + return result; } public void Post(UpdateStartupConfiguration request) @@ -100,6 +122,9 @@ namespace MediaBrowser.Api _config.Configuration.MetadataCountryCode = request.MetadataCountryCode; _config.Configuration.PreferredMetadataLanguage = request.PreferredMetadataLanguage; _config.SaveConfiguration(); + + var task = UpdateTuners(request); + Task.WaitAll(task); } public object Get(GetStartupUser request) @@ -140,6 +165,51 @@ namespace MediaBrowser.Api return result; } + + private async Task UpdateTuners(UpdateStartupConfiguration request) + { + var config = GetLiveTVConfiguration(); + var save = false; + + if (string.IsNullOrWhiteSpace(request.LiveTvTunerPath) || + string.IsNullOrWhiteSpace(request.LiveTvTunerType)) + { + if (config.TunerHosts.Count > 0) + { + config.TunerHosts.Clear(); + save = true; + } + } + else + { + if (!config.TunerHosts.Any(i => string.Equals(i.Type, request.LiveTvTunerType, StringComparison.OrdinalIgnoreCase) && string.Equals(i.Url, request.LiveTvTunerPath, StringComparison.OrdinalIgnoreCase))) + { + // Add tuner + await _liveTvManager.SaveTunerHost(new TunerHostInfo + { + IsEnabled = true, + Type = request.LiveTvTunerType, + Url = request.LiveTvTunerPath + + }).ConfigureAwait(false); + } + } + + if (save) + { + SaveLiveTVConfiguration(config); + } + } + + private void SaveLiveTVConfiguration(LiveTvOptions config) + { + _config.SaveConfiguration("livetv", config); + } + + private LiveTvOptions GetLiveTVConfiguration() + { + return _config.GetConfiguration<LiveTvOptions>("livetv"); + } } public class StartupConfiguration @@ -149,6 +219,10 @@ namespace MediaBrowser.Api public bool SaveLocalMeta { get; set; } public string MetadataCountryCode { get; set; } public string PreferredMetadataLanguage { get; set; } + public string LiveTvTunerType { get; set; } + public string LiveTvTunerPath { get; set; } + public string LiveTvGuideProviderId { get; set; } + public string LiveTvGuideProviderType { get; set; } } public class StartupInfo |
