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::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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue