commit
ca62935685
|
@ -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>
|
||||||
|
|
|
@ -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>>();
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user