use crate::chat::{
events::{EventMeta, StickerEvent},
parser::{
raw::{ParseResult, RawMessage},
util::normalize_user_id,
},
};
pub fn parse_sticker_event(raw: RawMessage) -> ParseResult<StickerEvent> {
Ok(StickerEvent {
meta: EventMeta {
received_time: raw.received_time,
},
from: normalize_user_id(raw.field(2)?),
from_label: raw.field_string(3)?,
amount: raw.parse_u32_or_default(7, 0),
supporter_ordinal: raw.parse_u32_or_default(8, 0),
})
}
pub fn parse_sticker_sub_event(raw: RawMessage) -> ParseResult<StickerEvent> {
Ok(StickerEvent {
meta: EventMeta {
received_time: raw.received_time,
},
from: normalize_user_id(raw.field(3)?),
from_label: raw.field_string(4)?,
amount: raw.parse_u32_or_default(8, 0),
supporter_ordinal: raw.parse_u32_or_default(9, 0),
})
}