extern crate subparse;
use subparse::timetypes::TimeDelta;
use subparse::SubtitleEntry;
use subparse::{get_subtitle_format_by_ending_err, parse_file_from_string};
fn read_file(path: &str) -> String {
use std::io::Read;
let mut file = std::fs::File::open(path).unwrap();
let mut s = String::new();
file.read_to_string(&mut s).unwrap();
s
}
fn main() {
let path = "path/your_example_file.ssa";
let file_content: String = read_file(path);
let format = get_subtitle_format_by_ending_err(path).expect("unknown format");
let mut subtitle_file = parse_file_from_string(format, file_content).expect("parser error");
let mut subtitle_entries: Vec<SubtitleEntry> = subtitle_file.get_subtitle_entries().expect("unexpected error");
for subtitle_entry in &mut subtitle_entries {
subtitle_entry.timespan += TimeDelta::from_mins(1);
if let Some(ref mut line_ref) = subtitle_entry.line {
line_ref.push_str("subparse");
}
}
subtitle_file.update_subtitle_entries(&subtitle_entries).expect("unexpected error");
let data: Vec<u8> = subtitle_file.to_data().expect("unexpected errror");
let data_string = String::from_utf8(data).expect("UTF-8 conversion error");
println!("{}", data_string);
}