Sync static resource controller with upstream

(cherry picked from commit ad1f185330a30a2a9d27c9d3f18d384e66727c2a)
pull/1875/head
Bogdan 1 year ago
parent 3ed6ef0336
commit 840f2ae3e6

@ -1,3 +1,4 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace Prowlarr.Http.Frontend.Mappers
@ -6,6 +7,6 @@ namespace Prowlarr.Http.Frontend.Mappers
{
string Map(string resourceUrl);
bool CanHandle(string resourceUrl);
FileStreamResult GetResponse(string resourceUrl);
Task<FileStreamResult> GetResponse(string resourceUrl);
}
}

@ -1,6 +1,7 @@
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Net.Http.Headers;
@ -30,7 +31,7 @@ namespace Prowlarr.Http.Frontend.Mappers
public abstract bool CanHandle(string resourceUrl);
public FileStreamResult GetResponse(string resourceUrl)
public Task<FileStreamResult> GetResponse(string resourceUrl)
{
var filePath = Map(resourceUrl);
@ -41,10 +42,10 @@ namespace Prowlarr.Http.Frontend.Mappers
contentType = "application/octet-stream";
}
return new FileStreamResult(GetContentStream(filePath), new MediaTypeHeaderValue(contentType)
return Task.FromResult(new FileStreamResult(GetContentStream(filePath), new MediaTypeHeaderValue(contentType)
{
Encoding = contentType == "text/plain" ? Encoding.UTF8 : null
});
}));
}
_logger.Warn("File {0} not found", filePath);

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
@ -25,27 +26,27 @@ namespace Prowlarr.Http.Frontend
[AllowAnonymous]
[HttpGet("login")]
public IActionResult LoginPage()
public async Task<IActionResult> LoginPage()
{
return MapResource("login");
return await MapResource("login");
}
[EnableCors("AllowGet")]
[AllowAnonymous]
[HttpGet("/content/{**path:regex(^(?!api/).*)}")]
public IActionResult IndexContent([FromRoute] string path)
public async Task<IActionResult> IndexContent([FromRoute] string path)
{
return MapResource("Content/" + path);
return await MapResource("Content/" + path);
}
[HttpGet("")]
[HttpGet("/{**path:regex(^(?!api/).*)}")]
public IActionResult Index([FromRoute] string path)
public async Task<IActionResult> Index([FromRoute] string path)
{
return MapResource(path);
return await MapResource(path);
}
private IActionResult MapResource(string path)
private async Task<IActionResult> MapResource(string path)
{
path = "/" + (path ?? "");
@ -53,7 +54,7 @@ namespace Prowlarr.Http.Frontend
if (mapper != null)
{
var result = mapper.GetResponse(path);
var result = await mapper.GetResponse(path);
if (result != null)
{

Loading…
Cancel
Save