24cd9cef53
- 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
172 lines
4.2 KiB
JavaScript
Executable File
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()
|