sync updates

This commit is contained in:
Luke Pulverenti
2015-01-25 01:34:50 -05:00
parent 6755937800
commit a1a56557ec
67 changed files with 570 additions and 434 deletions

View File

@@ -337,8 +337,8 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>Task.</returns>
private async Task UpdateSeasonZeroNames(string newName, CancellationToken cancellationToken)
{
var seasons = RootFolder.RecursiveChildren
.OfType<Season>()
var seasons = RootFolder.GetRecursiveChildren(i => i is Season)
.Cast<Season>()
.Where(i => i.IndexNumber.HasValue && i.IndexNumber.Value == 0 && !string.Equals(i.Name, newName, StringComparison.Ordinal))
.ToList();
@@ -393,7 +393,7 @@ namespace MediaBrowser.Server.Implementations.Library
var locationType = item.LocationType;
var children = item.IsFolder
? ((Folder)item).RecursiveChildren.ToList()
? ((Folder)item).GetRecursiveChildren().ToList()
: new List<BaseItem>();
foreach (var metadataPath in GetMetadataPaths(item, children))
@@ -919,9 +919,10 @@ namespace MediaBrowser.Server.Implementations.Library
{
var validFilename = _fileSystem.GetValidFilename(name).Trim();
var existing = RootFolder.RecursiveChildren
.OfType<T>()
.FirstOrDefault(i => string.Equals(_fileSystem.GetValidFilename(i.Name).Trim(), validFilename, StringComparison.OrdinalIgnoreCase));
var existing = RootFolder
.GetRecursiveChildren(i => i is T && string.Equals(_fileSystem.GetValidFilename(i.Name).Trim(), validFilename, StringComparison.OrdinalIgnoreCase))
.Cast<T>()
.FirstOrDefault();
if (existing != null)
{

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Channels;
@@ -25,8 +24,8 @@ namespace MediaBrowser.Server.Implementations.Library
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var items = _libraryManager.RootFolder
.RecursiveChildren
.OfType<IHasTrailers>()
.GetRecursiveChildren(i => i is IHasTrailers)
.Cast<IHasTrailers>()
.ToList();
var channelTrailerResult = await _channelManager.GetAllMediaInternal(new AllChannelMediaQuery

View File

@@ -32,8 +32,8 @@ namespace MediaBrowser.Server.Implementations.Library
var artist = _libraryManager.GetArtist(name);
var genres = user.RootFolder
.GetRecursiveChildren(user)
.OfType<Audio>()
.GetRecursiveChildren(user, i => i is Audio)
.Cast<Audio>()
.Where(i => i.HasArtist(name))
.SelectMany(i => i.Genres)
.Concat(artist.Genres)
@@ -45,8 +45,8 @@ namespace MediaBrowser.Server.Implementations.Library
public IEnumerable<Audio> GetInstantMixFromAlbum(MusicAlbum item, User user)
{
var genres = item
.GetRecursiveChildren(user, true)
.OfType<Audio>()
.GetRecursiveChildren(user, i => i is Audio)
.Cast<Audio>()
.SelectMany(i => i.Genres)
.Concat(item.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase);
@@ -57,8 +57,8 @@ namespace MediaBrowser.Server.Implementations.Library
public IEnumerable<Audio> GetInstantMixFromPlaylist(Playlist item, User user)
{
var genres = item
.GetRecursiveChildren(user, true)
.OfType<Audio>()
.GetRecursiveChildren(user, i => i is Audio)
.Cast<Audio>()
.SelectMany(i => i.Genres)
.Concat(item.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase);
@@ -68,12 +68,13 @@ namespace MediaBrowser.Server.Implementations.Library
public IEnumerable<Audio> GetInstantMixFromGenres(IEnumerable<string> genres, User user)
{
var inputItems = user.RootFolder.GetRecursiveChildren(user);
var inputItems = user.RootFolder
.GetRecursiveChildren(user, i => i is Audio);
var genresDictionary = genres.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
return inputItems
.OfType<Audio>()
.Cast<Audio>()
.Select(i => new Tuple<Audio, int>(i, i.Genres.Count(genresDictionary.ContainsKey)))
.Where(i => i.Item2 > 0)
.OrderByDescending(i => i.Item2)

View File

@@ -35,20 +35,19 @@ namespace MediaBrowser.Server.Implementations.Library
{
IEnumerable<BaseItem> inputItems;
Func<BaseItem, bool> filter = i => !(i is ICollectionFolder);
if (string.IsNullOrWhiteSpace(query.UserId))
{
inputItems = _libraryManager.RootFolder.RecursiveChildren;
inputItems = _libraryManager.RootFolder.GetRecursiveChildren(filter);
}
else
{
var user = _userManager.GetUserById(query.UserId);
inputItems = user.RootFolder.GetRecursiveChildren(user, true);
inputItems = user.RootFolder.GetRecursiveChildren(user, filter);
}
inputItems = inputItems.Where(i => !(i is ICollectionFolder));
inputItems = _libraryManager.ReplaceVideosWithPrimaryVersions(inputItems);
var results = await GetSearchHints(inputItems, query).ConfigureAwait(false);

View File

@@ -44,9 +44,10 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var allItems = _libraryManager.RootFolder.GetRecursiveChildren();
var allSongs = allItems.Where(i => !i.IsFolder).OfType<IHasArtist>().ToList();
var allSongs = _libraryManager.RootFolder
.GetRecursiveChildren(i => !i.IsFolder && (i is IHasArtist))
.Cast<IHasArtist>()
.ToList();
var allArtists = allSongs.SelectMany(i => i.AllArtists)
.Distinct(StringComparer.OrdinalIgnoreCase)

View File

@@ -34,7 +34,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var items = _libraryManager.RootFolder.RecursiveChildren.Where(i => (i is Game))
var items = _libraryManager.RootFolder.GetRecursiveChildren(i => (i is Game))
.SelectMany(i => i.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();

View File

@@ -35,7 +35,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var items = _libraryManager.RootFolder.RecursiveChildren.Where(i => !(i is IHasMusicGenres) && !(i is Game))
var items = _libraryManager.RootFolder.GetRecursiveChildren(i => !(i is IHasMusicGenres) && !(i is Game))
.SelectMany(i => i.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();

View File

@@ -34,7 +34,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var items = _libraryManager.RootFolder.RecursiveChildren.Where(i => (i is IHasMusicGenres))
var items = _libraryManager.RootFolder.GetRecursiveChildren(i => (i is IHasMusicGenres))
.SelectMany(i => i.Genres)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();

View File

@@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <returns>Task.</returns>
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var items = _libraryManager.RootFolder.RecursiveChildren
var items = _libraryManager.RootFolder.GetRecursiveChildren()
.SelectMany(i => i.Studios)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();

View File

@@ -20,7 +20,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
public async Task Run(IProgress<double> progress, CancellationToken cancellationToken)
{
var allYears = _libraryManager.RootFolder.RecursiveChildren
var allYears = _libraryManager.RootFolder.GetRecursiveChildren(i => i.ProductionYear.HasValue)
.Select(i => i.ProductionYear ?? -1)
.Where(i => i > 0)
.Distinct()