diff --git a/test_approve.js b/test_approve.js deleted file mode 100644 index 260cc79..0000000 --- a/test_approve.js +++ /dev/null @@ -1,27 +0,0 @@ -// Simular la APROBACION desde Discord: llama al endpoint con token bueno -// y verifica que el post termina publicado. Despues borra todo el test. -const Database = require("better-sqlite3"); -const fs = require("fs"); - -const MOD_TOKEN = fs.readFileSync("./.env", "utf8").match(/DISCORD_MOD_TOKEN=(\w+)/)[1]; - -const db = new Database("./data/worst-scan.db", { readonly: true }); -const row = db.prepare("SELECT id FROM posts WHERE gid = ?").get("999999999"); -db.close(); - -if (!row) { console.log("No existe el post de prueba"); process.exit(1); } - -// 1) Llamar al endpoint de aprobacion (como haria el link de Discord) -fetch(`https://worstscan.xyz/api/review/${row.id}?action=approve&token=${MOD_TOKEN}`) - .then(async (res) => { - const html = await res.text(); - console.log("Endpoint approve -> HTTP", res.status); - console.log("Contiene 'Aprobado'?", html.includes("Aprobado")); - - // 2) Verificar en DB que quedó publicado - const db2 = new Database("./data/worst-scan.db", { readonly: true }); - const p = db2.prepare("SELECT title, published FROM posts WHERE gid = ?").get("999999999"); - console.log("\nPost en DB:", p.title, "| published =", p.published, p.published === 1 ? "✅ PUBLICADO" : "❌ sigue en cuarentena"); - db2.close(); - }) - .catch((e) => console.log("ERROR:", e.message)); \ No newline at end of file diff --git a/test_moderation.js b/test_moderation.js deleted file mode 100644 index ad3f35f..0000000 --- a/test_moderation.js +++ /dev/null @@ -1,64 +0,0 @@ -// PRUEBA E2E del flujo de moderación desde Discord: -// 1) Crear un post falso en cuarentena (published=0) -// 2) Enviar la notificación real al webhook de moderación (con links) -// 3) Simular aprobación con token bueno -> verificar que se publica -const Database = require("better-sqlite3"); -const db = new Database("./data/worst-scan.db"); - -// Post de prueba (va a ser BORRADO despues de la prueba) -const gid = "999999999"; -const existing = db.prepare("SELECT id FROM posts WHERE gid = ?").get(gid); -let postId; -if (existing) { - postId = existing.id; - db.prepare("UPDATE posts SET published=0, title=?, tags=? WHERE id=?").run( - "TEST - Prueba de moderacion desde Discord", - JSON.stringify(["doujinshi", "lolicon", "translated"]), - postId - ); - console.log("Post de prueba actualizado, id:", postId); -} else { - const r = db.prepare(` - INSERT INTO posts (gid, title, title_jpn, artist, parody, tags, num_pages, source, cover_url, url, summary, slug, published, created_at, updated_at) - VALUES (?, ?, NULL, 'test-artist', 'original', ?, 30, 'nhentai', NULL, 'https://nhentai.net/g/999999999/', 'Post de prueba del flujo de moderacion.', ?, 0, datetime('now'), datetime('now')) - `).run(gid, "TEST - Prueba de moderacion desde Discord", JSON.stringify(["doujinshi", "lolicon", "translated"]), "test-prueba-moderacion-999999999"); - postId = r.lastInsertRowid; - console.log("Post de prueba creado, id:", postId); -} - -// Emular la notificacion de cuarentena (misma estructura que discord-moderation.ts) -const MOD_WEBHOOK = "https://discord.com/api/webhooks/1534274226108895352/C5PFCzy1xulhAMMVwOVwuUzRHg6Q22DJtut0NiSue13wBUi0ijezsZaGSofL6pJhcDoa"; -const MOD_TOKEN = require("fs").readFileSync("./.env", "utf8").match(/DISCORD_MOD_TOKEN=(\w+)/)[1]; - -const base = `https://worstscan.xyz/api/review/${postId}?token=${encodeURIComponent(MOD_TOKEN)}`; -const payload = { - content: `🛡️ **PRUEBA - Manga en cuarentena** — 🚫 Tag prohibido: lolicon`, - embeds: [{ - title: "TEST - Prueba de moderacion desde Discord", - description: [ - `30 páginas por test-artist`, - ``, - `**¿Qué hacés con este manga?**`, - `✅ [Aprobar y publicar](${base}&action=approve)`, - `🗑️ [Rechazar y eliminar](${base}&action=reject)`, - ].join("\n"), - color: 0xef4444, - thumbnail: { url: `https://worstscan.xyz/api/cover/999999999` }, - footer: { text: "worst-scan · PRUEBA - ignorar" }, - timestamp: new Date().toISOString(), - }], -}; - -fetch(MOD_WEBHOOK, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(payload), -}).then(async (res) => { - console.log("Webhook de moderacion:", res.status === 204 ? "OK (mensaje enviado a Discord)" : "error " + res.status); - console.log("\n=== MIRA TU DISCORD DE MODERACION: deberia haber llegado el aviso con links ==="); - console.log("Links del mensaje:"); - console.log(" Aprobar:", `${base}&action=approve`); - console.log(" Rechazar:", `${base}&action=reject`); - console.log("\nEl post esta en cuarentena (published=0). NO lo toques: voy a simular la aprobacion despues."); - db.close(); -}).catch(e => { console.log("ERROR:", e.message); db.close(); });