90 lines
2.2 KiB
JavaScript
90 lines
2.2 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// 读取 TypeScript 配置文件
|
|
const tsFile = path.join(__dirname, '../src/config/systemSubtitleTemplates.ts');
|
|
const content = fs.readFileSync(tsFile, 'utf-8');
|
|
|
|
// 提取每个模板的关键信息
|
|
const templates = [];
|
|
const templateRegex = /id: "template_system_(\d+)",[\s\S]*?name: "(\d+)",[\s\S]*?titleSubtitleConfig: \{[\s\S]*?maxCharsPerLine: (\d+),[\s\S]*?sourceTitle: "([^"]+)",[\s\S]*?lines: \[([\s\S]*?)\],[\s\S]*?\},[\s\S]*?\},[\s\S]*?isSystem: true/g;
|
|
|
|
let match;
|
|
while ((match = templateRegex.exec(content)) !== null) {
|
|
const id = match[1];
|
|
const name = match[2];
|
|
const maxCharsPerLine = parseInt(match[3]);
|
|
const sourceTitle = match[4];
|
|
const linesContent = match[5];
|
|
|
|
// 提取行信息
|
|
const lines = [];
|
|
const fontNames = [];
|
|
const lineRegex = /\{[^}]*text: "([^"]+)"[^}]*fontName: "([^"]+)"[^}]*fontColor: "([^"]+)"[^}]*\}/g;
|
|
let lineMatch;
|
|
while ((lineMatch = lineRegex.exec(linesContent)) !== null) {
|
|
lines.push({
|
|
text: lineMatch[1],
|
|
fontName: lineMatch[2],
|
|
fontColor: lineMatch[3]
|
|
});
|
|
if (!fontNames.includes(lineMatch[2])) {
|
|
fontNames.push(lineMatch[2]);
|
|
}
|
|
}
|
|
|
|
templates.push({
|
|
id,
|
|
name,
|
|
maxCharsPerLine,
|
|
sourceTitle,
|
|
lines,
|
|
fontNames
|
|
});
|
|
}
|
|
|
|
console.log('=== 模板标题字幕配置对比 ===\n');
|
|
|
|
templates.forEach(t => {
|
|
console.log(`模板 ${t.name}:`);
|
|
console.log(` - 每行字符数: ${t.maxCharsPerLine}`);
|
|
console.log(` - 行数: ${t.lines.length}`);
|
|
console.log(` - 字体: ${t.fontNames.join(', ')}`);
|
|
t.lines.forEach((line, idx) => {
|
|
console.log(` - 第${idx + 1}行: "${line.text}" (${line.fontName}, ${line.fontColor})`);
|
|
});
|
|
console.log('');
|
|
});
|
|
|
|
// 找出相同的模板
|
|
console.log('\n=== 相同配置的模板组 ===\n');
|
|
|
|
const groups = {};
|
|
templates.forEach(t => {
|
|
const key = `${t.maxCharsPerLine}-${t.lines.length}-${t.fontNames.join(',')}-${t.lines.map(l => `${l.text}:${l.fontName}:${l.fontColor}`).join('|')}`;
|
|
if (!groups[key]) {
|
|
groups[key] = [];
|
|
}
|
|
groups[key].push(t.name);
|
|
});
|
|
|
|
Object.keys(groups).forEach(key => {
|
|
if (groups[key].length > 1) {
|
|
console.log(`模板 ${groups[key].join(', ')} 配置相同`);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|