connect updates

This commit is contained in:
Luke Pulverenti
2014-10-26 23:06:01 -04:00
parent b5212f94a9
commit 3ccb6bddef
46 changed files with 292 additions and 88 deletions

View File

@@ -9,6 +9,7 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Security;
using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
using MediaBrowser.Model.Serialization;
@@ -105,6 +106,8 @@ namespace MediaBrowser.Server.Implementations.Connect
_userManager = userManager;
_providerManager = providerManager;
_userManager.UserConfigurationUpdated += _userManager_UserConfigurationUpdated;
LoadCachedData();
}
@@ -914,5 +917,58 @@ namespace MediaBrowser.Server.Implementations.Connect
{
}
}
async void _userManager_UserConfigurationUpdated(object sender, GenericEventArgs<User> e)
{
var user = e.Argument;
//await TryUploadUserPreferences(user, CancellationToken.None).ConfigureAwait(false);
}
private async Task TryUploadUserPreferences(User user, CancellationToken cancellationToken)
{
if (string.IsNullOrEmpty(user.ConnectUserId))
{
return;
}
if (string.IsNullOrEmpty(ConnectAccessKey))
{
return;
}
var obj = ConnectUserPreferences.FromUserConfiguration(user.Configuration);
var json = _json.SerializeToString(obj);
var url = GetConnectUrl("user/preferences");
url += "?userId=" + user.ConnectUserId;
url += "&key=userpreferences";
var options = new HttpRequestOptions
{
Url = url,
CancellationToken = cancellationToken,
RequestContent = json,
RequestContentType = "application/json"
};
SetServerAccessToken(options);
try
{
// No need to examine the response
using (var stream = (await _httpClient.SendAsync(options, "POST").ConfigureAwait(false)).Content)
{
}
}
catch (Exception ex)
{
_logger.ErrorException("Error uploading user preferences", ex);
}
}
private async Task DownloadUserPreferences(User user, CancellationToken cancellationToken)
{
}
}
}

View File

@@ -1,4 +1,5 @@

using MediaBrowser.Model.Configuration;
namespace MediaBrowser.Server.Implementations.Connect
{
public class ServerRegistrationResponse
@@ -39,4 +40,36 @@ namespace MediaBrowser.Server.Implementations.Connect
public string UserImageUrl { get; set; }
public string UserName { get; set; }
}
public class ConnectUserPreferences
{
public string[] PreferredAudioLanguages { get; set; }
public bool PlayDefaultAudioTrack { get; set; }
public string[] PreferredSubtitleLanguages { get; set; }
public SubtitlePlaybackMode SubtitleMode { get; set; }
public bool GroupMoviesIntoBoxSets { get; set; }
public ConnectUserPreferences()
{
PreferredAudioLanguages = new string[] { };
PreferredSubtitleLanguages = new string[] { };
}
public static ConnectUserPreferences FromUserConfiguration(UserConfiguration config)
{
return new ConnectUserPreferences
{
GroupMoviesIntoBoxSets = config.GroupMoviesIntoBoxSets,
PlayDefaultAudioTrack = config.PlayDefaultAudioTrack,
SubtitleMode = config.SubtitleMode,
PreferredAudioLanguages = string.IsNullOrWhiteSpace(config.AudioLanguagePreference) ? new string[] { } : new[] { config.AudioLanguagePreference },
PreferredSubtitleLanguages = string.IsNullOrWhiteSpace(config.SubtitleLanguagePreference) ? new string[] { } : new[] { config.SubtitleLanguagePreference }
};
}
public void MergeInto(UserConfiguration config)
{
}
}
}