support xmltv gzip

This commit is contained in:
Luke Pulverenti
2016-06-15 22:37:06 -04:00
parent 825f0f3507
commit 37d7db4bc4
6 changed files with 48 additions and 13 deletions

View File

@@ -486,10 +486,15 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.UserData.Played = dto.UserData.PlayedPercentage.HasValue && dto.UserData.PlayedPercentage.Value >= 100;
}
else
else if (item.SourceType == SourceType.Library)
{
dto.UserData = _userDataRepository.GetUserDataDto(item, user);
}
else
{
var userData = _userDataRepository.GetUserData(user, item);
dto.UserData = GetUserItemDataDto(userData);
}
if (item.SourceType == SourceType.Library)
{

View File

@@ -6,6 +6,8 @@ using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Emby.XmlTv.Classes;
@@ -53,7 +55,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
return path;
}
var cacheFilename = DateTime.UtcNow.DayOfYear.ToString(CultureInfo.InvariantCulture) + "_" + DateTime.UtcNow.Hour.ToString(CultureInfo.InvariantCulture) + ".xml";
var cacheFilename = DateTime.UtcNow.DayOfYear.ToString(CultureInfo.InvariantCulture) + "-" + DateTime.UtcNow.Hour.ToString(CultureInfo.InvariantCulture) + ".xml";
var cacheFile = Path.Combine(_config.ApplicationPaths.CachePath, "xmltv", cacheFilename);
if (File.Exists(cacheFile))
{
@@ -67,13 +69,34 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
CancellationToken = cancellationToken,
Url = path,
Progress = new Progress<Double>(),
EnableHttpCompression = false
DecompressionMethod = DecompressionMethods.GZip,
// It's going to come back gzipped regardless of this value
// So we need to make sure the decompression method is set to gzip
EnableHttpCompression = true
}).ConfigureAwait(false);
Directory.CreateDirectory(Path.GetDirectoryName(cacheFile));
File.Copy(tempFile, cacheFile, true);
using (var stream = File.OpenRead(tempFile))
{
using (var reader = new StreamReader(stream, Encoding.UTF8))
{
using (var fileStream = File.OpenWrite(cacheFile))
{
using (var writer = new StreamWriter(fileStream))
{
while (!reader.EndOfStream)
{
writer.WriteLine(reader.ReadLine());
}
}
}
}
}
_logger.Debug("Returning xmltv path {0}", cacheFile);
return cacheFile;
}