Documentation ¶
Index ¶
- Variables
- type API
- func (a *API) BanUser(ctx context.Context, broadcasterID string, moderatorID string, ...) error
- func (a *API) CreateEventSubSubscription(ctx context.Context, reqData CreateEventSubSubscriptionRequest) (CreateEventSubSubscriptionResponse, error)
- func (a *API) DeleteSubSubscriptions(ctx context.Context, id string) error
- func (a *API) FetchEventSubSubscriptions(ctx context.Context, status, subType, userID string) ([]EventSubData, error)
- func (a *API) FetchUnbanRequests(ctx context.Context, broadcasterID, moderatorID string) ([]UnbanRequest, error)
- func (a *API) FetchUserFollowedChannels(ctx context.Context, userID string, broadcasterID string) ([]FollowedChannel, error)
- func (a *API) GetChannelEmotes(ctx context.Context, broadcaster string) (EmoteResponse, error)
- func (a *API) GetChatSettings(ctx context.Context, broadcasterID string, moderatorID string) (GetChatSettingsResponse, error)
- func (a *API) GetGlobalEmotes(ctx context.Context) (EmoteResponse, error)
- func (a *API) GetStreamInfo(ctx context.Context, broadcastID []string) (GetStreamsResponse, error)
- func (a *API) GetUsers(ctx context.Context, logins []string, ids []string) (UserResponse, error)
- func (a *API) ResolveBanRequest(ctx context.Context, broadcasterID, moderatorID, requestID, status string) (UnbanRequest, error)
- func (a *API) UnbanUser(ctx context.Context, broadcasterID string, moderatorID string, userID string) error
- type APIError
- type APIOptionFunc
- type AccountProvider
- type BanUserData
- type BanUserRequest
- type Chat
- type ChatSettingData
- type CreateEventSubSubscriptionRequest
- type CreateEventSubSubscriptionResponse
- type EmoteData
- type EmoteImage
- type EmoteResponse
- type EventSubData
- type EventSubTransport
- type EventSubTransportRequest
- type FollowedChannel
- type GetChatSettingsResponse
- type GetEventSubSubscriptionsResponse
- type GetFollowedChannelsResponse
- type GetStreamsResponse
- type GetUnbanRequestsResponse
- type IRCer
- type Pagination
- type RetryReachedError
- type StreamData
- type TokenRefresher
- type UnbanRequest
- type UserData
- type UserResponse
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoAuthProvided = errors.New("one of app secret or user access token needs to be provided") ErrNoUserAccess = errors.New("user endpoint called when no token was provided") ErrUserRefreshToken = errors.New("the provided user refresh token is empty") ErrNoRefresher = errors.New("refresher was not provided") ErrNoClientSecret = errors.New("no app access token was provided") ErrAppTokenStatusCode = errors.New("invalid status code response while creating app access token") )
var ( // ErrZeroLengthMessage is returned when parsing if the input is // zero-length. ErrZeroLengthMessage = errors.New("irc: cannot parse zero-length message") // ErrMissingDataAfterPrefix is returned when parsing if there is // no message data after the prefix. ErrMissingDataAfterPrefix = errors.New("irc: no message data after prefix") // ErrMissingDataAfterTags is returned when parsing if there is no // message data after the tags. ErrMissingDataAfterTags = errors.New("irc: no message data after tags") // ErrMissingCommand is returned when parsing if there is no // command in the parsed message. ErrMissingCommand = errors.New("irc: missing message command") ErrUnhandledCommand = errors.New("irc: message command not handled by parser") )
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
func (*API) CreateEventSubSubscription ¶ added in v0.3.0
func (a *API) CreateEventSubSubscription(ctx context.Context, reqData CreateEventSubSubscriptionRequest) (CreateEventSubSubscriptionResponse, error)
func (*API) DeleteSubSubscriptions ¶ added in v0.3.0
func (*API) FetchEventSubSubscriptions ¶ added in v0.3.0
func (a *API) FetchEventSubSubscriptions(ctx context.Context, status, subType, userID string) ([]EventSubData, error)
https://dev.twitch.tv/docs/api/reference/#get-eventsub-subscriptions
func (*API) FetchUnbanRequests ¶ added in v0.0.4
func (*API) FetchUserFollowedChannels ¶ added in v0.2.0
func (*API) GetChannelEmotes ¶
func (*API) GetChatSettings ¶
func (a *API) GetChatSettings(ctx context.Context, broadcasterID string, moderatorID string) (GetChatSettingsResponse, error)
moderatorID needs to match ID of the user the token was generated for
func (*API) GetGlobalEmotes ¶
func (a *API) GetGlobalEmotes(ctx context.Context) (EmoteResponse, error)
func (*API) GetStreamInfo ¶
func (*API) ResolveBanRequest ¶ added in v0.0.4
type APIError ¶
type APIError struct { ErrorText string `json:"error"` Status int `json:"status"` Message string `json:"message"` }
error response
type APIOptionFunc ¶
func WithClientSecret ¶
func WithClientSecret(secret string) APIOptionFunc
func WithHTTPClient ¶
func WithHTTPClient(client *http.Client) APIOptionFunc
func WithUserAuthentication ¶
func WithUserAuthentication(provider AccountProvider, refresher TokenRefresher, accountID string) APIOptionFunc
type AccountProvider ¶
type BanUserData ¶ added in v0.0.2
type BanUserRequest ¶ added in v0.0.2
type BanUserRequest struct {
Data BanUserData `json:"data"`
}
type Chat ¶
type Chat struct {
// contains filtered or unexported fields
}
type ChatSettingData ¶
type ChatSettingData struct { BroadcasterID string `json:"broadcaster_id"` SlowMode bool `json:"slow_mode"` SlowModeWaitTime int `json:"slow_mode_wait_time"` // in seconds FollowerMode bool `json:"follower_mode"` FollowerModeDuration int `json:"follower_mode_duration"` // in minutes SubscriberMode bool `json:"subscriber_mode"` EmoteMode bool `json:"emote_mode"` UniqueChatMode bool `json:"unique_chat_mode"` NonModeratorChatDelay bool `json:"non_moderator_chat_delay"` NonModeratorChatDelayDuration int `json:"non_moderator_chat_delay_duration"` // in seconds }
type CreateEventSubSubscriptionRequest ¶ added in v0.3.0
type CreateEventSubSubscriptionRequest struct { Type string `json:"type"` Version string `json:"version"` Condition map[string]string `json:"condition"` Transport EventSubTransportRequest `json:"transport"` }
https://dev.twitch.tv/docs/api/reference/#create-eventsub-subscription
type CreateEventSubSubscriptionResponse ¶ added in v0.3.0
type CreateEventSubSubscriptionResponse struct { Data []EventSubData `json:"data"` Total int `json:"total"` TotalCost int `json:"total_cost"` MaxTotalCost int `json:"max_total_cost"` }
https://dev.twitch.tv/docs/api/reference/#create-eventsub-subscription
type EmoteData ¶
type EmoteImage ¶
type EmoteResponse ¶
type EventSubData ¶ added in v0.3.0
type EventSubData struct { ID string `json:"id"` Status string `json:"status"` Type string `json:"type"` Version string `json:"version"` Condition map[string]string `json:"condition"` CreatedAt time.Time `json:"created_at"` Transport EventSubTransport `json:"transport"` Cost int `json:"cost"` }
https://dev.twitch.tv/docs/api/reference/#create-eventsub-subscription
type EventSubTransport ¶ added in v0.3.0
type EventSubTransport struct { Method string `json:"method"` ConduitID string `json:"conduit_id"` }
https://dev.twitch.tv/docs/api/reference/#create-eventsub-subscription
type EventSubTransportRequest ¶ added in v0.3.0
type EventSubTransportRequest struct { Method string `json:"method"` Callback string `json:"callback"` ConduitID string `json:"conduit_id"` Secret string `json:"secret"` SessionID string `json:"session_id"` }
https://dev.twitch.tv/docs/api/reference/#create-eventsub-subscription
type FollowedChannel ¶ added in v0.2.0
type FollowedChannel struct { BroadcasterID string `json:"broadcaster_id"` BroadcasterLogin string `json:"broadcaster_login"` BroadcasterName string `json:"broadcaster_name"` FollowedAt time.Time `json:"followed_at"` }
https://dev.twitch.tv/docs/api/reference/#get-followed-channels
type GetChatSettingsResponse ¶
type GetChatSettingsResponse struct {
Data []ChatSettingData `json:"data"`
}
type GetEventSubSubscriptionsResponse ¶ added in v0.3.0
type GetEventSubSubscriptionsResponse struct { Total int `json:"total"` TotalCost int `json:"total_cost"` MaxTotalCost int `json:"max_total_cost"` Pagination Pagination `json:"pagination"` Data []EventSubData `json:"data"` }
https://dev.twitch.tv/docs/api/reference/#get-eventsub-subscriptions
type GetFollowedChannelsResponse ¶ added in v0.2.0
type GetFollowedChannelsResponse struct { Total int `json:"total"` Data []FollowedChannel `json:"data"` Pagination Pagination `json:"pagination"` }
https://dev.twitch.tv/docs/api/reference/#get-followed-channels
type GetStreamsResponse ¶
type GetStreamsResponse struct { Data []StreamData `json:"data"` Pagination Pagination `json:"pagination"` }
type GetUnbanRequestsResponse ¶ added in v0.0.4
type GetUnbanRequestsResponse struct { Data []UnbanRequest `json:"data"` Pagination Pagination `json:"pagination"` }
https://dev.twitch.tv/docs/api/reference/#get-unban-requests
type IRCer ¶
type IRCer interface {
IRC() string
}
IRCer are types that can be turned into an IRC command
type Pagination ¶
type Pagination struct {
Cursor string `json:"cursor"`
}
type RetryReachedError ¶
type RetryReachedError struct {
// contains filtered or unexported fields
}
func (RetryReachedError) Error ¶
func (e RetryReachedError) Error() string
func (RetryReachedError) Unwrap ¶
func (e RetryReachedError) Unwrap() error
type StreamData ¶
type StreamData 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"` Tags []string `json:"tags"` ViewerCount int `json:"viewer_count"` StartedAt time.Time `json:"started_at"` Language string `json:"language"` ThumbnailURL string `json:"thumbnail_url"` TagIds []any `json:"tag_ids"` IsMature bool `json:"is_mature"` }
type TokenRefresher ¶
type UnbanRequest ¶ added in v0.0.4
type UnbanRequest struct { ID string `json:"id"` BroadcasterName string `json:"broadcaster_name"` BroadcasterLogin string `json:"broadcaster_login"` BroadcasterID string `json:"broadcaster_id"` ModeratorID string `json:"moderator_id"` ModeratorLogin string `json:"moderator_login"` ModeratorName string `json:"moderator_name"` UserID string `json:"user_id"` UserLogin string `json:"user_login"` UserName string `json:"user_name"` Text string `json:"text"` Status string `json:"status"` CreatedAt time.Time `json:"created_at"` ResolvedAt time.Time `json:"resolved_at"` ResolutionText string `json:"resolution_text"` }
https://dev.twitch.tv/docs/api/reference/#get-unban-requests
type UserData ¶
type UserData struct { ID string `json:"id"` Login string `json:"login"` DisplayName string `json:"display_name"` Type string `json:"type"` BroadcasterType string `json:"broadcaster_type"` Description string `json:"description"` ProfileImageURL string `json:"profile_image_url"` OfflineImageURL string `json:"offline_image_url"` ViewCount int `json:"view_count"` Email string `json:"email"` CreatedAt time.Time `json:"created_at"` }
type UserResponse ¶
type UserResponse struct {
Data []UserData `json:"data"`
}