diff --git a/Jellyfin.Api/Controllers/TrailersController.cs b/Jellyfin.Api/Controllers/TrailersController.cs index 645495551b..fbab7948ff 100644 --- a/Jellyfin.Api/Controllers/TrailersController.cs +++ b/Jellyfin.Api/Controllers/TrailersController.cs @@ -1,14 +1,10 @@ using System; using Jellyfin.Api.Constants; -using MediaBrowser.Controller.Dto; -using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; -using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Querying; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; namespace Jellyfin.Api.Controllers { @@ -18,32 +14,15 @@ namespace Jellyfin.Api.Controllers [Authorize(Policy = Policies.DefaultAuthorization)] public class TrailersController : BaseJellyfinApiController { - private readonly IUserManager _userManager; - private readonly ILibraryManager _libraryManager; - private readonly ILogger _logger; - private readonly IDtoService _dtoService; - private readonly ILocalizationManager _localizationManager; + private readonly ItemsController _itemsController; /// /// Initializes a new instance of the class. /// - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - public TrailersController( - ILoggerFactory loggerFactory, - IUserManager userManager, - ILibraryManager libraryManager, - IDtoService dtoService, - ILocalizationManager localizationManager) + /// Instance of . + public TrailersController(ItemsController itemsController) { - _userManager = userManager; - _libraryManager = libraryManager; - _dtoService = dtoService; - _localizationManager = localizationManager; - _logger = loggerFactory.CreateLogger(); + _itemsController = itemsController; } /// @@ -214,12 +193,7 @@ namespace Jellyfin.Api.Controllers { var includeItemTypes = "Trailer"; - return new ItemsController( - _userManager, - _libraryManager, - _localizationManager, - _dtoService, - _logger) + return _itemsController .GetItems( userId, userId, diff --git a/Jellyfin.Api/Controllers/UniversalAudioController.cs b/Jellyfin.Api/Controllers/UniversalAudioController.cs index 87d9a611a0..50ab0ac054 100644 --- a/Jellyfin.Api/Controllers/UniversalAudioController.cs +++ b/Jellyfin.Api/Controllers/UniversalAudioController.cs @@ -7,21 +7,12 @@ using System.Threading.Tasks; using Jellyfin.Api.Constants; using Jellyfin.Api.Helpers; using Jellyfin.Api.Models.VideoDtos; -using MediaBrowser.Common.Net; -using MediaBrowser.Controller.Configuration; -using MediaBrowser.Controller.Devices; -using MediaBrowser.Controller.Dlna; -using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.Net; using MediaBrowser.Model.Dlna; -using MediaBrowser.Model.IO; using MediaBrowser.Model.MediaInfo; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; namespace Jellyfin.Api.Controllers { @@ -30,72 +21,28 @@ namespace Jellyfin.Api.Controllers /// public class UniversalAudioController : BaseJellyfinApiController { - private readonly ILoggerFactory _loggerFactory; - private readonly IUserManager _userManager; - private readonly ILibraryManager _libraryManager; - private readonly IDeviceManager _deviceManager; - private readonly IDlnaManager _dlnaManager; - private readonly IMediaEncoder _mediaEncoder; - private readonly IFileSystem _fileSystem; - private readonly IMediaSourceManager _mediaSourceManager; private readonly IAuthorizationContext _authorizationContext; - private readonly INetworkManager _networkManager; - private readonly IServerConfigurationManager _serverConfigurationManager; - private readonly TranscodingJobHelper _transcodingJobHelper; - private readonly IConfiguration _configuration; - private readonly ISubtitleEncoder _subtitleEncoder; - private readonly IHttpClientFactory _httpClientFactory; + private readonly MediaInfoController _mediaInfoController; + private readonly DynamicHlsController _dynamicHlsController; + private readonly AudioController _audioController; /// /// Initializes a new instance of the class. /// - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. - /// Instance of the interface. + /// Instance of the . + /// Instance of the . + /// Instance of the . public UniversalAudioController( - ILoggerFactory loggerFactory, - IServerConfigurationManager serverConfigurationManager, - IUserManager userManager, - ILibraryManager libraryManager, - IMediaEncoder mediaEncoder, - IFileSystem fileSystem, - IDlnaManager dlnaManager, - IDeviceManager deviceManager, - IMediaSourceManager mediaSourceManager, IAuthorizationContext authorizationContext, - INetworkManager networkManager, - TranscodingJobHelper transcodingJobHelper, - IConfiguration configuration, - ISubtitleEncoder subtitleEncoder, - IHttpClientFactory httpClientFactory) + MediaInfoController mediaInfoController, + DynamicHlsController dynamicHlsController, + AudioController audioController) { - _userManager = userManager; - _libraryManager = libraryManager; - _mediaEncoder = mediaEncoder; - _fileSystem = fileSystem; - _dlnaManager = dlnaManager; - _deviceManager = deviceManager; - _mediaSourceManager = mediaSourceManager; _authorizationContext = authorizationContext; - _networkManager = networkManager; - _loggerFactory = loggerFactory; - _serverConfigurationManager = serverConfigurationManager; - _transcodingJobHelper = transcodingJobHelper; - _configuration = configuration; - _subtitleEncoder = subtitleEncoder; - _httpClientFactory = httpClientFactory; + _mediaInfoController = mediaInfoController; + _dynamicHlsController = dynamicHlsController; + _audioController = audioController; } /// @@ -151,8 +98,7 @@ namespace Jellyfin.Api.Controllers var deviceProfile = GetDeviceProfile(container, transcodingContainer, audioCodec, transcodingProtocol, breakOnNonKeyFrames, transcodingAudioChannels, maxAudioSampleRate, maxAudioBitDepth, maxAudioChannels); _authorizationContext.GetAuthorizationInfo(Request).DeviceId = deviceId; - var mediaInfoController = new MediaInfoController(_mediaSourceManager, _deviceManager, _libraryManager, _networkManager, _mediaEncoder, _userManager, _authorizationContext, _loggerFactory.CreateLogger(), _serverConfigurationManager); - var playbackInfoResult = await mediaInfoController.GetPostedPlaybackInfo( + var playbackInfoResult = await _mediaInfoController.GetPostedPlaybackInfo( itemId, userId, maxStreamingBitrate, @@ -180,21 +126,6 @@ namespace Jellyfin.Api.Controllers var isStatic = mediaSource.SupportsDirectStream; if (!isStatic && string.Equals(mediaSource.TranscodingSubProtocol, "hls", StringComparison.OrdinalIgnoreCase)) { - var dynamicHlsController = new DynamicHlsController( - _libraryManager, - _userManager, - _dlnaManager, - _authorizationContext, - _mediaSourceManager, - _serverConfigurationManager, - _mediaEncoder, - _fileSystem, - _subtitleEncoder, - _configuration, - _deviceManager, - _transcodingJobHelper, - _networkManager, - _loggerFactory.CreateLogger()); var transcodingProfile = deviceProfile.TranscodingProfiles[0]; // hls segment container can only be mpegts or fmp4 per ffmpeg documentation @@ -203,10 +134,10 @@ namespace Jellyfin.Api.Controllers if (isHeadRequest) { - dynamicHlsController.Request.Method = HttpMethod.Head.Method; + _dynamicHlsController.Request.Method = HttpMethod.Head.Method; } - return await dynamicHlsController.GetMasterHlsAudioPlaylist( + return await _dynamicHlsController.GetMasterHlsAudioPlaylist( itemId, ".m3u8", isStatic, @@ -261,27 +192,12 @@ namespace Jellyfin.Api.Controllers } else { - var audioController = new AudioController( - _dlnaManager, - _userManager, - _authorizationContext, - _libraryManager, - _mediaSourceManager, - _serverConfigurationManager, - _mediaEncoder, - _fileSystem, - _subtitleEncoder, - _configuration, - _deviceManager, - _transcodingJobHelper, - _httpClientFactory); - if (isHeadRequest) { - audioController.Request.Method = HttpMethod.Head.Method; + _audioController.Request.Method = HttpMethod.Head.Method; } - return await audioController.GetAudioStream( + return await _audioController.GetAudioStream( itemId, isStatic ? null : ("." + mediaSource.TranscodingContainer), isStatic,