mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-17 11:43:44 +01:00
update javascript connection manager to latest feature set
This commit is contained in:
@@ -67,7 +67,8 @@ namespace MediaBrowser.Dlna.ContentDirectory
|
||||
_dlna.GetDefaultProfile();
|
||||
|
||||
var serverAddress = request.RequestedUrl.Substring(0, request.RequestedUrl.IndexOf("/dlna", StringComparison.OrdinalIgnoreCase));
|
||||
|
||||
string accessToken = null;
|
||||
|
||||
var user = GetUser(profile);
|
||||
|
||||
return new ControlHandler(
|
||||
@@ -75,6 +76,7 @@ namespace MediaBrowser.Dlna.ContentDirectory
|
||||
_libraryManager,
|
||||
profile,
|
||||
serverAddress,
|
||||
accessToken,
|
||||
_imageProcessor,
|
||||
_userDataManager,
|
||||
user,
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace MediaBrowser.Dlna.ContentDirectory
|
||||
|
||||
private readonly DeviceProfile _profile;
|
||||
|
||||
public ControlHandler(ILogger logger, ILibraryManager libraryManager, DeviceProfile profile, string serverAddress, IImageProcessor imageProcessor, IUserDataManager userDataManager, User user, int systemUpdateId, IServerConfigurationManager config, ILocalizationManager localization, IChannelManager channelManager)
|
||||
public ControlHandler(ILogger logger, ILibraryManager libraryManager, DeviceProfile profile, string serverAddress, string accessToken, IImageProcessor imageProcessor, IUserDataManager userDataManager, User user, int systemUpdateId, IServerConfigurationManager config, ILocalizationManager localization, IChannelManager channelManager)
|
||||
: base(config, logger)
|
||||
{
|
||||
_libraryManager = libraryManager;
|
||||
@@ -55,7 +55,7 @@ namespace MediaBrowser.Dlna.ContentDirectory
|
||||
_channelManager = channelManager;
|
||||
_profile = profile;
|
||||
|
||||
_didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, userDataManager, localization);
|
||||
_didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, accessToken, userDataManager, localization);
|
||||
}
|
||||
|
||||
protected override IEnumerable<KeyValuePair<string, string>> GetResult(string methodName, Headers methodParams)
|
||||
|
||||
@@ -33,17 +33,19 @@ namespace MediaBrowser.Dlna.Didl
|
||||
private readonly DeviceProfile _profile;
|
||||
private readonly IImageProcessor _imageProcessor;
|
||||
private readonly string _serverAddress;
|
||||
private readonly string _accessToken;
|
||||
private readonly User _user;
|
||||
private readonly IUserDataManager _userDataManager;
|
||||
private readonly ILocalizationManager _localization;
|
||||
|
||||
public DidlBuilder(DeviceProfile profile, User user, IImageProcessor imageProcessor, string serverAddress, IUserDataManager userDataManager, ILocalizationManager localization)
|
||||
public DidlBuilder(DeviceProfile profile, User user, IImageProcessor imageProcessor, string serverAddress, string accessToken, IUserDataManager userDataManager, ILocalizationManager localization)
|
||||
{
|
||||
_profile = profile;
|
||||
_imageProcessor = imageProcessor;
|
||||
_serverAddress = serverAddress;
|
||||
_userDataManager = userDataManager;
|
||||
_localization = localization;
|
||||
_accessToken = accessToken;
|
||||
_user = user;
|
||||
}
|
||||
|
||||
@@ -161,7 +163,7 @@ namespace MediaBrowser.Dlna.Didl
|
||||
AddVideoResource(container, video, deviceId, filter, contentFeature, streamInfo);
|
||||
}
|
||||
|
||||
foreach (var subtitle in streamInfo.GetExternalSubtitles(_serverAddress, false))
|
||||
foreach (var subtitle in streamInfo.GetExternalSubtitles(_serverAddress, _accessToken, false))
|
||||
{
|
||||
AddSubtitleElement(container, subtitle);
|
||||
}
|
||||
@@ -206,7 +208,7 @@ namespace MediaBrowser.Dlna.Didl
|
||||
{
|
||||
var res = container.OwnerDocument.CreateElement(string.Empty, "res", NS_DIDL);
|
||||
|
||||
var url = streamInfo.ToDlnaUrl(_serverAddress);
|
||||
var url = streamInfo.ToDlnaUrl(_serverAddress, _accessToken);
|
||||
|
||||
res.InnerText = url;
|
||||
|
||||
@@ -351,7 +353,7 @@ namespace MediaBrowser.Dlna.Didl
|
||||
});
|
||||
}
|
||||
|
||||
var url = streamInfo.ToDlnaUrl(_serverAddress);
|
||||
var url = streamInfo.ToDlnaUrl(_serverAddress, _accessToken);
|
||||
|
||||
res.InnerText = url;
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
|
||||
private readonly DeviceDiscovery _deviceDiscovery;
|
||||
private readonly string _serverAddress;
|
||||
private readonly string _accessToken;
|
||||
|
||||
public bool IsSessionActive
|
||||
{
|
||||
@@ -54,7 +55,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
|
||||
private Timer _updateTimer;
|
||||
|
||||
public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, string serverAddress, DeviceDiscovery deviceDiscovery, IUserDataManager userDataManager, ILocalizationManager localization)
|
||||
public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, string serverAddress, string accessToken, DeviceDiscovery deviceDiscovery, IUserDataManager userDataManager, ILocalizationManager localization)
|
||||
{
|
||||
_session = session;
|
||||
_itemRepository = itemRepository;
|
||||
@@ -67,6 +68,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
_deviceDiscovery = deviceDiscovery;
|
||||
_userDataManager = userDataManager;
|
||||
_localization = localization;
|
||||
_accessToken = accessToken;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
@@ -306,18 +308,16 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
var playlist = new List<PlaylistItem>();
|
||||
var isFirst = true;
|
||||
|
||||
var serverAddress = GetServerAddress();
|
||||
|
||||
foreach (var item in items)
|
||||
{
|
||||
if (isFirst && command.StartPositionTicks.HasValue)
|
||||
{
|
||||
playlist.Add(CreatePlaylistItem(item, user, command.StartPositionTicks.Value, serverAddress));
|
||||
playlist.Add(CreatePlaylistItem(item, user, command.StartPositionTicks.Value));
|
||||
isFirst = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
playlist.Add(CreatePlaylistItem(item, user, 0, serverAddress));
|
||||
playlist.Add(CreatePlaylistItem(item, user, 0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -381,7 +381,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
if (info.Item != null && !info.IsDirectStream)
|
||||
{
|
||||
var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null;
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, info.AudioStreamIndex, info.SubtitleStreamIndex);
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, info.AudioStreamIndex, info.SubtitleStreamIndex);
|
||||
|
||||
await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false);
|
||||
|
||||
@@ -458,12 +458,12 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
}
|
||||
}
|
||||
|
||||
private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string serverAddress)
|
||||
private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks)
|
||||
{
|
||||
return CreatePlaylistItem(item, user, startPostionTicks, serverAddress, null, null, null);
|
||||
return CreatePlaylistItem(item, user, startPostionTicks, null, null, null);
|
||||
}
|
||||
|
||||
private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string serverAddress, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
|
||||
private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
|
||||
{
|
||||
var deviceInfo = _device.Properties;
|
||||
|
||||
@@ -478,9 +478,9 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
var playlistItem = GetPlaylistItem(item, mediaSources, profile, _session.DeviceId, mediaSourceId, audioStreamIndex, subtitleStreamIndex);
|
||||
playlistItem.StreamInfo.StartPositionTicks = startPostionTicks;
|
||||
|
||||
playlistItem.StreamUrl = playlistItem.StreamInfo.ToUrl(serverAddress);
|
||||
playlistItem.StreamUrl = playlistItem.StreamInfo.ToUrl(_serverAddress, _accessToken);
|
||||
|
||||
var itemXml = new DidlBuilder(profile, user, _imageProcessor, serverAddress, _userDataManager, _localization)
|
||||
var itemXml = new DidlBuilder(profile, user, _imageProcessor, _serverAddress, _accessToken, _userDataManager, _localization)
|
||||
.GetItemDidl(item, null, _session.DeviceId, new Filter(), playlistItem.StreamInfo);
|
||||
|
||||
playlistItem.Didl = itemXml;
|
||||
@@ -745,7 +745,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
var newPosition = progress.PositionTicks ?? 0;
|
||||
|
||||
var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null;
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, newIndex, info.SubtitleStreamIndex);
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, newIndex, info.SubtitleStreamIndex);
|
||||
|
||||
await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false);
|
||||
|
||||
@@ -771,7 +771,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
var newPosition = progress.PositionTicks ?? 0;
|
||||
|
||||
var user = _session.UserId.HasValue ? _userManager.GetUserById(_session.UserId.Value) : null;
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, GetServerAddress(), info.MediaSourceId, info.AudioStreamIndex, newIndex);
|
||||
var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, info.AudioStreamIndex, newIndex);
|
||||
|
||||
await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -98,6 +98,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
if (controller == null)
|
||||
{
|
||||
var serverAddress = GetServerAddress(localIp);
|
||||
string accessToken = null;
|
||||
|
||||
sessionInfo.SessionController = controller = new PlayToController(sessionInfo,
|
||||
_sessionManager,
|
||||
@@ -108,6 +109,7 @@ namespace MediaBrowser.Dlna.PlayTo
|
||||
_userManager,
|
||||
_imageProcessor,
|
||||
serverAddress,
|
||||
accessToken,
|
||||
_deviceDiscovery,
|
||||
_userDataManager,
|
||||
_localization);
|
||||
|
||||
Reference in New Issue
Block a user