diff --git a/src/database/admin.rs b/src/database/admin.rs index f8b2385..87a60a1 100644 --- a/src/database/admin.rs +++ b/src/database/admin.rs @@ -1,6 +1,7 @@ use std::convert::{TryFrom, TryInto}; -use crate::{pdu::PduBuilder, Error}; +use crate::pdu::PduBuilder; +use log::warn; use rocket::futures::{channel::mpsc, stream::StreamExt}; use ruma::{events::room::message, events::EventType, UserId}; use tokio::select; @@ -34,10 +35,12 @@ impl Admin { .try_into() .expect("#admins:server_name is a valid room alias"), ) - .unwrap() - .ok_or_else(|| Error::BadConfig("Conduit instance does not have an #admins room.")) .unwrap(); + if conduit_room.is_none() { + warn!("Conduit instance does not have an #admins room. Logging to that room will not work."); + } + loop { select! { Some(event) = receiver.next() => { @@ -45,21 +48,23 @@ impl Admin { AdminCommand::SendTextMessage(message) => { println!("{:?}", message); - db.rooms.build_and_append_pdu( - PduBuilder { - event_type: EventType::RoomMessage, - content: serde_json::to_value(message).expect("event is valid, we just created it"), - unsigned: None, - state_key: None, - redacts: None, - }, - &conduit_user, - &conduit_room, - &db.globals, - &db.sending, - &db.admin, - &db.account_data, - ).unwrap(); + if let Some(conduit_room) = &conduit_room { + db.rooms.build_and_append_pdu( + PduBuilder { + event_type: EventType::RoomMessage, + content: serde_json::to_value(message).expect("event is valid, we just created it"), + unsigned: None, + state_key: None, + redacts: None, + }, + &conduit_user, + &conduit_room, + &db.globals, + &db.sending, + &db.admin, + &db.account_data, + ).unwrap(); + } } } }