Merge pull request #1773 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-05-24 12:59:56 -04:00
commit ca62935685
4 changed files with 32 additions and 64 deletions

View File

@ -170,22 +170,18 @@ namespace MediaBrowser.Server.Implementations.Library
return value; return value;
} }
} }
if (keys.Count > 0)
{
var key = keys[0];
var cacheKey = GetCacheKey(userId, key);
var userdata = new UserItemData
{
UserId = userId,
Key = key
};
_userData[cacheKey] = userdata;
return userdata;
}
return null;
} }
if (keys.Count > 0)
{
return new UserItemData
{
UserId = userId,
Key = keys[0]
};
}
return null;
} }
/// <summary> /// <summary>

View File

@ -939,9 +939,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
IsMovie = query.IsMovie, IsMovie = query.IsMovie,
IsSports = query.IsSports, IsSports = query.IsSports,
IsKids = query.IsKids, IsKids = query.IsKids,
EnableTotalRecordCount = query.EnableTotalRecordCount EnableTotalRecordCount = query.EnableTotalRecordCount,
SortBy = new[] { ItemSortBy.StartDate }
}; };
if (query.Limit.HasValue)
{
internalQuery.Limit = Math.Max(query.Limit.Value * 5, 300);
}
if (query.HasAired.HasValue) if (query.HasAired.HasValue)
{ {
if (query.HasAired.Value) if (query.HasAired.Value)
@ -958,15 +964,10 @@ namespace MediaBrowser.Server.Implementations.LiveTv
var programList = programs.ToList(); var programList = programs.ToList();
var genres = programList.SelectMany(i => i.Genres) var factorChannelWatchCount = (query.IsAiring ?? false) || (query.IsKids ?? false) || (query.IsSports ?? false) || (query.IsMovie ?? false);
.Where(i => !string.IsNullOrWhiteSpace(i))
.DistinctNames()
.Select(i => _libraryManager.GetGenre(i))
.DistinctBy(i => i.Id)
.ToDictionary(i => i.Name, StringComparer.OrdinalIgnoreCase);
programs = programList.OrderBy(i => i.HasImage(ImageType.Primary) ? 0 : 1) programs = programList.OrderBy(i => i.HasImage(ImageType.Primary) ? 0 : 1)
.ThenByDescending(i => GetRecommendationScore(i, user.Id, genres)) .ThenByDescending(i => GetRecommendationScore(i, user.Id, factorChannelWatchCount))
.ThenBy(i => i.StartDate); .ThenBy(i => i.StartDate);
if (query.Limit.HasValue) if (query.Limit.HasValue)
@ -1004,7 +1005,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return result; return result;
} }
private int GetRecommendationScore(LiveTvProgram program, Guid userId, Dictionary<string, Genre> genres) private int GetRecommendationScore(LiveTvProgram program, Guid userId, bool factorChannelWatchCount)
{ {
var score = 0; var score = 0;
@ -1036,43 +1037,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv
score += 3; score += 3;
} }
score += GetGenreScore(program.Genres, userId, genres); if (factorChannelWatchCount)
{
score += channelUserdata.PlayCount;
}
return score; return score;
} }
private int GetGenreScore(IEnumerable<string> programGenres, Guid userId, Dictionary<string, Genre> genres)
{
return programGenres.Select(i =>
{
var score = 0;
Genre genre;
if (genres.TryGetValue(i, out genre))
{
var genreUserdata = _userDataManager.GetUserData(userId, genre);
if (genreUserdata.Likes ?? false)
{
score++;
}
else if (!(genreUserdata.Likes ?? true))
{
score--;
}
if (genreUserdata.IsFavorite)
{
score += 2;
}
}
return score;
}).Sum();
}
private async Task AddRecordingInfo(IEnumerable<Tuple<BaseItemDto, string, string>> programs, CancellationToken cancellationToken) private async Task AddRecordingInfo(IEnumerable<Tuple<BaseItemDto, string, string>> programs, CancellationToken cancellationToken)
{ {
var timers = new Dictionary<string, List<TimerInfo>>(); var timers = new Dictionary<string, List<TimerInfo>>();

View File

@ -254,7 +254,7 @@ namespace MediaBrowser.ServerApplication
{ {
Task.WaitAll(task); Task.WaitAll(task);
task = InstallVcredistIfNeeded(_appHost, _logger); task = InstallVcredist2013IfNeeded(_appHost, _logger);
Task.WaitAll(task); Task.WaitAll(task);
task = InstallFrameworkV46IfNeeded(_logger); task = InstallFrameworkV46IfNeeded(_logger);
@ -679,7 +679,7 @@ namespace MediaBrowser.ServerApplication
} }
} }
private static async Task InstallVcredistIfNeeded(ApplicationHost appHost, ILogger logger) private static async Task InstallVcredist2013IfNeeded(ApplicationHost appHost, ILogger logger)
{ {
try try
{ {
@ -693,7 +693,7 @@ namespace MediaBrowser.ServerApplication
try try
{ {
await InstallVcredist().ConfigureAwait(false); await InstallVcredist2013().ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -701,13 +701,13 @@ namespace MediaBrowser.ServerApplication
} }
} }
private async static Task InstallVcredist() private async static Task InstallVcredist2013()
{ {
var httpClient = _appHost.HttpClient; var httpClient = _appHost.HttpClient;
var tmp = await httpClient.GetTempFile(new HttpRequestOptions var tmp = await httpClient.GetTempFile(new HttpRequestOptions
{ {
Url = GetVcredistUrl(), Url = GetVcredist2013Url(),
Progress = new Progress<double>() Progress = new Progress<double>()
}).ConfigureAwait(false); }).ConfigureAwait(false);
@ -733,7 +733,7 @@ namespace MediaBrowser.ServerApplication
} }
} }
private static string GetVcredistUrl() private static string GetVcredist2013Url()
{ {
if (Environment.Is64BitProcess) if (Environment.Is64BitProcess)
{ {

View File

@ -274,7 +274,7 @@ namespace MediaBrowser.WebDashboard.Api
} }
var mainFile = File.ReadAllText(GetDashboardResourcePath("index.html")); var mainFile = File.ReadAllText(GetDashboardResourcePath("index.html"));
html = ReplaceFirst(mainFile, "<div class=\"mainAnimatedPage hide\"></div>", "<div class=\"mainAnimatedPage hide\">" + html + "</div>"); html = ReplaceFirst(mainFile, "<div class=\"mainAnimatedPages skinBody\"></div>", "<div class=\"mainAnimatedPages skinBody hide\">" + html + "</div>");
} }
if (!string.IsNullOrWhiteSpace(localizationCulture)) if (!string.IsNullOrWhiteSpace(localizationCulture))