VivySub Utils
Parse and encode .ass/ssa subtitles
final content = await File('test.ass').readAsString();
final assParser = AssParser(content: content);
final metadata = assParser.getMetadata();
final comments = assParser.getComments();
final dialogs = assParser.getDialogs();
final sections = assParser.getSections();
final styles = assParser.getStyles();
final assStringify = AssStringify(sections: sections);
String fileContent = assStringify.export();
final editor = SubtitleEditor(
parser: assParser,
onChange: (String value) {
// will be triggered if there're changes, returns stringified content for saving to a file
},
);
final dialogs = editor.getDialogs();
final dialogId = metadata.keys.elementAt(1);
final existingDialog = dialogs[dialogId];
final dialog = SubDialog(
initial: existingDialog,
text: 'Hey, Vivy!',
);
editor.update(
type: ActionType.dialog,
id: dialogId,
value: dialog,
);
editor.undo();
editor.redo();
final Entity selectedDialog = editor.getDialog(dialogId);
print(jsonEncode(selectedDialog));