diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Session/HttpSessionController.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Session/HttpSessionController.cs | 90 |
1 files changed, 52 insertions, 38 deletions
diff --git a/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs b/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs index 8d6289217..0b0f21e2c 100644 --- a/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs +++ b/MediaBrowser.Server.Implementations/Session/HttpSessionController.cs @@ -1,5 +1,8 @@ -using MediaBrowser.Common.Net; -using MediaBrowser.Controller; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Net; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Session; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Net; @@ -16,23 +19,18 @@ namespace MediaBrowser.Server.Implementations.Session { private readonly IHttpClient _httpClient; private readonly IJsonSerializer _json; - private readonly IServerApplicationHost _appHost; public SessionInfo Session { get; private set; } - //var postUrl = string.Format("http://{0}/mediabrowser/message", session.RemoteEndPoint); - private readonly string _postUrl; - public HttpSessionController(IHttpClient httpClient, - IJsonSerializer json, - IServerApplicationHost appHost, - SessionInfo session, + public HttpSessionController(IHttpClient httpClient, + IJsonSerializer json, + SessionInfo session, string postUrl) { _httpClient = httpClient; _json = json; - _appHost = appHost; Session = session; _postUrl = postUrl; } @@ -45,6 +43,11 @@ namespace MediaBrowser.Server.Implementations.Session } } + public bool SupportsMediaControl + { + get { return true; } + } + private Task SendMessage(object obj, CancellationToken cancellationToken) { var json = _json.SerializeToString(obj); @@ -58,6 +61,21 @@ namespace MediaBrowser.Server.Implementations.Session }); } + private Task SendMessage(string name, CancellationToken cancellationToken) + { + return SendMessage(name, new NameValueCollection(), cancellationToken); + } + + private Task SendMessage(string name, NameValueCollection args, CancellationToken cancellationToken) + { + return SendMessage(new WebSocketMessage<string> + { + MessageType = name, + Data = string.Empty + + }, cancellationToken); + } + public Task SendSessionEndedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken) { return Task.FromResult(true); @@ -75,22 +93,25 @@ namespace MediaBrowser.Server.Implementations.Session public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken) { - return SendMessage(new WebSocketMessage<PlayRequest> - { - MessageType = "Play", - Data = command + return Task.FromResult(true); + //return SendMessage(new WebSocketMessage<PlayRequest> + //{ + // MessageType = "Play", + // Data = command - }, cancellationToken); + //}, cancellationToken); } public Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken) { - return SendMessage(new WebSocketMessage<PlaystateRequest> + var args = new Dictionary<string, string>(); + + if (command.Command == PlaystateCommand.Seek) { - MessageType = "Playstate", - Data = command - }, cancellationToken); + } + + return SendMessage(command.Command.ToString(), cancellationToken); } public Task SendLibraryUpdateInfo(LibraryUpdateInfo info, CancellationToken cancellationToken) @@ -98,14 +119,9 @@ namespace MediaBrowser.Server.Implementations.Session return Task.FromResult(true); } - public Task SendRestartRequiredNotification(CancellationToken cancellationToken) + public Task SendRestartRequiredNotification(SystemInfo info, CancellationToken cancellationToken) { - return SendMessage(new WebSocketMessage<SystemInfo> - { - MessageType = "RestartRequired", - Data = _appHost.GetSystemInfo() - - }, cancellationToken); + return SendMessage("RestartRequired", cancellationToken); } public Task SendUserDataChangeInfo(UserDataChangeInfo info, CancellationToken cancellationToken) @@ -115,22 +131,12 @@ namespace MediaBrowser.Server.Implementations.Session public Task SendServerShutdownNotification(CancellationToken cancellationToken) { - return SendMessage(new WebSocketMessage<string> - { - MessageType = "ServerShuttingDown", - Data = string.Empty - - }, cancellationToken); + return SendMessage("ServerShuttingDown", cancellationToken); } public Task SendServerRestartNotification(CancellationToken cancellationToken) { - return SendMessage(new WebSocketMessage<string> - { - MessageType = "ServerRestarting", - Data = string.Empty - - }, cancellationToken); + return SendMessage("ServerRestarting", cancellationToken); } public Task SendGeneralCommand(GeneralCommand command, CancellationToken cancellationToken) @@ -142,5 +148,13 @@ namespace MediaBrowser.Server.Implementations.Session }, cancellationToken); } + + private string ToQueryString(Dictionary<string, string> nvc) + { + var array = (from item in nvc + select string.Format("{0}={1}", WebUtility.UrlEncode(item.Key), WebUtility.UrlEncode(item.Value))) + .ToArray(); + return "?" + string.Join("&", array); + } } } |
