Support override fonts (#378)

* Support override fonts

* Compile fix

* Actual compile fix

* Use snake_case
This commit is contained in:
Amelia 2024-04-14 12:55:55 -07:00 committed by GitHub
parent 6515d3025f
commit 4fc20c7c1c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1295,7 +1295,7 @@ const FONTS: [(&str, &str); 68] = [
("Webdings", "webdings.woff2"),
];
lazy_static::lazy_static! {
static ref FONT_REGEX: Regex = Regex::new(r"(?m)^Style:\s.+?,(?P<font>.+?),").unwrap();
static ref FONT_REGEX: Regex = Regex::new(r"(?m)^(?:Style:\s.+?,(?P<font>.+?),|(?:Dialogue:\s(?:.+?,)+,\{(?:\\.*)?\\fn(?P<overrideFont>[\w\s]+)(?:\\.*)?)\})").unwrap();
}
/// Get the fonts used in the subtitle.
@ -1309,6 +1309,12 @@ fn get_subtitle_stats(path: &Path) -> Result<Vec<String>> {
fonts.push(font_string)
}
}
if let Some(override_font) = capture.name("overrideFont") {
let font_string = override_font.as_str().to_string();
if !fonts.contains(&font_string) {
fonts.push(font_string)
}
}
}
Ok(fonts)