feat: allow messaging from sermo to ircd-hybrid
This commit is contained in:
parent
71b5741ebd
commit
adbc4dab74
1 changed files with 37 additions and 2 deletions
|
|
@ -13,10 +13,14 @@ use tokio::{
|
|||
use tracing::debug;
|
||||
|
||||
use crate::{
|
||||
FOREIGN_CONNECTED_USERS,
|
||||
config::ServerInfo,
|
||||
messages::Message,
|
||||
messages::{Message, Receiver as MsgReceiver},
|
||||
sender::IrcResponse,
|
||||
ts6::{commands::Ts6Command, structs::ServerId},
|
||||
ts6::{
|
||||
commands::Ts6Command,
|
||||
structs::{ServerId, UserId},
|
||||
},
|
||||
};
|
||||
|
||||
#[derive(Clone, Debug, Default)]
|
||||
|
|
@ -138,6 +142,37 @@ impl Ts6 {
|
|||
.unwrap();
|
||||
}
|
||||
|
||||
Message::PrivMessage(priv_message) => 'priv_message_handler: {
|
||||
let sender_uid = priv_message.sender.user_id;
|
||||
let receiver_uid: UserId = match priv_message.receiver {
|
||||
MsgReceiver::UserId(uid) => uid,
|
||||
MsgReceiver::Username(username) => 'find_uid: {
|
||||
let foreign_users = FOREIGN_CONNECTED_USERS.lock().await.clone();
|
||||
|
||||
for user in foreign_users {
|
||||
if user.username == username {
|
||||
break 'find_uid user.user_id.clone();
|
||||
}
|
||||
}
|
||||
|
||||
break 'priv_message_handler;
|
||||
}
|
||||
|
||||
_ => break 'priv_message_handler,
|
||||
};
|
||||
let text = priv_message.text;
|
||||
|
||||
IrcResponse {
|
||||
sender: Some(sender_uid.to_string()),
|
||||
command: "PRIVMSG".to_string(),
|
||||
receiver: Some(receiver_uid.to_string()),
|
||||
arguments: vec![],
|
||||
message: text,
|
||||
}
|
||||
.send(hostname, writer, false)
|
||||
.await?;
|
||||
}
|
||||
|
||||
_ => {}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue