Moved schedule config from yml to lua

This commit is contained in:
2024-04-26 23:16:39 +02:00
parent 3225dbdda9
commit 5069d1b0e7
6 changed files with 23 additions and 26 deletions

View File

@@ -10,7 +10,6 @@ use tracing::debug;
use crate::auth::OpenIDConfig;
use crate::devices::PresenceConfig;
use crate::error::{ConfigParseError, MissingEnv};
use crate::schedule::Schedule;
#[derive(Debug, Deserialize)]
pub struct Config {
@@ -21,7 +20,6 @@ pub struct Config {
pub fullfillment: FullfillmentConfig,
pub ntfy: Option<NtfyConfig>,
pub presence: PresenceConfig,
pub schedule: Schedule,
}
#[derive(Debug, Clone, Deserialize)]

View File

@@ -6,7 +6,7 @@ use async_trait::async_trait;
use enum_dispatch::enum_dispatch;
use futures::future::join_all;
use google_home::traits::OnOff;
use mlua::FromLua;
use mlua::{FromLua, LuaSerdeExt};
use rumqttc::{matches, AsyncClient, QoS};
use tokio::sync::{RwLock, RwLockReadGuard};
use tokio_cron_scheduler::{Job, JobScheduler};
@@ -261,6 +261,12 @@ impl mlua::UserData for DeviceManager {
Ok(this.add(device).await)
},
)
);
methods.add_async_method("add_schedule", |lua, this, schedule| async {
let schedule = lua.from_value(schedule)?;
this.add_schedule(schedule).await;
Ok(())
})
}
}

View File

@@ -63,8 +63,6 @@ async fn app() -> anyhow::Result<()> {
// Setup the device handler
let device_manager = DeviceManager::new(client.clone());
device_manager.add_schedule(config.schedule).await;
let event_channel = device_manager.event_channel();
// Create and add the presence system