aboutsummaryrefslogtreecommitdiffstats
path: root/lampada/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lampada/src/main.rs')
-rw-r--r--lampada/src/main.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/lampada/src/main.rs b/lampada/src/main.rs
new file mode 100644
index 0000000..7b7469d
--- /dev/null
+++ b/lampada/src/main.rs
@@ -0,0 +1,42 @@
+use std::{path::Path, str::FromStr, time::Duration};
+
+use jid::JID;
+use lampada::{db::Db, CoreClientCommand, LuzHandle};
+use sqlx::SqlitePool;
+use tokio::{
+ io::{AsyncReadExt, AsyncWriteExt},
+ sync::oneshot,
+};
+use tracing::info;
+
+#[tokio::main]
+async fn main() {
+ tracing_subscriber::fmt::init();
+ let db = Db::create_connect_and_migrate(Path::new("./luz.db"))
+ .await
+ .unwrap();
+ let (luz, mut recv) =
+ LuzHandle::new("test@blos.sm".try_into().unwrap(), "slayed".to_string(), db);
+
+ tokio::spawn(async move {
+ while let Some(msg) = recv.recv().await {
+ info!("{:#?}", msg)
+ }
+ });
+
+ luz.send(CoreClientCommand::Connect).await.unwrap();
+ let (send, recv) = oneshot::channel();
+ tokio::time::sleep(Duration::from_secs(5)).await;
+ info!("sending message");
+ luz.send(CoreClientCommand::SendMessage(
+ JID::from_str("cel@blos.sm").unwrap(),
+ luz::chat::Body {
+ body: "hallo!!!".to_string(),
+ },
+ send,
+ ))
+ .await
+ .unwrap();
+ recv.await.unwrap().unwrap();
+ println!("sent message");
+}