diff --git a/src/Podsync/Controllers/DownloadController.cs b/src/Podsync/Controllers/DownloadController.cs deleted file mode 100644 index ed477ef..0000000 --- a/src/Podsync/Controllers/DownloadController.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Net.Http; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Podsync.Helpers; -using Podsync.Services; -using Podsync.Services.Links; -using Podsync.Services.Resolver; -using Podsync.Services.Storage; - -namespace Podsync.Controllers -{ - [Route("download")] - [ServiceFilter(typeof(HandleExceptionAttribute), IsReusable = true)] - public class DownloadController : Controller - { - private readonly IResolverService _resolverService; - private readonly ILinkService _linkService; - private readonly IStorageService _storageService; - private readonly ILogger _logger; - - public DownloadController(IResolverService resolverService, ILinkService linkService, IStorageService storageService, ILogger logger) - { - _resolverService = resolverService; - _linkService = linkService; - _storageService = storageService; - _logger = logger; - } - - // Main video download endpoint, don't forget to reflect any changes in LinkService.Download - [HttpGet] - [Route("{feedId}/{videoId}.{ext:length(3,3)}")] - public async Task Download(string feedId, string videoId) - { - var metadata = await _storageService.Load(feedId); - - var url = _linkService.Make(new LinkInfo - { - Provider = metadata.Provider, - LinkType = LinkType.Video, - Id = videoId - }); - - Uri redirectUrl; - - try - { - redirectUrl = await _resolverService.Resolve(url, metadata.Quality); - } - catch (Exception ex) - { - _logger.LogError(Constants.Events.YtdlError, ex, $"Failed to resolve URL (feed: {feedId}, video id: {videoId}"); - - var response = "Could not resolve URL"; - if (ex is InvalidOperationException || ex is HttpRequestException) - { - response = ex.Message; - } - - return BadRequest(response); - } - - return Redirect(redirectUrl.ToString()); - } - } -} \ No newline at end of file diff --git a/src/Podsync/Startup.cs b/src/Podsync/Startup.cs index ed8811e..110d0e3 100644 --- a/src/Podsync/Startup.cs +++ b/src/Podsync/Startup.cs @@ -76,7 +76,8 @@ namespace Podsync // See https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction app.UseForwardedHeaders(new ForwardedHeadersOptions { - ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto + ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto, + RequireHeaderSymmetry = false, }); if (env.IsDevelopment())