pub struct UserNoticeMessage {Show 14 fields
pub channel_login: String,
pub channel_id: String,
pub sender: TwitchUserBasics,
pub message_text: Option<String>,
pub system_message: String,
pub event: UserNoticeEvent,
pub event_id: String,
pub badge_info: Vec<Badge>,
pub badges: Vec<Badge>,
pub emotes: Vec<Emote>,
pub name_color: Option<RGBColor>,
pub message_id: String,
pub server_timestamp: DateTime<Utc>,
pub source: IRCMessage,
}
Expand description
A Twitch USERNOTICE
message.
The USERNOTICE
message represents a wide variety of “rich events” in chat,
e.g. sub events, resubs, gifted subscriptions, incoming raids, etc.
See UserNoticeEvent
for more details on all the different events.
Note that even though UserNoticeMessage
has a message_id
, you can NOT reply to these
messages or delete them. For this reason,
ReplyToMessage
is not
implemented for UserNoticeMessage
.
Fields§
§channel_login: String
Login name of the channel that this message was sent to.
channel_id: String
ID of the channel that this message was sent to.
sender: TwitchUserBasics
The user that sent/triggered this message. Depending on the event
(see below),
this user may or may not have any actual meaning (for some type of events, this
user is a dummy user).
Even if this user is not a dummy user, the meaning of what this user did depends on the
event
that this USERNOTICE
message represents. For example, in case of a raid,
this user is the user raiding the channel, in case of a sub
, it’s the user
subscribing, etc…)
message_text: Option<String>
If present, an optional message the user sent alongside the notification. Not all types of events can have message text.
Currently the only event that can a message is a resub
, where this message text is the
message the user shared with the streamer alongside the resub message.
system_message: String
A system message that is always present and represents a user-presentable message of what this event is, for example “FuchsGewand subscribed with Twitch Prime. They’ve subscribed for 12 months, currently on a 9 month streak!”.
This message is always present and always fully pre-formatted by Twitch with this event’s parameters.
event: UserNoticeEvent
this holds the event-specific data, e.g. for sub, resub, subgift, etc…
event_id: String
String identifying the type of event (msg-id
tag). Can be used to manually parse
undocumented types of USERNOTICE
messages.
badge_info: Vec<Badge>
Metadata related to the chat badges in the badges
tag.
Currently this is used only for subscriber
, to indicate the exact number of months
the user has been a subscriber. This number is finer grained than the version number in
badges. For example, a user who has been a subscriber for 45 months would have a
badge_info
value of 45 but might have a badges
version
number for only 3 years.
badges: Vec<Badge>
List of badges that should be displayed alongside the message.
emotes: Vec<Emote>
A list of emotes in this message. Each emote replaces a part of the message_text
.
These emotes are sorted in the order that they appear in the message.
If message_text
is None
, this is an empty list and carries no information (since
there is no message, and therefore no emotes to display)
name_color: Option<RGBColor>
If present, specifies the color that the user’s name should be displayed in. A value
of None
here signifies that the user has not picked any particular color.
Implementations differ on how they handle this, on the Twitch website users are assigned
a pseudorandom but consistent-per-user color if they have no color specified.
message_id: String
A string uniquely identifying this message. Can be used with the Twitch API to
delete single messages. See also the CLEARMSG
message type.
server_timestamp: DateTime<Utc>
Timestamp of when this message was sent.
source: IRCMessage
The message that this UserNoticeMessage
was parsed from.
Trait Implementations§
Source§impl Clone for UserNoticeMessage
impl Clone for UserNoticeMessage
Source§fn clone(&self) -> UserNoticeMessage
fn clone(&self) -> UserNoticeMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for UserNoticeMessage
impl Debug for UserNoticeMessage
Source§impl<'de> Deserialize<'de> for UserNoticeMessage
impl<'de> Deserialize<'de> for UserNoticeMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<UserNoticeMessage> for IRCMessage
impl From<UserNoticeMessage> for IRCMessage
Source§fn from(msg: UserNoticeMessage) -> IRCMessage
fn from(msg: UserNoticeMessage) -> IRCMessage
Source§impl PartialEq for UserNoticeMessage
impl PartialEq for UserNoticeMessage
Source§impl Serialize for UserNoticeMessage
impl Serialize for UserNoticeMessage
Source§impl TryFrom<IRCMessage> for UserNoticeMessage
impl TryFrom<IRCMessage> for UserNoticeMessage
Source§type Error = ServerMessageParseError
type Error = ServerMessageParseError
Source§fn try_from(
source: IRCMessage,
) -> Result<UserNoticeMessage, ServerMessageParseError>
fn try_from( source: IRCMessage, ) -> Result<UserNoticeMessage, ServerMessageParseError>
impl Eq for UserNoticeMessage
impl StructuralPartialEq for UserNoticeMessage
Auto Trait Implementations§
impl Freeze for UserNoticeMessage
impl RefUnwindSafe for UserNoticeMessage
impl Send for UserNoticeMessage
impl Sync for UserNoticeMessage
impl Unpin for UserNoticeMessage
impl UnwindSafe for UserNoticeMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more