From bf670afcf17af583e24940a6132236bea88af2e2 Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Thu, 2 Apr 2026 15:01:32 +0100 Subject: [PATCH] feat: send edited miis with bad images to queue as well related to 975d55bd --- src/app/api/mii/[id]/edit/route.ts | 8 +++++--- src/app/mii/[id]/page.tsx | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app/api/mii/[id]/edit/route.ts b/src/app/api/mii/[id]/edit/route.ts index 13d79f2..8c3dd80 100644 --- a/src/app/api/mii/[id]/edit/route.ts +++ b/src/app/api/mii/[id]/edit/route.ts @@ -97,6 +97,7 @@ export async function PATCH(request: NextRequest, { params }: { params: Promise< const { name, tags, description, quarantined, gender, makeup, miiPortraitImage, miiFeaturesImage, instructions, image1, image2, image3 } = parsed.data; // Validate image files + let wasImagesModerated = false; const images: File[] = []; for (const img of [image1, image2, image3]) { @@ -106,7 +107,7 @@ export async function PATCH(request: NextRequest, { params }: { params: Promise< if (imageValidation.valid) { images.push(img); } else { - return rateLimit.sendResponse({ error: imageValidation.error }, imageValidation.status ?? 400); + wasImagesModerated = true; } } @@ -114,11 +115,11 @@ export async function PATCH(request: NextRequest, { params }: { params: Promise< if (mii.platform === "SWITCH") { if (miiPortraitImage) { const validation = await validateImage(miiPortraitImage); - if (!validation.valid) return rateLimit.sendResponse({ error: `Failed to verify portrait: ${validation.error}` }, validation.status ?? 400); + if (!validation.valid) wasImagesModerated = true; } if (miiFeaturesImage) { const validation = await validateImage(miiFeaturesImage); - if (!validation.valid) return rateLimit.sendResponse({ error: `Failed to verify features: ${validation.error}` }, validation.status ?? 400); + if (!validation.valid) wasImagesModerated = true; } } @@ -136,6 +137,7 @@ export async function PATCH(request: NextRequest, { params }: { params: Promise< if (makeup !== undefined) updateData.makeup = makeup; if (instructions !== undefined) updateData.instructions = instructions; if (images.length > 0) updateData.imageCount = images.length; + if (wasImagesModerated) updateData.in_queue = true; if (Object.keys(updateData).length === 0) return rateLimit.sendResponse({ error: "Nothing was changed" }, 400); const updatedMii = await prisma.mii.update({ diff --git a/src/app/mii/[id]/page.tsx b/src/app/mii/[id]/page.tsx index 1f45b45..9b4a028 100644 --- a/src/app/mii/[id]/page.tsx +++ b/src/app/mii/[id]/page.tsx @@ -133,7 +133,7 @@ export default async function MiiPage({ params }: Props) {

- This Mii is waiting to be manually reviewed {!settings.queueEnabled && "due to inappropriate images "} + This Mii is waiting to be manually reviewed {!settings.queueEnabled && "after being auto-flagged for inappropriate images "} and is hidden from the main page.