From 001f13a80479e62e903d997ce0e1f17a7cbd3884 Mon Sep 17 00:00:00 2001 From: kieran Date: Sat, 5 Oct 2024 21:24:20 +0100 Subject: [PATCH] Move redirect (again) --- VoidCat/Controllers/BaseDownloadController.cs | 21 +++++++------------ VoidCat/Model/ApiUser.cs | 2 -- VoidCat/Model/Extensions.cs | 3 +-- VoidCat/Model/VoidFile.cs | 1 + VoidCat/Services/Files/FileInfoManager.cs | 3 ++- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/VoidCat/Controllers/BaseDownloadController.cs b/VoidCat/Controllers/BaseDownloadController.cs index 6126aa9..7ac8df8 100644 --- a/VoidCat/Controllers/BaseDownloadController.cs +++ b/VoidCat/Controllers/BaseDownloadController.cs @@ -43,18 +43,6 @@ public abstract class BaseDownloadController : Controller return; } - if (voidFile.Uploader?.IsNostr ?? false) - { - Response.StatusCode = (int)HttpStatusCode.Redirect; - Response.Headers.Location = $"https://files.v0l.io/{voidFile.Metadata.Digest}"; - return; - } - - if (voidFile.Uploader != default) - { - voidFile.Uploader = voidFile.Uploader!.PublicProfile ? voidFile.Uploader : null; - } - var egressReq = new EgressRequest(gid, GetRanges(Request, (long)voidFile!.Metadata!.Size)); if (egressReq.Ranges.Count() > 1) { @@ -102,7 +90,7 @@ public abstract class BaseDownloadController : Controller protected async Task SetupDownload(Guid id) { - var meta = await _fileInfo.Get(id, true); + var meta = await _fileInfo.Get(id, false); if (meta == null) { Response.StatusCode = 404; @@ -167,6 +155,13 @@ public abstract class BaseDownloadController : Controller return default; } + if (meta.IsNostr) + { + Response.StatusCode = (int)HttpStatusCode.Redirect; + Response.Headers.Location = $"https://nostr.download/{meta.Metadata.Digest}"; + return default; + } + Response.Headers.XFrameOptions = "SAMEORIGIN"; Response.Headers.ContentDisposition = $"inline; filename=\"{meta?.Metadata?.Name}\""; Response.ContentType = meta?.Metadata?.MimeType ?? "application/octet-stream"; diff --git a/VoidCat/Model/ApiUser.cs b/VoidCat/Model/ApiUser.cs index 094e14b..d6da920 100644 --- a/VoidCat/Model/ApiUser.cs +++ b/VoidCat/Model/ApiUser.cs @@ -48,6 +48,4 @@ public class ApiUser /// When the account was created /// public DateTime Created { get; init; } - - public bool IsNostr { get; init; } } diff --git a/VoidCat/Model/Extensions.cs b/VoidCat/Model/Extensions.cs index a3e8999..9e092ab 100644 --- a/VoidCat/Model/Extensions.cs +++ b/VoidCat/Model/Extensions.cs @@ -375,8 +375,7 @@ public static class Extensions NeedsVerification = isSelf ? !u.Flags.HasFlag(UserFlags.EmailVerified) : null, PublicProfile = u.Flags.HasFlag(UserFlags.PublicProfile), PublicUploads = u.Flags.HasFlag(UserFlags.PublicUploads), - Roles = u.Roles.Select(a => a.Role).ToList(), - IsNostr = u.AuthType is UserAuthType.Nostr + Roles = u.Roles.Select(a => a.Role).ToList() }; } diff --git a/VoidCat/Model/VoidFile.cs b/VoidCat/Model/VoidFile.cs index 4c070a0..955f0c9 100644 --- a/VoidCat/Model/VoidFile.cs +++ b/VoidCat/Model/VoidFile.cs @@ -15,6 +15,7 @@ public class VoidFileResponse public ApiUser? Uploader { get; set; } public Bandwidth? Bandwidth { get; init; } public VirusStatus? VirusScan { get; init; } + public bool IsNostr { get; init; } } public class VoidFileMeta diff --git a/VoidCat/Services/Files/FileInfoManager.cs b/VoidCat/Services/Files/FileInfoManager.cs index 143a866..4e9903a 100644 --- a/VoidCat/Services/Files/FileInfoManager.cs +++ b/VoidCat/Services/Files/FileInfoManager.cs @@ -53,7 +53,8 @@ public sealed class FileInfoManager Payment = meta.Paywall, Bandwidth = bandwidth, Uploader = user?.Flags.HasFlag(UserFlags.PublicProfile) == true || withEditSecret ? user?.ToApiUser(false) : null, - VirusScan = virusScan?.ToVirusStatus() + VirusScan = virusScan?.ToVirusStatus(), + IsNostr = user?.AuthType is UserAuthType.Nostr }; }