99 lines
3.2 KiB
JavaScript
99 lines
3.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
/**
|
|
* 素材生产系统 - 环境配置工具
|
|
*
|
|
* 自动检测本地路径,生成 config.json。
|
|
* 新机器首次使用时运行一次即可。
|
|
*
|
|
* 用法: node setup.js
|
|
*/
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const os = require('os')
|
|
|
|
const CONFIG_PATH = path.join(__dirname, 'config.json')
|
|
|
|
// ============================================================================
|
|
// 自动检测
|
|
// ============================================================================
|
|
|
|
function detectJianyingDraftPath() {
|
|
const username = os.userInfo().username
|
|
const candidates = [
|
|
`C:/Users/${username}/AppData/Local/JianyingPro/User Data/Projects/com.lveditor.draft`,
|
|
`C:/Users/${username}/AppData/Local/CapCut/User Data/Projects/com.lveditor.draft`,
|
|
]
|
|
for (const p of candidates) {
|
|
if (fs.existsSync(p)) return p
|
|
}
|
|
return candidates[0] // 默认返回剪映路径(即使不存在)
|
|
}
|
|
|
|
function detectCapcutMateDir() {
|
|
const username = os.userInfo().username
|
|
const candidates = [
|
|
`C:/Users/${username}/capcut-mate`,
|
|
path.join(os.homedir(), 'capcut-mate'),
|
|
]
|
|
for (const p of candidates) {
|
|
if (fs.existsSync(p)) return p
|
|
}
|
|
return candidates[0]
|
|
}
|
|
|
|
function detectCapcutMateApiBase() {
|
|
return 'http://capcut.muyetools.cn/openapi/capcut-mate/v1'
|
|
}
|
|
|
|
// ============================================================================
|
|
// 主流程
|
|
// ============================================================================
|
|
|
|
function main() {
|
|
console.log('素材生产系统 - 环境配置\n')
|
|
|
|
if (fs.existsSync(CONFIG_PATH)) {
|
|
console.log('config.json 已存在,跳过生成')
|
|
console.log(` 路径: ${CONFIG_PATH}`)
|
|
console.log(' 如需重新配置,删除 config.json 后重跑\n')
|
|
return
|
|
}
|
|
|
|
const config = {
|
|
jianyingDraftPath: detectJianyingDraftPath(),
|
|
capcutMateDir: detectCapcutMateDir(),
|
|
capcutMateApiBase: detectCapcutMateApiBase(),
|
|
imgbbApiKey: 'deprecated',
|
|
geminiApiBaseUrl: '',
|
|
geminiModel: 'gemini-3.1-flash-image-preview',
|
|
geminiApiKey: '',
|
|
}
|
|
|
|
// 检测结果标注
|
|
const jianyingExists = fs.existsSync(config.jianyingDraftPath)
|
|
const capcutExists = fs.existsSync(config.capcutMateDir)
|
|
|
|
console.log('自动检测结果:')
|
|
console.log(` 剪映草稿目录: ${config.jianyingDraftPath} ${jianyingExists ? '[存在]' : '[未找到,请确认剪映已安装]'}`)
|
|
console.log(` CapCut Mate: ${config.capcutMateDir} ${capcutExists ? '[存在]' : '[未找到,需安装]'}`)
|
|
console.log(` API 地址: ${config.capcutMateApiBase}`)
|
|
console.log('')
|
|
|
|
fs.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf-8')
|
|
console.log(`已生成: ${CONFIG_PATH}`)
|
|
console.log('')
|
|
console.log('请补充以下必填项:')
|
|
console.log(' ossRegion - 阿里云 OSS Region')
|
|
console.log(' ossAccessKeyId - 阿里云 OSS AccessKeyId')
|
|
console.log(' ossAccessKeySecret - 阿里云 OSS AccessKeySecret')
|
|
console.log(' ossBucket - 阿里云 OSS Bucket')
|
|
console.log(' geminiApiBaseUrl - Gemini API 地址')
|
|
console.log(' geminiApiKey - Gemini API Key')
|
|
console.log('')
|
|
console.log('编辑 config.json 后即可使用。')
|
|
}
|
|
|
|
main()
|