aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Session
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-05-31 15:40:34 -0400
committerGitHub <noreply@github.com>2017-05-31 15:40:34 -0400
commit91176d9ccc1dde8155c10411c70e62a9f4b059d5 (patch)
tree21365f5a8dd09534a53d9f88d2a7a3116f3f3f98 /Emby.Server.Implementations/Session
parentc37c9a75073b1b9caa3af2c3bc62abd837bd630e (diff)
parent4e10daf646e0788409f2bc52ef70effa2616e3f3 (diff)
Merge pull request #2677 from MediaBrowser/beta
Beta
Diffstat (limited to 'Emby.Server.Implementations/Session')
-rw-r--r--Emby.Server.Implementations/Session/HttpSessionController.cs26
-rw-r--r--Emby.Server.Implementations/Session/SessionManager.cs36
-rw-r--r--Emby.Server.Implementations/Session/SessionWebSocketListener.cs23
3 files changed, 49 insertions, 36 deletions
diff --git a/Emby.Server.Implementations/Session/HttpSessionController.cs b/Emby.Server.Implementations/Session/HttpSessionController.cs
index 2acc3902f..92fa6c424 100644
--- a/Emby.Server.Implementations/Session/HttpSessionController.cs
+++ b/Emby.Server.Implementations/Session/HttpSessionController.cs
@@ -66,19 +66,19 @@ namespace Emby.Server.Implementations.Session
return SendMessage(name, new Dictionary<string, string>(), cancellationToken);
}
- private async Task SendMessage(string name,
+ private Task SendMessage(string name,
Dictionary<string, string> args,
CancellationToken cancellationToken)
{
var url = PostUrl + "/" + name + ToQueryString(args);
- await _httpClient.Post(new HttpRequestOptions
+ return _httpClient.Post(new HttpRequestOptions
{
Url = url,
CancellationToken = cancellationToken,
BufferContent = false
- }).ConfigureAwait(false);
+ });
}
public Task SendSessionEndedNotification(SessionInfoDto sessionInfo, CancellationToken cancellationToken)
@@ -159,8 +159,24 @@ namespace Emby.Server.Implementations.Session
public Task SendMessage<T>(string name, T data, CancellationToken cancellationToken)
{
- // Not supported or needed right now
- return Task.FromResult(true);
+ var url = PostUrl + "/" + name;
+
+ var options = new HttpRequestOptions
+ {
+ Url = url,
+ CancellationToken = cancellationToken,
+ BufferContent = false
+ };
+
+ options.RequestContent = _json.SerializeToString(data);
+ options.RequestContentType = "application/json";
+
+ return _httpClient.Post(new HttpRequestOptions
+ {
+ Url = url,
+ CancellationToken = cancellationToken,
+ BufferContent = false
+ });
}
private string ToQueryString(Dictionary<string, string> nvc)
diff --git a/Emby.Server.Implementations/Session/SessionManager.cs b/Emby.Server.Implementations/Session/SessionManager.cs
index de00cf239..42cd5d1b1 100644
--- a/Emby.Server.Implementations/Session/SessionManager.cs
+++ b/Emby.Server.Implementations/Session/SessionManager.cs
@@ -30,6 +30,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Net;
+using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Threading;
namespace Emby.Server.Implementations.Session
@@ -984,7 +985,7 @@ namespace Emby.Server.Implementations.Session
var list = new List<BaseItem>();
foreach (var itemId in command.ItemIds)
{
- var subItems = await TranslateItemForPlayback(itemId, user).ConfigureAwait(false);
+ var subItems = TranslateItemForPlayback(itemId, user);
list.AddRange(subItems);
}
@@ -1022,7 +1023,10 @@ namespace Emby.Server.Implementations.Session
var series = episode.Series;
if (series != null)
{
- var episodes = series.GetEpisodes(user)
+ var episodes = series.GetEpisodes(user, new DtoOptions(false)
+ {
+ EnableImages = false
+ })
.Where(i => !i.IsVirtualItem)
.SkipWhile(i => i.Id != episode.Id)
.ToList();
@@ -1048,7 +1052,7 @@ namespace Emby.Server.Implementations.Session
await session.SessionController.SendPlayCommand(command, cancellationToken).ConfigureAwait(false);
}
- private async Task<List<BaseItem>> TranslateItemForPlayback(string id, User user)
+ private List<BaseItem> TranslateItemForPlayback(string id, User user)
{
var item = _libraryManager.GetItemById(id);
@@ -1065,7 +1069,15 @@ namespace Emby.Server.Implementations.Session
var items = byName.GetTaggedItems(new InternalItemsQuery(user)
{
IsFolder = false,
- Recursive = true
+ Recursive = true,
+ DtoOptions = new DtoOptions(false)
+ {
+ EnableImages = false,
+ Fields = new List<ItemFields>
+ {
+ ItemFields.SortName
+ }
+ }
});
return FilterToSingleMediaType(items)
@@ -1077,12 +1089,20 @@ namespace Emby.Server.Implementations.Session
{
var folder = (Folder)item;
- var itemsResult = await folder.GetItems(new InternalItemsQuery(user)
+ var itemsResult = folder.GetItems(new InternalItemsQuery(user)
{
Recursive = true,
- IsFolder = false
+ IsFolder = false,
+ DtoOptions = new DtoOptions(false)
+ {
+ EnableImages = false,
+ Fields = new List<ItemFields>
+ {
+ ItemFields.SortName
+ }
+ }
- }).ConfigureAwait(false);
+ });
return FilterToSingleMediaType(itemsResult.Items)
.OrderBy(i => i.SortName)
@@ -1111,7 +1131,7 @@ namespace Emby.Server.Implementations.Session
return new List<BaseItem>();
}
- return _musicManager.GetInstantMixFromItem(item, user);
+ return _musicManager.GetInstantMixFromItem(item, user, new DtoOptions(false) { EnableImages = false });
}
public Task SendBrowseCommand(string controllingSessionId, string sessionId, BrowseRequest command, CancellationToken cancellationToken)
diff --git a/Emby.Server.Implementations/Session/SessionWebSocketListener.cs b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
index 478f9da71..2735bb237 100644
--- a/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
+++ b/Emby.Server.Implementations/Session/SessionWebSocketListener.cs
@@ -57,7 +57,6 @@ namespace Emby.Server.Implementations.Session
_json = json;
_httpServer = httpServer;
_serverManager = serverManager;
- httpServer.WebSocketConnecting += _httpServer_WebSocketConnecting;
serverManager.WebSocketConnected += _serverManager_WebSocketConnected;
}
@@ -84,27 +83,6 @@ namespace Emby.Server.Implementations.Session
}
}
- async void _httpServer_WebSocketConnecting(object sender, WebSocketConnectingEventArgs e)
- {
- //var token = e.QueryString["api_key"];
- //if (!string.IsNullOrWhiteSpace(token))
- //{
- // try
- // {
- // var session = await GetSession(e.QueryString, e.Endpoint).ConfigureAwait(false);
-
- // if (session == null)
- // {
- // e.AllowConnection = false;
- // }
- // }
- // catch (Exception ex)
- // {
- // _logger.ErrorException("Error getting session info", ex);
- // }
- //}
- }
-
private Task<SessionInfo> GetSession(QueryParamCollection queryString, string remoteEndpoint)
{
if (queryString == null)
@@ -123,7 +101,6 @@ namespace Emby.Server.Implementations.Session
public void Dispose()
{
- _httpServer.WebSocketConnecting -= _httpServer_WebSocketConnecting;
_serverManager.WebSocketConnected -= _serverManager_WebSocketConnected;
}