summaryrefslogtreecommitdiff
path: root/Controllers/MediaController.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2026-04-27 03:06:02 +1000
committerJake Mannens <jake@asger.xyz>2026-04-27 03:06:02 +1000
commit60dd44153b5f2b233dc66032507ee6c9a925ed0e (patch)
treefb6ac2546732f15e01b4f5771af25fc62db91842 /Controllers/MediaController.cs
parentba35fa01df940c259f79392f298ddb16c98a903a (diff)
v0.12av0.12a
Diffstat (limited to 'Controllers/MediaController.cs')
-rw-r--r--Controllers/MediaController.cs17
1 files changed, 16 insertions, 1 deletions
diff --git a/Controllers/MediaController.cs b/Controllers/MediaController.cs
index cd6916f..7eb46c6 100644
--- a/Controllers/MediaController.cs
+++ b/Controllers/MediaController.cs
@@ -114,6 +114,13 @@ public class MediaController : Controller {
.ElementAtOrDefault(0);
Enum.TryParse(typeof(PathType), pathTypeString, true, out pathType);
+ // Parse tag IDs from headers
+ Guid[]? tagIds = formFile.Headers["X-HyperBooru-Tags"]
+ .ElementAtOrDefault(0)?
+ .Split(',')
+ .Select(t => Guid.Parse(t))
+ .ToArray();
+
media = mediaService.Create(
formFile.OpenReadStream(),
formFile.FileName,
@@ -123,7 +130,15 @@ public class MediaController : Controller {
lastWriteTime,
createTime,
path,
- (PathType?) pathType);
+ (PathType?) pathType,
+ tagIds);
+
+ // Return the GUID of the new media object if requested
+ bool returnMetadataParsed = bool.TryParse(
+ formFile.Headers["X-HyperBooru-ReturnMediaId"], out var returnMetadata);
+
+ if(returnMetadataParsed && returnMetadata)
+ return Content(media.Guid.ToString());
} catch(MediaCreateException e) {
return BadRequest(e.Message);
}