const fs = require('fs'); const path = require('path'); const BASE = (process.env.BASE_URL || 'http://localhost:3031').replace(/\/$/, ''); const ADMIN_USER = process.env.ADMIN_USER || 'admin'; const ADMIN_PASS = process.env.ADMIN_PASS || 'admin123'; const ARGS = process.argv.slice(2); const FILES = ARGS.length ? ARGS : ['set-dart-dev.json', 'set-flutter-dev.json']; async function main() { const loginRes = await fetch(BASE + '/api/admin/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: ADMIN_USER, password: ADMIN_PASS }) }); const login = await loginRes.json(); if (!loginRes.ok) throw new Error('登录失败: ' + login.error); for (const file of FILES) { const data = JSON.parse(fs.readFileSync(path.join(__dirname, 'data', file), 'utf8')); const res = await fetch(BASE + '/api/admin/import', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: 'Bearer ' + login.token }, body: JSON.stringify(data) }); const result = await res.json(); if (!res.ok) { console.log(`✗ ${data.name} 导入失败: ${result.error}`); } else { console.log(`✓ ${data.name}: 导入 ${result.imported} 题, 套题 id=${result.set.id}`); } } } main().catch(e => { console.error(e.message); process.exit(1); });