浏览代码

Add support for .gzip files and handle URL redirection

Max 5 月之前
父节点
当前提交
ab38009069
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs

+ 4 - 2
src/Jellyfin.LiveTv/Listings/XmlTvListingsProvider.cs

@@ -84,10 +84,11 @@ namespace Jellyfin.LiveTv.Listings
                 _logger.LogInformation("Downloading xmltv listings from {Path}", info.Path);
                 _logger.LogInformation("Downloading xmltv listings from {Path}", info.Path);
 
 
                 using var response = await _httpClientFactory.CreateClient(NamedClient.Default).GetAsync(info.Path, cancellationToken).ConfigureAwait(false);
                 using var response = await _httpClientFactory.CreateClient(NamedClient.Default).GetAsync(info.Path, cancellationToken).ConfigureAwait(false);
+                var redirectedUrl = response.RequestMessage?.RequestUri?.ToString() ?? info.Path;
                 var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
                 var stream = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false);
                 await using (stream.ConfigureAwait(false))
                 await using (stream.ConfigureAwait(false))
                 {
                 {
-                    return await UnzipIfNeededAndCopy(info.Path, stream, cacheFile, cancellationToken).ConfigureAwait(false);
+                    return await UnzipIfNeededAndCopy(redirectedUrl, stream, cacheFile, cancellationToken).ConfigureAwait(false);
                 }
                 }
             }
             }
             else
             else
@@ -112,7 +113,8 @@ namespace Jellyfin.LiveTv.Listings
 
 
             await using (fileStream.ConfigureAwait(false))
             await using (fileStream.ConfigureAwait(false))
             {
             {
-                if (Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gz", StringComparison.OrdinalIgnoreCase))
+                if (Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gz", StringComparison.OrdinalIgnoreCase) ||
+                    Path.GetExtension(originalUrl.AsSpan().LeftPart('?')).Equals(".gzip", StringComparison.OrdinalIgnoreCase))
                 {
                 {
                     try
                     try
                     {
                     {