diff options
author | metamuffin <metamuffin@disroot.org> | 2024-07-04 13:20:06 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-07-04 13:20:06 +0200 |
commit | 847a61d3ddf0c4a7656ed330f344ccf27681e240 (patch) | |
tree | d94775f4854c7487af80ccde6cd3967acdf8fc15 /src/main.rs | |
parent | 270283eb61716fa51c0c9b96ef3e00d23eb94dc9 (diff) | |
download | meta-adservices-847a61d3ddf0c4a7656ed330f344ccf27681e240.tar meta-adservices-847a61d3ddf0c4a7656ed330f344ccf27681e240.tar.bz2 meta-adservices-847a61d3ddf0c4a7656ed330f344ccf27681e240.tar.zst |
change ad index to use sidecar files
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 79c3842..891cde2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,7 +17,7 @@ use rocket::{ shield::{self, Shield}, Request, Response, }; -use state::{Config, Logic}; +use state::{AdInfo, Config, Logic}; use std::{io::Cursor, net::IpAddr}; #[rocket::main] @@ -30,7 +30,38 @@ async fn main() { let config = rocket::tokio::fs::read_to_string(config) .await .expect("could not read config"); - let config: Config = serde_yaml::from_str(config.as_str()).expect("config invalid"); + let mut config: Config = toml::from_str(config.as_str()).expect("config invalid"); + + for entry in config.ad_dir.read_dir().expect("cannot read ad directory") { + if let Ok(entry) = entry { + if entry + .path() + .file_name() + .unwrap() + .to_str() + .unwrap() + .ends_with(".toml") + { + let path = entry.path(); + let imname = path.file_stem().unwrap().to_str().unwrap(); + let basename = imname.split_once(".").unwrap().0; + let info: AdInfo = toml::from_str( + &rocket::tokio::fs::read_to_string(entry.path()) + .await + .unwrap(), + ) + .unwrap(); + config.ads.insert( + basename.to_string(), + AdInfo { + image: imname.into(), + ..info + }, + ); + } + } + } + eprintln!("{config:?}"); let state = Logic::new(config); |