/**
* ═══════════════════════════════════════════════════
* 铸渊图片工作室 · Web 服务
* ═══════════════════════════════════════════════════
*
* 部署到服务器,冰朔可以在浏览器预览已生成的图片。
* 我在对话里生成图片后,冰朔可以直接访问链接下载。
*/
import express from 'express'
import { generate } from './generate.js'
import { join, dirname } from 'path'
import { fileURLToPath } from 'url'
import { readdirSync, existsSync } from 'fs'
const __dirname = dirname(fileURLToPath(import.meta.url))
const OUTPUT_DIR = join(__dirname, 'output')
const PORT = process.env.PORT || 3912
const app = express()
app.use(express.json())
/* ── 静态文件服务 ── */
app.use('/output', express.static(OUTPUT_DIR))
/* ── 首页 · 预览画廊 ── */
app.get('/', (req, res) => {
let files = []
try {
if (existsSync(OUTPUT_DIR)) {
files = readdirSync(OUTPUT_DIR)
.filter(f => /\.(png|webp|jpg)$/i.test(f))
.sort()
.reverse()
}
} catch {}
const galleryHtml = files.length > 0
? files.map(f =>
``
).join('\n')
: '
冰朔 · 你的配图我包了 · 在对话里告诉我内容就行