Files
ai-dimension/backend/wdkj-server/scripts/init-bgm.js
T
Yuzhiran Dev 24cd9cef53 🎉 feat: initialize 宇之然AI维度 project
- uni-app Vue3 frontend with dark glassmorphism theme
- 5 AI dimensions: Origin / Development / Current / Learning / Trend
- AI Chat system prompt updated from geometry to AI
- 23 AI knowledge articles initialized in DB
- Trend API + cron job for daily news
- Product pricing (Pro ¥19.9, VIP ¥39.9)
- Pinia stores + API utilities
- AGENTS.md documentation
2026-07-10 13:26:04 +08:00

172 lines
4.2 KiB
JavaScript
Executable File

/**
* BGM音效初始化脚本
* 为每个维度添加示例背景音乐
*/
const mongoose = require('mongoose')
require('dotenv').config()
// 导入模型
const { BGM } = require('../src/models')
// 示例BGM数据(实际使用时需要替换为真实的音频URL)
const sampleBGMs = [
// 一维 - 线性旋律
{
name: '星光轨迹',
dimension: 1,
url: 'https://example.com/bgm/dim1_starlight.mp3',
duration: 120,
loop: true,
volume: 0.4,
sortOrder: 1,
description: '轻柔的线性旋律,适合一维空间的探索',
isActive: true
},
{
name: '弦之舞',
dimension: 1,
url: 'https://example.com/bgm/dim1_string_dance.mp3',
duration: 95,
loop: true,
volume: 0.45,
sortOrder: 2,
description: '活泼的弦乐节奏',
isActive: true
},
// 二维 - 平面和声
{
name: '星座幻想',
dimension: 2,
url: 'https://example.com/bgm/dim2_constellation.mp3',
duration: 150,
loop: true,
volume: 0.5,
sortOrder: 1,
description: '梦幻的星空音乐,配合二维星座绘制',
isActive: true
},
{
name: '几何韵律',
dimension: 2,
url: 'https://example.com/bgm/dim2_geometry.mp3',
duration: 110,
loop: true,
volume: 0.48,
sortOrder: 2,
description: '轻快的几何节奏',
isActive: true
},
// 三维 - 立体环绕
{
name: '立方体回响',
dimension: 3,
url: 'https://example.com/bgm/dim3_cube_echo.mp3',
duration: 180,
loop: true,
volume: 0.5,
sortOrder: 1,
description: '空间感强烈的立体音效',
isActive: true
},
{
name: '多维共振',
dimension: 3,
url: 'https://example.com/bgm/dim3_resonance.mp3',
duration: 140,
loop: true,
volume: 0.52,
sortOrder: 2,
description: '富有层次感的三维音效',
isActive: true
},
// 四维 - 时间流动
{
name: '时空涟漪',
dimension: 4,
url: 'https://example.com/bgm/dim4_spacetime.mp3',
duration: 200,
loop: true,
volume: 0.45,
sortOrder: 1,
description: '神秘的四维时空音乐',
isActive: true
},
{
name: '超立方漫游',
dimension: 4,
url: 'https://example.com/bgm/dim4_tesseract.mp3',
duration: 165,
loop: true,
volume: 0.47,
sortOrder: 2,
description: '穿越维度的奇妙旅程',
isActive: true
},
// 五维 - 高维混沌
{
name: '思维风暴',
dimension: 5,
url: 'https://example.com/bgm/dim5_thought_storm.mp3',
duration: 220,
loop: true,
volume: 0.5,
sortOrder: 1,
description: '复杂而迷人的高维音效',
isActive: true
},
{
name: '量子纠缠',
dimension: 5,
url: 'https://example.com/bgm/dim5_quantum.mp3',
duration: 190,
loop: true,
volume: 0.48,
sortOrder: 2,
description: '微观世界的奇妙声音',
isActive: true
}
]
async function initBGM() {
try {
// 连接数据库
await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/yuzhiran')
console.log('✅ 数据库连接成功')
// 检查是否已有BGM数据
const existingCount = await BGM.countDocuments()
if (existingCount > 0) {
console.log(`⚠️ 数据库中已有 ${existingCount} 条BGM记录,跳过初始化`)
await mongoose.disconnect()
return
}
// 插入示例数据
const result = await BGM.insertMany(sampleBGMs)
console.log(`✅ 成功初始化 ${result.length} 条BGM记录`)
// 按维度统计
for (let dim = 1; dim <= 5; dim++) {
const count = await BGM.countDocuments({ dimension: dim })
console.log(` 维度${dim}: ${count}`)
}
console.log('\n🎵 BGM初始化完成!')
console.log('💡 提示:请在后台管理系统中上传真实的音频文件并更新URL')
} catch (error) {
console.error('❌ BGM初始化失败:', error)
} finally {
await mongoose.disconnect()
console.log('数据库连接已关闭')
}
}
// 执行初始化
initBGM()