bot: Add 'version' and help (any other message) command
Signed-off-by: pep <pep@bouah.net>
This commit is contained in:
parent
457c40bffe
commit
6647a9ae92
1 changed files with 31 additions and 7 deletions
38
src/bot.rs
38
src/bot.rs
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue