|
@@ -10,6 +10,7 @@ using System.Threading;
|
|
|
using System.Xml;
|
|
|
using Emby.Dlna.Didl;
|
|
|
using Emby.Dlna.Service;
|
|
|
+using Jellyfin.Data.Entities;
|
|
|
using MediaBrowser.Common.Extensions;
|
|
|
using MediaBrowser.Controller.Configuration;
|
|
|
using MediaBrowser.Controller.Drawing;
|
|
@@ -17,7 +18,6 @@ using MediaBrowser.Controller.Dto;
|
|
|
using MediaBrowser.Controller.Entities;
|
|
|
using MediaBrowser.Controller.Entities.Audio;
|
|
|
using MediaBrowser.Controller.Entities.Movies;
|
|
|
-using MediaBrowser.Controller.Entities.TV;
|
|
|
using MediaBrowser.Controller.Library;
|
|
|
using MediaBrowser.Controller.LiveTv;
|
|
|
using MediaBrowser.Controller.MediaEncoding;
|
|
@@ -28,6 +28,12 @@ using MediaBrowser.Model.Entities;
|
|
|
using MediaBrowser.Model.Globalization;
|
|
|
using MediaBrowser.Model.Querying;
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
+using Book = MediaBrowser.Controller.Entities.Book;
|
|
|
+using Episode = MediaBrowser.Controller.Entities.TV.Episode;
|
|
|
+using Genre = MediaBrowser.Controller.Entities.Genre;
|
|
|
+using Movie = MediaBrowser.Controller.Entities.Movies.Movie;
|
|
|
+using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum;
|
|
|
+using Series = MediaBrowser.Controller.Entities.TV.Series;
|
|
|
|
|
|
namespace Emby.Dlna.ContentDirectory
|
|
|
{
|
|
@@ -36,7 +42,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
private readonly ILibraryManager _libraryManager;
|
|
|
private readonly IUserDataManager _userDataManager;
|
|
|
private readonly IServerConfigurationManager _config;
|
|
|
- private readonly Jellyfin.Data.Entities.User _user;
|
|
|
+ private readonly User _user;
|
|
|
private readonly IUserViewManager _userViewManager;
|
|
|
private readonly ITVSeriesManager _tvSeriesManager;
|
|
|
|
|
@@ -59,7 +65,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
string accessToken,
|
|
|
IImageProcessor imageProcessor,
|
|
|
IUserDataManager userDataManager,
|
|
|
- Jellyfin.Data.Entities.User user,
|
|
|
+ User user,
|
|
|
int systemUpdateId,
|
|
|
IServerConfigurationManager config,
|
|
|
ILocalizationManager localization,
|
|
@@ -432,7 +438,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
xmlWriter.WriteElementString("UpdateID", _systemUpdateId.ToString(CultureInfo.InvariantCulture));
|
|
|
}
|
|
|
|
|
|
- private QueryResult<BaseItem> GetChildrenSorted(BaseItem item, Jellyfin.Data.Entities.User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<BaseItem> GetChildrenSorted(BaseItem item, User user, SearchCriteria search, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var folder = (Folder)item;
|
|
|
|
|
@@ -489,7 +495,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return new DtoOptions(true);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetUserItems(BaseItem item, StubType? stubType, Jellyfin.Data.Entities.User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetUserItems(BaseItem item, StubType? stubType, User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
if (item is MusicGenre)
|
|
|
{
|
|
@@ -558,7 +564,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(queryResult);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetLiveTvChannels(Jellyfin.Data.Entities.User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetLiveTvChannels(User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -574,7 +580,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicFolders(BaseItem item, Jellyfin.Data.Entities.User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetMusicFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -692,7 +698,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieFolders(BaseItem item, Jellyfin.Data.Entities.User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetMovieFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -766,7 +772,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFolders(Jellyfin.Data.Entities.User user, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetFolders(User user, int? startIndex, int? limit)
|
|
|
{
|
|
|
var folders = _libraryManager.GetUserRootFolder().GetChildren(user, true)
|
|
|
.OrderBy(i => i.SortName)
|
|
@@ -783,7 +789,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
}, startIndex, limit);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetTvFolders(BaseItem item, Jellyfin.Data.Entities.User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetTvFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -871,7 +877,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieContinueWatching(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMovieContinueWatching(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -891,7 +897,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetSeries(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetSeries(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -904,7 +910,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieMovies(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMovieMovies(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -917,7 +923,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieCollections(Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMovieCollections(User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
//query.Parent = parent;
|
|
@@ -930,7 +936,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicAlbums(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicAlbums(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -943,7 +949,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicSongs(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicSongs(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -956,7 +962,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFavoriteSongs(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetFavoriteSongs(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -969,7 +975,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFavoriteSeries(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetFavoriteSeries(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -982,7 +988,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFavoriteEpisodes(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetFavoriteEpisodes(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -995,7 +1001,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieFavorites(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMovieFavorites(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -1008,7 +1014,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFavoriteAlbums(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetFavoriteAlbums(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Recursive = true;
|
|
|
query.Parent = parent;
|
|
@@ -1021,7 +1027,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetGenres(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetGenres(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
var genresResult = _libraryManager.GetGenres(new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1039,7 +1045,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicGenres(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicGenres(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
var genresResult = _libraryManager.GetMusicGenres(new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1057,7 +1063,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicAlbumArtists(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicAlbumArtists(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
var artists = _libraryManager.GetAlbumArtists(new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1075,7 +1081,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicArtists(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicArtists(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
var artists = _libraryManager.GetArtists(new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1093,7 +1099,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetFavoriteArtists(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetFavoriteArtists(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
var artists = _libraryManager.GetArtists(new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1112,7 +1118,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicPlaylists(Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicPlaylists(User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.Parent = null;
|
|
|
query.IncludeItemTypes = new[] { nameof(Playlist) };
|
|
@@ -1124,7 +1130,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicLatest(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMusicLatest(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.OrderBy = Array.Empty<(string, SortOrder)>();
|
|
|
|
|
@@ -1154,7 +1160,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetTvLatest(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetTvLatest(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.OrderBy = Array.Empty<(string, SortOrder)>();
|
|
|
|
|
@@ -1170,7 +1176,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(items);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMovieLatest(BaseItem parent, Jellyfin.Data.Entities.User user, InternalItemsQuery query)
|
|
|
+ private QueryResult<ServerItem> GetMovieLatest(BaseItem parent, User user, InternalItemsQuery query)
|
|
|
{
|
|
|
query.OrderBy = Array.Empty<(string, SortOrder)>();
|
|
|
|
|
@@ -1187,7 +1193,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(items);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicArtistItems(BaseItem item, Guid parentId, Jellyfin.Data.Entities.User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetMusicArtistItems(BaseItem item, Guid parentId, User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1207,7 +1213,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetGenreItems(BaseItem item, Guid parentId, Jellyfin.Data.Entities.User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetGenreItems(BaseItem item, Guid parentId, User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|
|
@@ -1231,7 +1237,7 @@ namespace Emby.Dlna.ContentDirectory
|
|
|
return ToResult(result);
|
|
|
}
|
|
|
|
|
|
- private QueryResult<ServerItem> GetMusicGenreItems(BaseItem item, Guid parentId, Jellyfin.Data.Entities.User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
+ private QueryResult<ServerItem> GetMusicGenreItems(BaseItem item, Guid parentId, User user, SortCriteria sort, int? startIndex, int? limit)
|
|
|
{
|
|
|
var query = new InternalItemsQuery(user)
|
|
|
{
|