aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/EntryPoints
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-12-05 13:37:55 -0500
committerGitHub <noreply@github.com>2017-12-05 13:37:55 -0500
commitc32d8656382a0eacb301692e0084377fc433ae9b (patch)
tree121dd382bf71a9b5c96e00771c0ba18a7d28ab87 /Emby.Server.Implementations/EntryPoints
parente7ffdf3fbdae7d4ec76a0a4e0e37792b079c56e5 (diff)
parentb3fbdde04305a0406b5322ec6947f8a30ddc12af (diff)
Merge pull request #3055 from MediaBrowser/beta
Beta
Diffstat (limited to 'Emby.Server.Implementations/EntryPoints')
-rw-r--r--Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs3
-rw-r--r--Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs36
-rw-r--r--Emby.Server.Implementations/EntryPoints/StartupWizard.cs33
3 files changed, 54 insertions, 18 deletions
diff --git a/Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs b/Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs
index 2cef46839..903bb0ff4 100644
--- a/Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs
+++ b/Emby.Server.Implementations/EntryPoints/ExternalPortForwarding.cs
@@ -13,6 +13,7 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Threading;
using Mono.Nat;
using MediaBrowser.Model.Extensions;
+using System.Threading;
namespace Emby.Server.Implementations.EntryPoints
{
@@ -158,7 +159,7 @@ namespace Emby.Server.Implementations.EntryPoints
try
{
- var localAddressString = await _appHost.GetLocalApiUrl().ConfigureAwait(false);
+ var localAddressString = await _appHost.GetLocalApiUrl(CancellationToken.None).ConfigureAwait(false);
Uri uri;
if (Uri.TryCreate(localAddressString, UriKind.Absolute, out uri))
diff --git a/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs b/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs
index 299da0744..0e771cbec 100644
--- a/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs
+++ b/Emby.Server.Implementations/EntryPoints/LibraryChangedNotifier.cs
@@ -260,7 +260,7 @@ namespace Emby.Server.Implementations.EntryPoints
LibraryUpdateTimer.Change(LibraryUpdateDuration, Timeout.Infinite);
}
- var parent = e.Item.GetParent() as Folder;
+ var parent = e.Parent as Folder;
if (parent != null)
{
_foldersRemovedFrom.Add(parent);
@@ -363,10 +363,16 @@ namespace Emby.Server.Implementations.EntryPoints
/// <param name="foldersRemovedFrom">The folders removed from.</param>
/// <param name="userId">The user id.</param>
/// <returns>LibraryUpdateInfo.</returns>
- private LibraryUpdateInfo GetLibraryUpdateInfo(IEnumerable<BaseItem> itemsAdded, IEnumerable<BaseItem> itemsUpdated, IEnumerable<BaseItem> itemsRemoved, IEnumerable<Folder> foldersAddedTo, IEnumerable<Folder> foldersRemovedFrom, Guid userId)
+ private LibraryUpdateInfo GetLibraryUpdateInfo(List<BaseItem> itemsAdded, List<BaseItem> itemsUpdated, List<BaseItem> itemsRemoved, List<Folder> foldersAddedTo, List<Folder> foldersRemovedFrom, Guid userId)
{
var user = _userManager.GetUserById(userId);
+ var newAndRemoved = new List<BaseItem>();
+ newAndRemoved.AddRange(foldersAddedTo);
+ newAndRemoved.AddRange(foldersRemovedFrom);
+
+ var allUserRootChildren = _libraryManager.GetUserRootFolder().GetChildren(user, true).OfType<Folder>().ToList();
+
return new LibraryUpdateInfo
{
ItemsAdded = itemsAdded.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N")).Distinct().ToArray(),
@@ -377,7 +383,9 @@ namespace Emby.Server.Implementations.EntryPoints
FoldersAddedTo = foldersAddedTo.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N")).Distinct().ToArray(),
- FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N")).Distinct().ToArray()
+ FoldersRemovedFrom = foldersRemovedFrom.SelectMany(i => TranslatePhysicalItemToUserLibrary(i, user)).Select(i => i.Id.ToString("N")).Distinct().ToArray(),
+
+ CollectionFolders = GetTopParentIds(newAndRemoved, user, allUserRootChildren).ToArray()
};
}
@@ -396,6 +404,28 @@ namespace Emby.Server.Implementations.EntryPoints
return item.SourceType == SourceType.Library;
}
+ private IEnumerable<string> GetTopParentIds(List<BaseItem> items, User user, List<Folder> allUserRootChildren)
+ {
+ var list = new List<string>();
+
+ foreach (var item in items)
+ {
+ // If the physical root changed, return the user root
+ if (item is AggregateFolder)
+ {
+ continue;
+ }
+
+ var collectionFolders = _libraryManager.GetCollectionFolders(item, allUserRootChildren);
+ foreach (var folder in allUserRootChildren)
+ {
+ list.Add(folder.Id.ToString("N"));
+ }
+ }
+
+ return list.Distinct(StringComparer.Ordinal);
+ }
+
/// <summary>
/// Translates the physical item to user library.
/// </summary>
diff --git a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
index 614c04fd2..103b4b321 100644
--- a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
+++ b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
@@ -3,6 +3,7 @@ using Emby.Server.Implementations.Browser;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Controller.Configuration;
namespace Emby.Server.Implementations.EntryPoints
{
@@ -20,15 +21,13 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary>
private readonly ILogger _logger;
- /// <summary>
- /// Initializes a new instance of the <see cref="StartupWizard" /> class.
- /// </summary>
- /// <param name="appHost">The app host.</param>
- /// <param name="logger">The logger.</param>
- public StartupWizard(IServerApplicationHost appHost, ILogger logger)
+ private IServerConfigurationManager _config;
+
+ public StartupWizard(IServerApplicationHost appHost, ILogger logger, IServerConfigurationManager config)
{
_appHost = appHost;
_logger = logger;
+ _config = config;
}
/// <summary>
@@ -36,18 +35,24 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary>
public void Run()
{
+ if (!_appHost.CanLaunchWebBrowser)
+ {
+ return;
+ }
+
if (_appHost.IsFirstRun)
{
- LaunchStartupWizard();
+ BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
}
- }
+ else if (_config.Configuration.IsStartupWizardCompleted && _config.Configuration.AutoRunWebApp)
+ {
+ var options = ((ApplicationHost)_appHost).StartupOptions;
- /// <summary>
- /// Launches the startup wizard.
- /// </summary>
- private void LaunchStartupWizard()
- {
- BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
+ if (!options.ContainsOption("-noautorunwebapp"))
+ {
+ BrowserLauncher.OpenDashboardPage("index.html", _appHost);
+ }
+ }
}
/// <summary>