go-twitch/api/chat/models.go

135 lines
5.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package chat
type EmoteImages struct {
// A URL to the small version (28px x 28px) of the emote.
URL1x string `json:"url_1x"`
// A URL to the medium version (56px x 56px) of the emote.
URL2x string `json:"url_2x"`
// A URL to the large version (112px x 112px) of the emote.
URL4x string `json:"url_4x"`
}
type EmoteFormat string
const (
EmoteFormatStatic EmoteFormat = "static"
EmoteFormatAnimated EmoteFormat = "animated"
)
type EmoteScale string
const (
// 1.0 — A small version (28px x 28px) is available.
EmoteScale1 EmoteScale = "1.0"
// 2.0 — A medium version (56px x 56px) is available.
EmoteScale2 EmoteScale = "2x"
// 3.0 — A large version (112px x 112px) is available.
EmoteScale4 EmoteScale = "4x"
)
type EmoteThemeMode string
const (
EmoteThemeModeDark EmoteThemeMode = "dark"
EmoteThemeModeLight EmoteThemeMode = "light"
)
type Badge struct {
// An ID that identifies this set of chat badges. For example, Bits or Subscriber.
SetID string `json:"set_id"`
// The list of chat badges in this set.
Versions []BadgeVersion `json:"versions"`
}
type BadgeVersion struct {
// An ID that identifies this version of the badge. The ID can be any value.
// For example, for Bits, the ID is the Bits tier level, but for World of Warcraft, it could be Alliance or Horde.
ID string `json:"id"`
// A URL to the small version (18px x 18px) of the badge.
ImageURL1x string `json:"image_url_1x"`
// A URL to the medium version (36px x 36px) of the badge.
ImageURL2x string `json:"image_url_2x"`
// A URL to the large version (72px x 72px) of the badge.
ImageURL4x string `json:"image_url_4x"`
// The title of the badge.
Title string `json:"title"`
// The description of the badge.
Description string `json:"description"`
// The action to take when clicking on the badge. Set to null if no action is specified.
ClickAction *string `json:"click_action"`
// The URL to navigate to when clicking on the badge. Set to null if no URL is specified.
ClickURL *string `json:"click_url"`
}
type Settings struct {
// The ID of the broadcaster specified in the request.
BroadcasterID string `json:"broadcaster_id"`
// A Boolean value that determines whether chat messages must contain only emotes. Is true if chat messages may contain only emotes; otherwise, false.
EmoteMode bool `json:"emote_mode"`
// A Boolean value that determines whether the broadcaster restricts the chat room to followers only.
//
// Is true if the broadcaster restricts the chat room to followers only; otherwise, false.
//
// See the follower_mode_duration field for how long users must follow the broadcaster before being able to participate in the chat room.
FollowerMode bool `json:"follower_mode"`
// The length of time, in minutes, that users must follow the broadcaster before being able to participate in the chat room.
// Is null if follower_mode is false.
FollowerModeDuration *int `json:"follower_mode_duration"`
// The moderators ID.
// The response includes this field only if the request specifies a user access token that includes the moderator:read:chat_settings scope.
ModeratorID *string `json:"moderator_id"`
// A Boolean value that determines whether the broadcaster adds a short delay before chat messages appear in the chat room.
// This gives chat moderators and bots a chance to remove them before viewers can see the message.
// See the non_moderator_chat_delay_duration field for the length of the delay.
// Is true if the broadcaster applies a delay; otherwise, false.
//
// The response includes this field only if the request specifies a user access token that includes the moderator:read:chat_settings
// scope and the user in the moderator_id query parameter is one of the broadcasters moderators.
NonModeratorChatDelay *bool `json:"non_moderator_chat_delay"`
// The amount of time, in seconds, that messages are delayed before appearing in chat. Is null if non_moderator_chat_delay is false.
//
// The response includes this field only if the request specifies a user access token that includes the moderator:read:chat_settings
// scope and the user in the moderator_id query parameter is one of the broadcasters moderators.
NonModeratorChatDelayDuration *int `json:"non_moderator_chat_delay_duration"`
// A Boolean value that determines whether the broadcaster limits how often users in the chat room are allowed to send messages.
//
// Is true if the broadcaster applies a delay; otherwise, false.
//
// See the slow_mode_wait_time field for the delay.
SlowMode bool `json:"slow_mode"`
// The amount of time, in seconds, that users must wait between sending messages.
//
// Is null if slow_mode is false.
SlowModeWaitTime *int `json:"slow_mode_wait_time"`
// A Boolean value that determines whether only users that subscribe to the broadcasters channel may talk in the chat room.
//
// Is true if the broadcaster restricts the chat room to subscribers only; otherwise, false.
SubscriberMode bool `json:"subscriber_mode"`
// A Boolean value that determines whether the broadcaster requires users to post only unique messages in the chat room.
//
// Is true if the broadcaster requires unique messages only; otherwise, false.
UniqueChatMode bool `json:"unique_chat_mode"`
}