mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-17 19:54:47 +01:00
sync updates
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user