update guide

This commit is contained in:
Luke Pulverenti
2015-08-19 19:57:27 -04:00
parent 8c32aefb53
commit 3787af4c9c
9 changed files with 76 additions and 72 deletions

View File

@@ -3,12 +3,14 @@ using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Progress;
using MediaBrowser.Common.ScheduledTasks;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers;
@@ -243,10 +245,6 @@ namespace MediaBrowser.Server.Implementations.Library
}
}
/// <summary>
/// The _items by name path
/// </summary>
private string _itemsByNamePath;
/// <summary>
/// The _season zero display name
/// </summary>
@@ -260,7 +258,6 @@ namespace MediaBrowser.Server.Implementations.Library
private void RecordConfigurationValues(ServerConfiguration configuration)
{
_seasonZeroDisplayName = configuration.SeasonZeroDisplayName;
_itemsByNamePath = ConfigurationManager.ApplicationPaths.ItemsByNamePath;
_wizardCompleted = configuration.IsStartupWizardCompleted;
}
@@ -273,56 +270,24 @@ namespace MediaBrowser.Server.Implementations.Library
{
var config = ConfigurationManager.Configuration;
var ibnPathChanged = !string.Equals(_itemsByNamePath, ConfigurationManager.ApplicationPaths.ItemsByNamePath, StringComparison.Ordinal);
if (ibnPathChanged)
{
RemoveItemsByNameFromCache();
}
var newSeasonZeroName = ConfigurationManager.Configuration.SeasonZeroDisplayName;
var seasonZeroNameChanged = !string.Equals(_seasonZeroDisplayName, newSeasonZeroName, StringComparison.Ordinal);
var wizardChanged = config.IsStartupWizardCompleted != _wizardCompleted;
RecordConfigurationValues(config);
Task.Run(async () =>
if (seasonZeroNameChanged || wizardChanged)
{
if (seasonZeroNameChanged)
_taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>();
}
if (seasonZeroNameChanged)
{
Task.Run(async () =>
{
await UpdateSeasonZeroNames(newSeasonZeroName, CancellationToken.None).ConfigureAwait(false);
}
if (seasonZeroNameChanged || ibnPathChanged || wizardChanged)
{
_taskManager.CancelIfRunningAndQueue<RefreshMediaLibraryTask>();
}
});
}
private void RemoveItemsByNameFromCache()
{
RemoveItemsFromCache(i => i is Person);
RemoveItemsFromCache(i => i is Year);
RemoveItemsFromCache(i => i is Genre);
RemoveItemsFromCache(i => i is MusicGenre);
RemoveItemsFromCache(i => i is GameGenre);
RemoveItemsFromCache(i => i is Studio);
RemoveItemsFromCache(i =>
{
var artist = i as MusicArtist;
return artist != null && artist.IsAccessedByName;
});
}
private void RemoveItemsFromCache(Func<BaseItem, bool> remove)
{
var items = _libraryItemsCache.ToList().Where(i => remove(i.Value)).ToList();
foreach (var item in items)
{
BaseItem value;
_libraryItemsCache.TryRemove(item.Key, out value);
});
}
}
@@ -374,6 +339,21 @@ namespace MediaBrowser.Server.Implementations.Library
private void RegisterItem(Guid id, BaseItem item)
{
if (item is LiveTvProgram)
{
return;
}
if (item is IChannelItem)
{
return;
}
if (item is IItemByName)
{
if (!(item is MusicArtist))
{
return;
}
}
LibraryItemsCache.AddOrUpdate(id, item, delegate { return item; });
}
@@ -951,11 +931,14 @@ namespace MediaBrowser.Server.Implementations.Library
DateModified = DateTime.UtcNow,
Path = path
};
}
if (isArtist)
{
(item as MusicArtist).IsAccessedByName = true;
if (isArtist)
{
(item as MusicArtist).IsAccessedByName = true;
}
var task = item.UpdateToRepository(ItemUpdateType.None, CancellationToken.None);
Task.WaitAll(task);
}
return item;
@@ -1259,6 +1242,11 @@ namespace MediaBrowser.Server.Implementations.Library
};
}
public QueryResult<BaseItem> QueryItems(InternalItemsQuery query)
{
return ItemRepository.GetItems(query);
}
public List<Guid> GetItemIds(InternalItemsQuery query)
{
return ItemRepository.GetItemIdsList(query);

View File

@@ -27,10 +27,8 @@ namespace MediaBrowser.Server.Implementations.Library
return list.Concat(GetInstantMixFromGenres(item.Genres, user));
}
public IEnumerable<Audio> GetInstantMixFromArtist(string name, User user)
public IEnumerable<Audio> GetInstantMixFromArtist(MusicArtist artist, User user)
{
var artist = _libraryManager.GetArtist(name);
var genres = user.RootFolder
.GetRecursiveChildren(user, i => i is Audio)
.Cast<Audio>()
@@ -107,7 +105,7 @@ namespace MediaBrowser.Server.Implementations.Library
var artist = item as MusicArtist;
if (artist != null)
{
return GetInstantMixFromArtist(artist.Name, user);
return GetInstantMixFromArtist(artist, user);
}
var song = item as Audio;