45 lines
1.6 KiB
TypeScript
45 lines
1.6 KiB
TypeScript
/*
|
|
* @Author: HenryDu8133 813367384@qq.com
|
|
* @Date: 2026-04-11 13:07:14
|
|
* @LastEditors: HenryDu8133 813367384@qq.com
|
|
* @LastEditTime: 2026-04-11 13:43:49
|
|
* @FilePath: \BYWVoiceHub\server\plugins\update-logos.ts
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
*/
|
|
import fs from 'node:fs'
|
|
import path from 'node:path'
|
|
import { db } from '~/drizzle/db'
|
|
import { systemSettings } from '~/drizzle/schema'
|
|
import { cacheService } from '../services/cacheService'
|
|
|
|
export default defineNitroPlugin(async (_nitroApp) => {
|
|
// 延迟执行以避免阻塞启动
|
|
setTimeout(async () => {
|
|
try {
|
|
const flagFile = path.resolve(process.cwd(), '.logos_updated')
|
|
if (fs.existsSync(flagFile)) {
|
|
return // 已经更新过了
|
|
}
|
|
|
|
const existingSettings = await db.select().from(systemSettings).limit(1)
|
|
|
|
if (existingSettings.length > 0) {
|
|
const updates: any = {
|
|
siteLogoUrl: '/images/site-logo.png',
|
|
schoolLogoHomeUrl: '/images/school-logo-white.png',
|
|
schoolLogoPrintUrl: '/images/school-logo-transparent.png'
|
|
}
|
|
|
|
await db.update(systemSettings).set(updates)
|
|
await cacheService.clearSystemSettingsCache()
|
|
console.log('[Startup] Force updated system settings logos to new paths')
|
|
|
|
// 标记为已更新
|
|
fs.writeFileSync(flagFile, 'updated')
|
|
}
|
|
} catch (err) {
|
|
console.error('[Startup] Failed to update system settings logos:', err)
|
|
}
|
|
}, 5000)
|
|
})
|