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::{
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 {
@ -83,13 +84,36 @@ impl XmppClient {
debug!("Received chat message from {}: {}", bare, message);
if message == "rejoin" {
for room in &self.config.rooms {
match message.as_str() {
"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
.join_room(JoinRoomSettings {
nick: Some(RoomNick::from_resource_ref(self.nickname.as_ref())),
force_resync: true,
..JoinRoomSettings::new(room.clone())
.send_message(MessageSettings {
recipient: bare,
message: self.config.version.unwrap_or("No version specified."),
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
}