@ -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 )
{