mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-24 01:34:45 +03:00
added dlna music folders
This commit is contained in:
@@ -171,6 +171,18 @@ namespace MediaBrowser.Controller.Entities
|
||||
case CollectionType.MovieCollections:
|
||||
return GetMovieCollections(parent, user, query);
|
||||
|
||||
case CollectionType.MusicLatest:
|
||||
return GetMusicLatest(parent, user, query);
|
||||
|
||||
case CollectionType.MusicAlbums:
|
||||
return GetMusicAlbums(parent, user, query);
|
||||
|
||||
case CollectionType.MusicAlbumArtists:
|
||||
return GetMusicAlbumArtists(parent, user, query);
|
||||
|
||||
case CollectionType.MusicArtists:
|
||||
return GetMusicArtists(parent, user, query);
|
||||
|
||||
default:
|
||||
return GetResult(GetMediaFolders(user).SelectMany(i => i.GetChildren(user, true)), query);
|
||||
}
|
||||
@@ -188,7 +200,78 @@ namespace MediaBrowser.Controller.Entities
|
||||
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }), query);
|
||||
}
|
||||
|
||||
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }).OfType<MusicArtist>(), query);
|
||||
var list = new List<BaseItem>();
|
||||
|
||||
var category = "music";
|
||||
|
||||
list.Add(await GetUserView(category, CollectionType.MusicLatest, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MusicAlbums, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MusicAlbumArtists, user, "2", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.MusicArtists, user, "3", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.MusicGenres, user, "5", parent).ConfigureAwait(false));
|
||||
|
||||
return GetResult(list, query);
|
||||
}
|
||||
|
||||
private QueryResult<BaseItem> GetMusicAlbumArtists(Folder parent, User user, UserItemsQuery query)
|
||||
{
|
||||
var artists = GetRecursiveChildren(parent, user, new[] { CollectionType.Music })
|
||||
.Where(i => !i.IsFolder)
|
||||
.OfType<IHasAlbumArtist>()
|
||||
.SelectMany(i => i.AlbumArtists)
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.Select(i =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return _libraryManager.GetArtist(i);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Already logged at lower levels
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.Where(i => i != null);
|
||||
|
||||
return GetResult(artists, query);
|
||||
}
|
||||
|
||||
private QueryResult<BaseItem> GetMusicArtists(Folder parent, User user, UserItemsQuery query)
|
||||
{
|
||||
var artists = GetRecursiveChildren(parent, user, new[] { CollectionType.Music })
|
||||
.Where(i => !i.IsFolder)
|
||||
.OfType<IHasArtist>()
|
||||
.SelectMany(i => i.Artists)
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.Select(i =>
|
||||
{
|
||||
try
|
||||
{
|
||||
return _libraryManager.GetArtist(i);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// Already logged at lower levels
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.Where(i => i != null);
|
||||
|
||||
return GetResult(artists, query);
|
||||
}
|
||||
|
||||
private QueryResult<BaseItem> GetMusicAlbums(Folder parent, User user, UserItemsQuery query)
|
||||
{
|
||||
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }).Where(i => i is MusicAlbum), query);
|
||||
}
|
||||
|
||||
private QueryResult<BaseItem> GetMusicLatest(Folder parent, User user, UserItemsQuery query)
|
||||
{
|
||||
query.SortBy = new[] { ItemSortBy.DateCreated, ItemSortBy.SortName };
|
||||
query.SortOrder = SortOrder.Descending;
|
||||
|
||||
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Music }).Where(i => i is MusicVideo || i is Audio.Audio), GetSpecialItemsLimit(), query);
|
||||
}
|
||||
|
||||
private async Task<QueryResult<BaseItem>> GetMovieFolders(Folder parent, User user, UserItemsQuery query)
|
||||
@@ -200,11 +283,13 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
var list = new List<BaseItem>();
|
||||
|
||||
list.Add(await GetUserView(CollectionType.MovieResume, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.MovieLatest, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.MovieMovies, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.MovieCollections, user, "3", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.MovieFavorites, user, "4", parent).ConfigureAwait(false));
|
||||
var category = "movies";
|
||||
|
||||
list.Add(await GetUserView(category, CollectionType.MovieResume, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MovieLatest, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MovieMovies, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MovieCollections, user, "3", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.MovieFavorites, user, "4", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.MovieGenres, user, "5", parent).ConfigureAwait(false));
|
||||
|
||||
return GetResult(list, query);
|
||||
@@ -243,7 +328,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
return GetResult(GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty }).Where(i => i is Movie), GetSpecialItemsLimit(), query);
|
||||
}
|
||||
|
||||
|
||||
private QueryResult<BaseItem> GetMovieGenres(Folder parent, User user, UserItemsQuery query)
|
||||
{
|
||||
var genres = GetRecursiveChildren(parent, user, new[] { CollectionType.Movies, CollectionType.BoxSets, string.Empty })
|
||||
@@ -278,10 +363,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
var list = new List<BaseItem>();
|
||||
|
||||
list.Add(await GetUserView(CollectionType.TvResume, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.TvNextUp, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.TvLatest, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.TvSeries, user, "3", parent).ConfigureAwait(false));
|
||||
var category = "tv";
|
||||
|
||||
list.Add(await GetUserView(category, CollectionType.TvResume, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.TvNextUp, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.TvLatest, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.TvSeries, user, "3", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.TvFavorites, user, "4", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.TvGenres, user, "5", parent).ConfigureAwait(false));
|
||||
|
||||
@@ -297,10 +384,12 @@ namespace MediaBrowser.Controller.Entities
|
||||
|
||||
var list = new List<BaseItem>();
|
||||
|
||||
list.Add(await GetUserView(CollectionType.LatestGames, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.RecentlyPlayedGames, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.GameFavorites, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(CollectionType.GameSystems, user, "3", parent).ConfigureAwait(false));
|
||||
var category = "games";
|
||||
|
||||
list.Add(await GetUserView(category, CollectionType.LatestGames, user, "0", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.RecentlyPlayedGames, user, "1", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.GameFavorites, user, "2", parent).ConfigureAwait(false));
|
||||
list.Add(await GetUserView(category, CollectionType.GameSystems, user, "3", parent).ConfigureAwait(false));
|
||||
//list.Add(await GetUserView(CollectionType.GameGenres, user, "4", parent).ConfigureAwait(false));
|
||||
|
||||
return GetResult(list, query);
|
||||
@@ -341,7 +430,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
private QueryResult<BaseItem> GetTvNextUp(Folder parent, UserItemsQuery query)
|
||||
{
|
||||
var parentFolders = GetMediaFolders(parent, query.User, new[] { CollectionType.TvShows, string.Empty });
|
||||
|
||||
|
||||
var result = _tvSeriesManager.GetNextUp(new NextUpQuery
|
||||
{
|
||||
Limit = query.Limit,
|
||||
@@ -589,16 +678,16 @@ namespace MediaBrowser.Controller.Entities
|
||||
{
|
||||
var list = new List<BaseItem>();
|
||||
|
||||
list.Add(await _userViewManager.GetUserView(CollectionType.LiveTvNowPlaying, user, "0", CancellationToken.None).ConfigureAwait(false));
|
||||
list.Add(await _userViewManager.GetUserView(CollectionType.LiveTvChannels, user, string.Empty, CancellationToken.None).ConfigureAwait(false));
|
||||
list.Add(await _userViewManager.GetUserView(CollectionType.LiveTvRecordingGroups, user, string.Empty, CancellationToken.None).ConfigureAwait(false));
|
||||
list.Add(await _userViewManager.GetUserView("livetv", CollectionType.LiveTvNowPlaying, user, "0", CancellationToken.None).ConfigureAwait(false));
|
||||
list.Add(await _userViewManager.GetUserView("livetv", CollectionType.LiveTvChannels, user, string.Empty, CancellationToken.None).ConfigureAwait(false));
|
||||
list.Add(await _userViewManager.GetUserView("livetv", CollectionType.LiveTvRecordingGroups, user, string.Empty, CancellationToken.None).ConfigureAwait(false));
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private async Task<UserView> GetUserView(string type, User user, string sortName, Folder parent)
|
||||
private async Task<UserView> GetUserView(string category, string type, User user, string sortName, Folder parent)
|
||||
{
|
||||
var view = await _userViewManager.GetUserView(type, user, sortName, CancellationToken.None)
|
||||
var view = await _userViewManager.GetUserView(category, type, user, sortName, CancellationToken.None)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
if (parent.Id != view.ParentId)
|
||||
|
||||
Reference in New Issue
Block a user