Merge branch 'master' of git.tfcconnection.org:chris/lumina-iced
Some checks are pending
/ test (push) Waiting to run
Some checks are pending
/ test (push) Waiting to run
This commit is contained in:
commit
77daa03db6
19 changed files with 4325 additions and 748 deletions
157
src/core/lisp.rs
157
src/core/lisp.rs
|
|
@ -1,157 +0,0 @@
|
|||
use lexpr::Value;
|
||||
use strum_macros::EnumString;
|
||||
|
||||
#[derive(Debug, Clone, Default, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum Symbol {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Slide,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Image,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Text,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Video,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Song,
|
||||
#[strum(disabled)]
|
||||
ImageFit(ImageFit),
|
||||
#[strum(disabled)]
|
||||
VerseOrder(VerseOrder),
|
||||
#[strum(disabled)]
|
||||
#[default]
|
||||
None,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum Keyword {
|
||||
ImageFit(ImageFit),
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum ImageFit {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
#[default]
|
||||
Cover,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Fill,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Crop,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum VerseOrder {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
#[default]
|
||||
V1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
V2,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
V3,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
V4,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
V5,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
V6,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
C1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
C2,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
C3,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
C4,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
B1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
B2,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
B3,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
B4,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
O1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
O2,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
O3,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
O4,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
E1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
E2,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
I1,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
I2,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum SongKeyword {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Title,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Author,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Ccli,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Audio,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Font,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
FontSize,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Background,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
VerseOrder(VerseOrder),
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq, EnumString)]
|
||||
pub(crate) enum ImageKeyword {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Source,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Fit,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, EnumString)]
|
||||
pub(crate) enum VideoKeyword {
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Source,
|
||||
#[strum(ascii_case_insensitive)]
|
||||
Fit,
|
||||
}
|
||||
|
||||
pub(crate) fn get_lists(exp: &Value) -> Vec<Value> {
|
||||
if exp.is_cons() {
|
||||
exp.as_cons().unwrap().to_vec().0
|
||||
} else {
|
||||
vec![]
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
|
||||
// #[test]
|
||||
// fn test_list() {
|
||||
// let lisp =
|
||||
// read_to_string("./test_presentation.lisp").expect("oops");
|
||||
// // println!("{lisp}");
|
||||
// let mut parser =
|
||||
// Parser::from_str_custom(&lisp, Options::elisp());
|
||||
// for atom in parser.value_iter() {
|
||||
// match atom {
|
||||
// Ok(atom) => {
|
||||
// // println!("{atom}");
|
||||
// let lists = get_lists(&atom);
|
||||
// assert_eq!(lists, vec![Value::Null])
|
||||
// }
|
||||
// Err(e) => {
|
||||
// panic!("{e}");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
pub mod content;
|
||||
pub mod images;
|
||||
pub mod kinds;
|
||||
pub mod lisp;
|
||||
pub mod model;
|
||||
pub mod presentations;
|
||||
pub mod service_items;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,10 @@ mod test {
|
|||
let screenshot = bg_path_from_video(video);
|
||||
let screenshot_string =
|
||||
screenshot.to_str().expect("Should be thing");
|
||||
assert_eq!(screenshot_string, "/home/chris/.local/share/lumina/thumbnails/moms-funeral.png");
|
||||
assert_eq!(
|
||||
screenshot_string,
|
||||
"/home/chris/.local/share/lumina/thumbnails/moms-funeral.png"
|
||||
);
|
||||
|
||||
// let runtime = tokio::runtime::Runtime::new().unwrap();
|
||||
let result = bg_from_video(video, &screenshot);
|
||||
|
|
@ -118,6 +121,9 @@ mod test {
|
|||
let screenshot = bg_path_from_video(video);
|
||||
let screenshot_string =
|
||||
screenshot.to_str().expect("Should be thing");
|
||||
assert_ne!(screenshot_string, "/home/chris/.local/share/lumina/thumbnails/All WebDev Sucks and you know it.webm");
|
||||
assert_ne!(
|
||||
screenshot_string,
|
||||
"/home/chris/.local/share/lumina/thumbnails/All WebDev Sucks and you know it.webm"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue