mtag_cli/utils/
tools.rs

1use std::path::{Path, PathBuf};
2
3use super::fs::list_files_in_folder;
4
5pub fn contains_tv_keywords(album: &str) -> bool {
6    let keywords = vec!["影视原声", "电视剧原声"];
7    for keyword in keywords {
8        if album.contains(keyword) {
9            return true;
10        }
11    }
12    false
13}
14
15pub fn get_audio_file_list(folder_path: &Path) -> Vec<PathBuf> {
16    let file_list = list_files_in_folder(folder_path).unwrap();
17    let mut audio_file_list: Vec<PathBuf> = Vec::new();
18    for file in file_list {
19        if let Some(kind) = infer::get_from_path(file.as_path()).expect("file read successfully") {
20            let mime = kind.mime_type();
21            if (mime.contains("audio")) {
22                audio_file_list.push(file);
23            }
24        }
25    }
26    audio_file_list
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn test_contains_tv_keywords() {
35        assert_eq!(contains_tv_keywords("test 影视原声带"), true);
36        assert_eq!(contains_tv_keywords("test 电视剧原声带"), true);
37        assert_eq!(contains_tv_keywords("test"), false);
38    }
39}