xmpp: *Message events now include an optional id
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
d7a1cd71a9
commit
c759516508
2 changed files with 17 additions and 7 deletions
|
@ -51,7 +51,7 @@ async fn main() -> Result<(), Option<()>> {
|
|||
Event::ContactChanged(contact) => {
|
||||
println!("Contact {} changed.", contact.jid);
|
||||
}
|
||||
Event::ChatMessage(jid, body) => {
|
||||
Event::ChatMessage(_id, jid, body) => {
|
||||
println!("Message from {}: {}", jid, body.0);
|
||||
}
|
||||
Event::JoinRoom(jid, conference) => {
|
||||
|
@ -81,7 +81,7 @@ async fn main() -> Result<(), Option<()>> {
|
|||
Event::RoomLeft(jid) => {
|
||||
println!("Left room {}.", jid);
|
||||
}
|
||||
Event::RoomMessage(jid, nick, body) => {
|
||||
Event::RoomMessage(_id, jid, nick, body) => {
|
||||
println!("Message in room {} from {}: {}", jid, nick, body.0);
|
||||
}
|
||||
Event::AvatarRetrieved(jid, path) => {
|
||||
|
|
|
@ -72,6 +72,7 @@ pub enum ClientFeature {
|
|||
JoinRooms,
|
||||
}
|
||||
|
||||
pub type Id = Option<String>;
|
||||
pub type RoomNick = String;
|
||||
|
||||
#[derive(Debug)]
|
||||
|
@ -83,14 +84,14 @@ pub enum Event {
|
|||
ContactChanged(RosterItem),
|
||||
#[cfg(feature = "avatars")]
|
||||
AvatarRetrieved(Jid, String),
|
||||
ChatMessage(BareJid, Body),
|
||||
ChatMessage(Id, BareJid, Body),
|
||||
JoinRoom(BareJid, Conference),
|
||||
LeaveRoom(BareJid),
|
||||
LeaveAllRooms,
|
||||
RoomJoined(BareJid),
|
||||
RoomLeft(BareJid),
|
||||
RoomMessage(BareJid, RoomNick, Body),
|
||||
ServiceMessage(BareJid, Body),
|
||||
RoomMessage(Id, BareJid, RoomNick, Body),
|
||||
ServiceMessage(Id, BareJid, Body),
|
||||
HttpUploadedFile(String),
|
||||
}
|
||||
|
||||
|
@ -336,16 +337,25 @@ impl Agent {
|
|||
MessageType::Groupchat => {
|
||||
let event = match from.clone() {
|
||||
Jid::Full(full) => Event::RoomMessage(
|
||||
message.id.clone(),
|
||||
from.clone().into(),
|
||||
full.resource,
|
||||
body.clone(),
|
||||
),
|
||||
Jid::Bare(bare) => Event::ServiceMessage(bare, body.clone()),
|
||||
Jid::Bare(bare) => Event::ServiceMessage(
|
||||
message.id.clone(),
|
||||
bare,
|
||||
body.clone(),
|
||||
),
|
||||
};
|
||||
events.push(event)
|
||||
}
|
||||
MessageType::Chat | MessageType::Normal => {
|
||||
let event = Event::ChatMessage(from.clone().into(), body.clone());
|
||||
let event = Event::ChatMessage(
|
||||
message.id.clone(),
|
||||
from.clone().into(),
|
||||
body.clone(),
|
||||
);
|
||||
events.push(event)
|
||||
}
|
||||
_ => (),
|
||||
|
|
Loading…
Reference in a new issue