use crate::chat::{
events::{EventMeta, UserEvent},
parser::{raw::RawMessage, user::parse_user_status, util::normalize_user_id},
types::User,
};
pub fn parse_exit_event(raw: RawMessage) -> Option<(bool, UserEvent)> {
let body = raw.body;
if body[0] == "1" || body.len() < 6 {
return None;
}
let is_kick = body[3] != "1";
Some((
is_kick,
UserEvent {
meta: EventMeta {
received_time: raw.received_time,
},
user: User {
id: normalize_user_id(&body[1]),
label: body[2].clone(),
status: parse_user_status(&body[5]),
subscribe: None,
},
},
))
}