From 3460a930d8ffbe297bf2f8031d35490ecd986466 Mon Sep 17 00:00:00 2001 From: Felix Date: Mon, 30 Mar 2026 10:08:05 -0400 Subject: [PATCH] =?UTF-8?q?=D8=AD=D8=B0=D9=81=20=D8=A7=D9=84=D8=A5=D8=B6?= =?UTF-8?q?=D8=A7=D9=81=D8=A9=20=D8=A7=D9=84=D9=88=D9=87=D9=85=D9=8A=D8=A9?= =?UTF-8?q?=20felix-fx-i=20=D9=88=D8=A5=D8=B2=D8=A7=D9=84=D8=A9=20=D8=B1?= =?UTF-8?q?=D9=88=D8=A7=D8=A8=D8=B7=20Modrinth=20=D9=85=D9=86=20=D8=A7?= =?UTF-8?q?=D9=84=D8=A3=D9=88=D8=B5=D8=A7=D9=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supabase/functions/fetch-mods/index.ts | 31 +++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/supabase/functions/fetch-mods/index.ts b/supabase/functions/fetch-mods/index.ts index 6b8f146..eade488 100644 --- a/supabase/functions/fetch-mods/index.ts +++ b/supabase/functions/fetch-mods/index.ts @@ -118,7 +118,36 @@ serve(async (req) => { } const response = await fetch(modrinthUrl, { headers }); - const data = await response.json(); + let data = await response.json(); + + // Filter out felix-fx-i and remove modrinth links from descriptions + if (Array.isArray(data)) { + data = data.filter((mod: any) => mod.slug !== 'felix-fx-i' && mod.id !== 'felix-fx-i'); + data = data.map((mod: any) => ({ + ...mod, + description: mod.description ? mod.description.replace(/https?:\/\/modrinth\.com\/[^\s\)\]\}]*/g, '').trim() : mod.description, + body: mod.body ? mod.body.replace(/https?:\/\/modrinth\.com\/[^\s\)\]\}]*/g, '').trim() : mod.body + })); + } else if (data && typeof data === 'object' && 'hits' in data && Array.isArray(data.hits)) { + data.hits = data.hits.filter((mod: any) => mod.slug !== 'felix-fx-i' && mod.id !== 'felix-fx-i'); + data.hits = data.hits.map((mod: any) => ({ + ...mod, + description: mod.description ? mod.description.replace(/https?:\/\/modrinth\.com\/[^\s\)\]\}]*/g, '').trim() : mod.description + })); + } else if (data && typeof data === 'object') { + if (data.slug === 'felix-fx-i' || data.id === 'felix-fx-i') { + return new Response(JSON.stringify({ error: 'Project not found' }), { + status: 404, + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + }); + } + if (data.description) { + data.description = data.description.replace(/https?:\/\/modrinth\.com\/[^\s\)\]\}]*/g, '').trim(); + } + if (data.body) { + data.body = data.body.replace(/https?:\/\/modrinth\.com\/[^\s\)\]\}]*/g, '').trim(); + } + } return new Response(JSON.stringify(data), { status: response.status,