xmpp: Add ServiceMessage event

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
Maxime “pep” Buquet 2023-02-26 17:42:44 +01:00
commit d7a1cd71a9
No known key found for this signature in database
GPG key ID: DEDA74AEECA9D0F2

View file

@ -90,6 +90,7 @@ pub enum Event {
RoomJoined(BareJid), RoomJoined(BareJid),
RoomLeft(BareJid), RoomLeft(BareJid),
RoomMessage(BareJid, RoomNick, Body), RoomMessage(BareJid, RoomNick, Body),
ServiceMessage(BareJid, Body),
HttpUploadedFile(String), HttpUploadedFile(String),
} }
@ -333,11 +334,14 @@ impl Agent {
match message.get_best_body(langs) { match message.get_best_body(langs) {
Some((_lang, body)) => match message.type_ { Some((_lang, body)) => match message.type_ {
MessageType::Groupchat => { MessageType::Groupchat => {
let event = Event::RoomMessage( let event = match from.clone() {
Jid::Full(full) => Event::RoomMessage(
from.clone().into(), from.clone().into(),
FullJid::try_from(from.clone()).unwrap().resource, full.resource,
body.clone(), body.clone(),
); ),
Jid::Bare(bare) => Event::ServiceMessage(bare, body.clone()),
};
events.push(event) events.push(event)
} }
MessageType::Chat | MessageType::Normal => { MessageType::Chat | MessageType::Normal => {