Documentation ¶
Index ¶
- Constants
- Variables
- type APICache
- type BadgeCollection
- type Category
- type Client
- func (c *Client) APICache() *APICache
- func (c *Client) AddChannelVIP(ctx context.Context, broadcasterName, userName string) error
- func (c *Client) BanUser(channel, username string, duration time.Duration, reason string) error
- func (c *Client) DeleteMessage(channel, messageID string) error
- func (c *Client) GetAuthorizedUser() (userID string, userName string, err error)
- func (c *Client) GetCurrentStreamInfo(username string) (*StreamInfo, error)
- func (c *Client) GetDisplayNameForUser(username string) (string, error)
- func (c *Client) GetFollowDate(from, to string) (time.Time, error)
- func (c *Client) GetIDForUsername(username string) (string, error)
- func (c *Client) GetRecentStreamInfo(username string) (string, string, error)
- func (c *Client) GetToken() (string, error)
- func (c *Client) GetUserInformation(user string) (*User, error)
- func (c *Client) HasLiveStream(username string) (bool, error)
- func (c *Client) ModifyChannelInformation(ctx context.Context, broadcasterName string, game, title *string) error
- func (c *Client) RefreshToken() error
- func (c *Client) RemoveChannelVIP(ctx context.Context, broadcasterName, userName string) error
- func (c *Client) SearchCategories(ctx context.Context, name string) ([]Category, error)
- func (c *Client) SendChatAnnouncement(channel, color, message string) error
- func (c *Client) SendShoutout(channel, user string) error
- func (c *Client) SendWhisper(toUser, message string) error
- func (c *Client) SetTokenUpdateHook(f func(string, string) error)
- func (c *Client) UnbanUser(channel, username string) error
- func (c *Client) UpdateToken(accessToken, refreshToken string)
- func (c *Client) ValidateToken(ctx context.Context, force bool) error
- type EventSubClient
- type EventSubCondition
- type EventSubEventChannelPointCustomRewardRedemptionAdd
- type EventSubEventChannelUpdate
- type EventSubEventFollow
- type EventSubEventRaid
- type EventSubEventStreamOffline
- type EventSubEventStreamOnline
- type EventSubEventUserAuthorizationRevoke
- type OAuthTokenResponse
- type OAuthTokenValidationResponse
- type StreamInfo
- type User
Constants ¶
const ( BadgeBroadcaster = "broadcaster" BadgeFounder = "founder" BadgeModerator = "moderator" BadgeSubscriber = "subscriber" BadgeVIP = "vip" )
const ( EventSubEventTypeChannelFollow = "channel.follow" EventSubEventTypeChannelRaid = "channel.raid" EventSubEventTypeChannelUpdate = "channel.update" EventSubEventTypeStreamOffline = "stream.offline" EventSubEventTypeStreamOnline = "stream.online" EventSubEventTypeChannelPointCustomRewardRedemptionAdd = "channel.channel_points_custom_reward_redemption.add" EventSubEventTypeUserAuthorizationRevoke = "user.authorization.revoke" )
const ( // API Scopes ScopeChannelEditCommercial = "channel:edit:commercial" ScopeChannelManageBroadcast = "channel:manage:broadcast" ScopeChannelManageModerators = "channel:manage:moderators" ScopeChannelManagePolls = "channel:manage:polls" ScopeChannelManagePredictions = "channel:manage:predictions" ScopeChannelManageRaids = "channel:manage:raids" ScopeChannelManageRedemptions = "channel:manage:redemptions" ScopeChannelManageVIPS = "channel:manage:vips" ScopeChannelManageWhispers = "user:manage:whispers" ScopeChannelReadRedemptions = "channel:read:redemptions" ScopeModeratorManageAnnoucements = "moderator:manage:announcements" ScopeModeratorManageBannedUsers = "moderator:manage:banned_users" ScopeModeratorManageChatMessages = "moderator:manage:chat_messages" ScopeModeratorManageChatSettings = "moderator:manage:chat_settings" ScopeModeratorManageShoutouts = "moderator:manage:shoutouts" ScopeUserManageChatColor = "user:manage:chat_color" // Deprecated v5 scope but used in chat ScopeV5ChannelEditor = "channel_editor" // Chat Scopes ScopeChatEdit = "chat:edit" // Send live stream chat and rooms messages. ScopeChatRead = "chat:read" // View live stream chat and rooms messages. ScopeWhisperRead = "whispers:read" // View your whisper messages. )
Variables ¶
var ErrUserDoesNotFollow = errors.New("no follow-relation found")
var KnownBadges = []string{ BadgeBroadcaster, BadgeFounder, BadgeModerator, BadgeSubscriber, BadgeVIP, }
Functions ¶
This section is empty.
Types ¶
type BadgeCollection ¶
func ParseBadgeLevels ¶
func ParseBadgeLevels(m *irc.Message) BadgeCollection
func (BadgeCollection) Add ¶
func (b BadgeCollection) Add(badge string, level int)
func (BadgeCollection) Get ¶
func (b BadgeCollection) Get(badge string) int
func (BadgeCollection) Has ¶
func (b BadgeCollection) Has(badge string) bool
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) AddChannelVIP ¶ added in v3.2.0
func (*Client) BanUser ¶
BanUser bans or timeouts a user in the given channel. Setting the duration to 0 will result in a ban, setting if greater than 0 will result in a timeout. The timeout is automatically converted to full seconds. The timeout duration must be less than 1209600s.
func (*Client) DeleteMessage ¶
DeleteMessage deletes one or all messages from the specified chat. If no messageID is given all messages are deleted. If a message ID is given the message must be no older than 6 hours and it must not be posted by broadcaster or moderator.
func (*Client) GetAuthorizedUser ¶
func (*Client) GetCurrentStreamInfo ¶
func (c *Client) GetCurrentStreamInfo(username string) (*StreamInfo, error)
func (*Client) GetDisplayNameForUser ¶
func (*Client) GetIDForUsername ¶
func (*Client) GetRecentStreamInfo ¶
func (*Client) ModifyChannelInformation ¶
func (*Client) RefreshToken ¶
func (*Client) RemoveChannelVIP ¶ added in v3.2.0
func (*Client) SearchCategories ¶
func (*Client) SendChatAnnouncement ¶
SendChatAnnouncement sends an announcement in the specified channel with the given message. Colors must be blue, green, orange, purple or primary (empty color = primary)
func (*Client) SendShoutout ¶ added in v3.4.0
SendShoutout creates a Twitch-native shoutout in the given channel for the given user. This equals `/shoutout <user>` in the channel.
func (*Client) SendWhisper ¶
SendWhisper sends a whisper from the bot to the specified user.
For details about message limits see the official documentation: https://dev.twitch.tv/docs/api/reference#send-whisper
func (*Client) SetTokenUpdateHook ¶
func (*Client) UpdateToken ¶
type EventSubClient ¶
type EventSubClient struct {
// contains filtered or unexported fields
}
func NewEventSubClient ¶
func NewEventSubClient(twitchClient *Client, apiURL, secret, secretHandle string) (*EventSubClient, error)
func (*EventSubClient) HandleEventsubPush ¶
func (e *EventSubClient) HandleEventsubPush(w http.ResponseWriter, r *http.Request)
func (*EventSubClient) PreFetchSubscriptions ¶
func (e *EventSubClient) PreFetchSubscriptions(ctx context.Context) error
func (*EventSubClient) RegisterEventSubHooks ¶
func (e *EventSubClient) RegisterEventSubHooks(event string, condition EventSubCondition, callback func(json.RawMessage) error) (func(), error)
type EventSubCondition ¶
type EventSubCondition struct { BroadcasterUserID string `json:"broadcaster_user_id,omitempty"` CampaignID string `json:"campaign_id,omitempty"` CategoryID string `json:"category_id,omitempty"` ClientID string `json:"client_id,omitempty"` ExtensionClientID string `json:"extension_client_id,omitempty"` FromBroadcasterUserID string `json:"from_broadcaster_user_id,omitempty"` OrganizationID string `json:"organization_id,omitempty"` RewardID string `json:"reward_id,omitempty"` ToBroadcasterUserID string `json:"to_broadcaster_user_id,omitempty"` UserID string `json:"user_id,omitempty"` }
func (EventSubCondition) Hash ¶
func (e EventSubCondition) Hash() (string, error)
type EventSubEventChannelPointCustomRewardRedemptionAdd ¶
type EventSubEventChannelPointCustomRewardRedemptionAdd struct { ID string `json:"id"` BroadcasterUserID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` UserID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` UserInput string `json:"user_input"` Status string `json:"status"` Reward struct { ID string `json:"id"` Title string `json:"title"` Cost int64 `json:"cost"` Prompt string `json:"prompt"` } `json:"reward"` RedeemedAt time.Time `json:"redeemed_at"` }
type EventSubEventChannelUpdate ¶
type EventSubEventChannelUpdate struct { BroadcasterUserID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Title string `json:"title"` Language string `json:"language"` CategoryID string `json:"category_id"` CategoryName string `json:"category_name"` IsMature bool `json:"is_mature"` }
type EventSubEventFollow ¶
type EventSubEventFollow struct { UserID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` BroadcasterUserID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` FollowedAt time.Time `json:"followed_at"` }
type EventSubEventRaid ¶
type EventSubEventRaid struct { FromBroadcasterUserID string `json:"from_broadcaster_user_id"` FromBroadcasterUserLogin string `json:"from_broadcaster_user_login"` FromBroadcasterUserName string `json:"from_broadcaster_user_name"` ToBroadcasterUserID string `json:"to_broadcaster_user_id"` ToBroadcasterUserLogin string `json:"to_broadcaster_user_login"` ToBroadcasterUserName string `json:"to_broadcaster_user_name"` Viewers int64 `json:"viewers"` }
type EventSubEventStreamOnline ¶
type EventSubEventStreamOnline struct { ID string `json:"id"` BroadcasterUserID string `json:"broadcaster_user_id"` BroadcasterUserLogin string `json:"broadcaster_user_login"` BroadcasterUserName string `json:"broadcaster_user_name"` Type string `json:"type"` StartedAt time.Time `json:"started_at"` }
type OAuthTokenResponse ¶
type StreamInfo ¶
type StreamInfo struct { ID string `json:"id"` UserID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` GameID string `json:"game_id"` GameName string `json:"game_name"` Type string `json:"type"` Title string `json:"title"` ViewerCount int64 `json:"viewer_count"` StartedAt time.Time `json:"started_at"` Language string `json:"language"` ThumbnailURL string `json:"thumbnail_url"` TagIds []string `json:"tag_ids"` IsMature bool `json:"is_mature"` }