@ -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 ;
}