bot: Add 'version' and help (any other message) command

Signed-off-by: pep <pep@bouah.net>
This commit is contained in:
pep 2026-01-08 23:41:35 +01:00
commit 6647a9ae92

View file

@ -24,7 +24,8 @@ use xmpp::jid::{BareJid, Jid, ResourcePart};
use xmpp::parsers::message::MessageType; use xmpp::parsers::message::MessageType;
use xmpp::{ use xmpp::{
Agent, ClientBuilder, ClientFeature, ClientType, Config as AgentConfig, Event, RoomNick, Agent, ClientBuilder, ClientFeature, ClientType, Config as AgentConfig, Event, RoomNick,
message::send::RawMessageSettings, muc::room::JoinRoomSettings, message::send::{MessageSettings, RawMessageSettings},
muc::room::JoinRoomSettings,
}; };
pub struct XmppClient { pub struct XmppClient {
@ -83,13 +84,36 @@ impl XmppClient {
debug!("Received chat message from {}: {}", bare, message); debug!("Received chat message from {}: {}", bare, message);
if message == "rejoin" { match message.as_str() {
for room in &self.config.rooms { "rejoin" => {
for room in &self.config.rooms {
self.agent
.join_room(JoinRoomSettings {
nick: Some(RoomNick::from_resource_ref(
self.nickname.as_ref(),
)),
force_resync: true,
..JoinRoomSettings::new(room.clone())
})
.await
}
}
"version" => {
self.agent self.agent
.join_room(JoinRoomSettings { .send_message(MessageSettings {
nick: Some(RoomNick::from_resource_ref(self.nickname.as_ref())), recipient: bare,
force_resync: true, message: self.config.version.unwrap_or("No version specified."),
..JoinRoomSettings::new(room.clone()) lang: Some("en"),
})
.await
}
_ => {
let message = "Help:\nrejoin: Re-join all rooms.\nversion: Display software version.";
self.agent
.send_message(MessageSettings {
recipient: bare,
message,
lang: Some("en"),
}) })
.await .await
} }