StartupWizard.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System.Threading.Tasks;
  2. using Emby.Server.Implementations.Browser;
  3. using MediaBrowser.Controller;
  4. using MediaBrowser.Controller.Configuration;
  5. using MediaBrowser.Controller.Extensions;
  6. using MediaBrowser.Controller.Plugins;
  7. using Microsoft.Extensions.Configuration;
  8. namespace Emby.Server.Implementations.EntryPoints
  9. {
  10. /// <summary>
  11. /// Class StartupWizard.
  12. /// </summary>
  13. public sealed class StartupWizard : IServerEntryPoint
  14. {
  15. /// <summary>
  16. /// The app host.
  17. /// </summary>
  18. private readonly IServerApplicationHost _appHost;
  19. private readonly IServerConfigurationManager _config;
  20. /// <summary>
  21. /// Initializes a new instance of the <see cref="StartupWizard"/> class.
  22. /// </summary>
  23. /// <param name="appHost">The application host.</param>
  24. /// <param name="config">The configuration manager.</param>
  25. public StartupWizard(IServerApplicationHost appHost, IServerConfigurationManager config)
  26. {
  27. _appHost = appHost;
  28. _config = config;
  29. }
  30. /// <inheritdoc />
  31. public Task RunAsync()
  32. {
  33. if (!_appHost.CanLaunchWebBrowser)
  34. {
  35. return Task.CompletedTask;
  36. }
  37. if (_appHost.Resolve<IConfiguration>().NoWebContent())
  38. {
  39. BrowserLauncher.OpenSwaggerPage(_appHost);
  40. }
  41. else if (!_config.Configuration.IsStartupWizardCompleted)
  42. {
  43. BrowserLauncher.OpenWebApp(_appHost);
  44. }
  45. else if (_config.Configuration.AutoRunWebApp)
  46. {
  47. var options = ((ApplicationHost)_appHost).StartupOptions;
  48. if (!options.NoAutoRunWebApp)
  49. {
  50. BrowserLauncher.OpenWebApp(_appHost);
  51. }
  52. }
  53. return Task.CompletedTask;
  54. }
  55. /// <inheritdoc />
  56. public void Dispose()
  57. {
  58. }
  59. }
  60. }