mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-20 12:11:28 -07:00
feat: add unified parseSubtitleCues with format auto-detection
This commit is contained in:
@@ -122,7 +122,31 @@ export function parseAssCues(content: string): SubtitleCue[] {
|
|||||||
return cues;
|
return cues;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stub export — will be implemented in Task 6
|
function detectSubtitleFormat(filename: string): 'srt' | 'vtt' | 'ass' | 'ssa' | null {
|
||||||
export function parseSubtitleCues(_content: string, _filename: string): SubtitleCue[] {
|
const ext = filename.split('.').pop()?.toLowerCase() ?? '';
|
||||||
throw new Error('parseSubtitleCues not yet implemented');
|
if (ext === 'srt') return 'srt';
|
||||||
|
if (ext === 'vtt') return 'vtt';
|
||||||
|
if (ext === 'ass' || ext === 'ssa') return 'ass';
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function parseSubtitleCues(content: string, filename: string): SubtitleCue[] {
|
||||||
|
const format = detectSubtitleFormat(filename);
|
||||||
|
let cues: SubtitleCue[];
|
||||||
|
|
||||||
|
switch (format) {
|
||||||
|
case 'srt':
|
||||||
|
case 'vtt':
|
||||||
|
cues = parseSrtCues(content);
|
||||||
|
break;
|
||||||
|
case 'ass':
|
||||||
|
case 'ssa':
|
||||||
|
cues = parseAssCues(content);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
cues.sort((a, b) => a.startTime - b.startTime);
|
||||||
|
return cues;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user