#!/usr/bin/env node /** * Fix Spanish chapter links to Spanish documentaries */ const STRAPI_URL = "http://localhost:1337"; async function apiRequest(endpoint, method = "GET", body = null) { const url = `${STRAPI_URL}/api${endpoint}`; const options = { method, headers: { "Content-Type": "application/json" }, ...(body ? { body: JSON.stringify(body) } : {}), }; const response = await fetch(url, options); const data = await response.json().catch(() => null); if (!response.ok) { throw new Error(`${response.status}: ${JSON.stringify(data)}`); } return data; } // Map chapter titles to documentary IDs (Spanish) const docMap = { "nier": 19, "dbo": 21, "fusionfall": 3, "maple": 6, }; function getDocId(title) { const t = title.toLowerCase(); if (t.includes("jaula") || t.includes("melancolia") || t.includes("recuerdos") || t.includes("pasado") || t.includes("grietas") || t.includes("suspiro")) return docMap.nier; if (t.includes("mundo abierto") || t.includes("toriyama") || t.includes("año 1000") || t.includes("guerreros") || t.includes("frontera") || t.includes("ultimo deseo")) return docMap.dbo; if (t.includes("cubos") || t.includes("juguete") || t.includes("musica del maple") || t.includes("espada") || t.includes("tormentas") || t.includes("hoja")) return docMap.maple; if (t.includes("alianza") || t.includes("planet fusion") || t.includes("creadores") || t.includes("fusions") || t.includes("red que se rompio") || t.includes("juicio")) return docMap.fusionfall; return null; } async function main() { console.log("🔧 Fixing Spanish chapter links...\n"); // Get all Spanish chapters const res = await apiRequest("/chapters?pagination[pageSize]=200&locale=es"); const chapters = res.data || []; console.log(`Found ${chapters.length} Spanish chapters`); for (const ch of chapters) { const docId = getDocId(ch.title); if (!docId) { console.log(` ⚠️ Could not map: ${ch.title}`); continue; } try { await apiRequest(`/chapters/${ch.documentId}?locale=es`, "PUT", { data: { documentary: docId }, }); console.log(` ✅ ${ch.title} → doc ${docId}`); } catch (err) { console.log(` ❌ ${ch.title}: ${err.message}`); } } console.log("\n✨ Done!"); } main().catch((err) => { console.error("💥 Fatal error:", err.message); process.exit(1); });