// 演示证书图片索引:demo 播种时按记录标题匹配,附加对应证书 WebP 附件。 // 图片为 Pillow 离线绘制的获奖证书(720x508 WebP + 480px 缩略图),仅作演示数据。 // 如需替换:直接覆盖 demo-certs/*.webp 即可,无需改代码。 import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const DIR = path.join(__dirname, 'demo-certs'); /** * 主名(如 cert-ctf)→ 证书附件负载(attachment_add 所需格式);文件缺失返回 undefined */ export function loadCert(assetName) { try { const data = fs.readFileSync(path.join(DIR, assetName + '.webp')); let thumbB64 = ''; try { thumbB64 = fs.readFileSync(path.join(DIR, assetName + '.thumb.webp')).toString('base64'); } catch {} return { file_name: '获奖证书.webp', mime: 'image/webp', data_b64: data.toString('base64'), thumb_b64: thumbB64, size: data.length, }; } catch { return undefined; } } /** 记录标题 → 证书资源名(demo 播种时逐条匹配) */ export const CERT_BY_TITLE = [ [/信息安全竞赛/, 'cert-ctf'], [/数学建模/, 'cert-math'], [/蓝桥杯/, 'cert-lanqiao'], [/计算机设计大赛/, 'cert-cd'], [/英语竞赛/, 'cert-eng'], [/ACM-ICPC/, 'cert-acm'], [/优秀共青团员/, 'cert-wusi'], ];