Documentation ¶
Index ¶
- Constants
- func AnnotateError(err error, annotation string, code int) error
- func Get(path string) (map[string]interface{}, error)
- func GetAccessToken() (*oauth2.Token, error)
- func GetAppToken() string
- func GetChannel(name string) (channelId, channelName string, err error)
- func GetChannelId() (string, error)
- func GetChannelName() (string, error)
- func GetClips(channelId string, since time.Time) ([]string, error)
- func GetProfilePic(channelId string) (string, error)
- func HandleDone(w http.ResponseWriter, r *http.Request) (err error)
- func HandleLogin(w http.ResponseWriter, r *http.Request) (err error)
- func HandleOAuth2Callback(w http.ResponseWriter, r *http.Request) (err error)
- func HandleRoot(w http.ResponseWriter, r *http.Request) (err error)
- func LoadClientToken()
- func LoadToken()
- func RefreshToken()
- func SaveToken()
- type BitsV2EventData
- type ChannelUpdateEventData
- type Chat
- type ChatEvent
- func MakeBitsV2EventData(channelId string, data twitchdata.BitEventsV2) ChatEvent
- func MakeChannelUpdateEventData(channelId, username, userId, title, language, categoryId, categoryName string, ...) ChatEvent
- func MakeErrorEvent(err error) ChatEvent
- func MakeFollowEventData(channelId, username, userId string) ChatEvent
- func MakeRewardRedemptionEventData(channel string, data twitchdata.RedemptionData) ChatEvent
- func MakeStreamStatusEventData(channelId string, online bool, ...) ChatEvent
- func MakeSubscribeEventData(channelId string, data twitchdata.ChannelSubscribeMessageData) ChatEvent
- type ErrorEventData
- func (l *ErrorEventData) AsJson() string
- func (l *ErrorEventData) AsMap() map[string]interface{}
- func (l *ErrorEventData) Error() string
- func (l *ErrorEventData) GetData() interface{}
- func (l *ErrorEventData) GetType() EventType
- func (l *ErrorEventData) RawError() error
- func (l *ErrorEventData) Timestamp() time.Time
- type EventType
- type FollowEventData
- type Handler
- type HumanReadableError
- type HumanReadableWrapper
- type LoginEventData
- type MessageEventData
- func (l *MessageEventData) AsJson() string
- func (l *MessageEventData) AsMap() map[string]interface{}
- func (l *MessageEventData) GetData() interface{}
- func (l *MessageEventData) GetExtraData() interface{}
- func (l *MessageEventData) GetPicture() string
- func (l *MessageEventData) GetType() EventType
- func (l *MessageEventData) IsModerator() bool
- func (l *MessageEventData) IsSubscriber() bool
- func (l *MessageEventData) SubscriberMonths() int
- func (l *MessageEventData) Timestamp() time.Time
- type Monitor
- type RewardRedemptionEventData
- type SourceType
- type StreamStatusEventData
- type SubscribeEventData
Constants ¶
const (
ChatTLS = "irc.chat.twitch.tv:6697"
)
const (
HelixAPI = "https://api.twitch.tv/helix"
)
Variables ¶
This section is empty.
Functions ¶
func AnnotateError ¶
AnnotateError wraps an error with a message that is intended for a human end-user to read, plus an associated HTTP error code.
func GetAccessToken ¶
func GetAppToken ¶
func GetAppToken() string
func GetChannel ¶
func GetChannelId ¶
func GetChannelName ¶
func GetProfilePic ¶
func HandleDone ¶
func HandleDone(w http.ResponseWriter, r *http.Request) (err error)
func HandleLogin ¶
func HandleLogin(w http.ResponseWriter, r *http.Request) (err error)
HandleLogin is a Handler that redirects the user to Twitch for login, and provides the 'state' parameter which protects against login CSRF.
func HandleOAuth2Callback ¶
func HandleOAuth2Callback(w http.ResponseWriter, r *http.Request) (err error)
HandleOauth2Callback is a Handler for oauth's 'redirect_uri' endpoint; it validates the state token and retrieves an OAuth token from the request parameters.
func HandleRoot ¶
func HandleRoot(w http.ResponseWriter, r *http.Request) (err error)
HandleRoot is a Handler that shows a login button. In production, if the frontend is served / generated by Go, it should use html/template to prevent XSS attacks.
func LoadClientToken ¶
func LoadClientToken()
func RefreshToken ¶
func RefreshToken()
Types ¶
type BitsV2EventData ¶
type BitsV2EventData struct { ChannelId string Data twitchdata.BitEventsV2 // contains filtered or unexported fields }
func (*BitsV2EventData) AsJson ¶
func (e *BitsV2EventData) AsJson() string
func (*BitsV2EventData) AsMap ¶
func (e *BitsV2EventData) AsMap() map[string]interface{}
func (*BitsV2EventData) GetData ¶
func (e *BitsV2EventData) GetData() interface{}
func (*BitsV2EventData) GetType ¶
func (e *BitsV2EventData) GetType() EventType
func (*BitsV2EventData) Timestamp ¶
func (e *BitsV2EventData) Timestamp() time.Time
type ChannelUpdateEventData ¶
type ChannelUpdateEventData struct { ChannelId string Username string UserId string Title string Language string CategoryId string CategoryName string IsMature bool // contains filtered or unexported fields }
func (*ChannelUpdateEventData) AsJson ¶
func (e *ChannelUpdateEventData) AsJson() string
func (*ChannelUpdateEventData) AsMap ¶
func (e *ChannelUpdateEventData) AsMap() map[string]interface{}
func (*ChannelUpdateEventData) GetData ¶
func (e *ChannelUpdateEventData) GetData() interface{}
func (*ChannelUpdateEventData) GetType ¶
func (e *ChannelUpdateEventData) GetType() EventType
func (*ChannelUpdateEventData) Timestamp ¶
func (e *ChannelUpdateEventData) Timestamp() time.Time
type Chat ¶
type Chat struct { Events chan ChatEvent // contains filtered or unexported fields }
func (*Chat) EventChannel ¶
func (*Chat) SendMessage ¶
func (*Chat) SendRawMessage ¶
type ChatEvent ¶
type ChatEvent interface { GetType() EventType GetData() interface{} AsMap() map[string]interface{} AsJson() string Timestamp() time.Time }
func MakeBitsV2EventData ¶
func MakeBitsV2EventData(channelId string, data twitchdata.BitEventsV2) ChatEvent
func MakeErrorEvent ¶
func MakeFollowEventData ¶
func MakeRewardRedemptionEventData ¶
func MakeRewardRedemptionEventData(channel string, data twitchdata.RedemptionData) ChatEvent
func MakeSubscribeEventData ¶
func MakeSubscribeEventData(channelId string, data twitchdata.ChannelSubscribeMessageData) ChatEvent
type ErrorEventData ¶
type ErrorEventData struct {
// contains filtered or unexported fields
}
func (*ErrorEventData) AsJson ¶
func (l *ErrorEventData) AsJson() string
func (*ErrorEventData) AsMap ¶
func (l *ErrorEventData) AsMap() map[string]interface{}
func (*ErrorEventData) Error ¶
func (l *ErrorEventData) Error() string
func (*ErrorEventData) GetData ¶
func (l *ErrorEventData) GetData() interface{}
func (*ErrorEventData) GetType ¶
func (l *ErrorEventData) GetType() EventType
func (*ErrorEventData) RawError ¶
func (l *ErrorEventData) RawError() error
func (*ErrorEventData) Timestamp ¶
func (l *ErrorEventData) Timestamp() time.Time
type EventType ¶
type EventType string
const ( EventUndefined EventType = "UNDEFINED" EventLoginSuccess EventType = "LOGIN_SUCCESS" EventLoginError EventType = "LOGIN_ERROR" EventMessage EventType = "MESSAGE" EventError EventType = "ERROR" EventBits EventType = "BITS" EventSubscribe EventType = "SUBSCRIBE" EventStreamStatus EventType = "STREAM_STATUS" EventRewardRedemption EventType = "REWARD_REDEMPTION" EventFollow EventType = "FOLLOW" EventChannelUpdate EventType = "CHANNEL_UPDATE" )
type FollowEventData ¶
type FollowEventData struct { ChannelId string Username string UserId string // contains filtered or unexported fields }
func (*FollowEventData) AsJson ¶
func (e *FollowEventData) AsJson() string
func (*FollowEventData) AsMap ¶
func (e *FollowEventData) AsMap() map[string]interface{}
func (*FollowEventData) GetData ¶
func (e *FollowEventData) GetData() interface{}
func (*FollowEventData) GetType ¶
func (e *FollowEventData) GetType() EventType
func (*FollowEventData) Timestamp ¶
func (e *FollowEventData) Timestamp() time.Time
type HumanReadableError ¶
HumanReadableError represents error information that can be fed back to a human user.
This prevents internal state that might be sensitive being leaked to the outside world.
type HumanReadableWrapper ¶
type HumanReadableWrapper struct { ToHuman string Code int // contains filtered or unexported fields }
HumanReadableWrapper implements HumanReadableError
func (HumanReadableWrapper) HTTPCode ¶
func (h HumanReadableWrapper) HTTPCode() int
func (HumanReadableWrapper) HumanError ¶
func (h HumanReadableWrapper) HumanError() string
type LoginEventData ¶
type LoginEventData struct { Message string // contains filtered or unexported fields }
func MakeLoginEvent ¶
func MakeLoginEvent(success bool, message string) *LoginEventData
func (*LoginEventData) AsJson ¶
func (l *LoginEventData) AsJson() string
func (*LoginEventData) AsMap ¶
func (l *LoginEventData) AsMap() map[string]interface{}
func (*LoginEventData) GetData ¶
func (l *LoginEventData) GetData() interface{}
func (*LoginEventData) GetType ¶
func (l *LoginEventData) GetType() EventType
func (*LoginEventData) Timestamp ¶
func (l *LoginEventData) Timestamp() time.Time
type MessageEventData ¶
type MessageEventData struct { Source SourceType Username string Message string Picture string Tags map[string]string Badges map[string]string ExtraData interface{} // contains filtered or unexported fields }
func MakeMessageEventData ¶
func MakeMessageEventData(source SourceType, username, message, picture string, tags map[string]string, extraData interface{}) *MessageEventData
func (*MessageEventData) AsJson ¶
func (l *MessageEventData) AsJson() string
func (*MessageEventData) AsMap ¶
func (l *MessageEventData) AsMap() map[string]interface{}
func (*MessageEventData) GetData ¶
func (l *MessageEventData) GetData() interface{}
func (*MessageEventData) GetExtraData ¶
func (l *MessageEventData) GetExtraData() interface{}
func (*MessageEventData) GetPicture ¶
func (l *MessageEventData) GetPicture() string
func (*MessageEventData) GetType ¶
func (l *MessageEventData) GetType() EventType
func (*MessageEventData) IsModerator ¶
func (l *MessageEventData) IsModerator() bool
func (*MessageEventData) IsSubscriber ¶
func (l *MessageEventData) IsSubscriber() bool
func (*MessageEventData) SubscriberMonths ¶
func (l *MessageEventData) SubscriberMonths() int
func (*MessageEventData) Timestamp ¶
func (l *MessageEventData) Timestamp() time.Time
type Monitor ¶
type Monitor struct {
// contains filtered or unexported fields
}
func MakeMonitor ¶
func (*Monitor) EventChannel ¶
type RewardRedemptionEventData ¶
type RewardRedemptionEventData struct { ChannelId string Data twitchdata.RedemptionData // contains filtered or unexported fields }
func (*RewardRedemptionEventData) AsJson ¶
func (l *RewardRedemptionEventData) AsJson() string
func (*RewardRedemptionEventData) AsMap ¶
func (l *RewardRedemptionEventData) AsMap() map[string]interface{}
func (*RewardRedemptionEventData) GetData ¶
func (l *RewardRedemptionEventData) GetData() interface{}
func (*RewardRedemptionEventData) GetType ¶
func (l *RewardRedemptionEventData) GetType() EventType
func (*RewardRedemptionEventData) Timestamp ¶
func (l *RewardRedemptionEventData) Timestamp() time.Time
type SourceType ¶
type SourceType string
const (
SourceTwitch SourceType = "TWITCH"
)
func (SourceType) String ¶
func (st SourceType) String() string
type StreamStatusEventData ¶
type StreamStatusEventData struct { ChannelId string Online bool Id string UserId string UserName string GameId string CommunityIds []string Type string Title string ViewerCount int StartedAt time.Time Language string ThumbnailUrl string // contains filtered or unexported fields }
func (*StreamStatusEventData) AsJson ¶
func (e *StreamStatusEventData) AsJson() string
func (*StreamStatusEventData) AsMap ¶
func (e *StreamStatusEventData) AsMap() map[string]interface{}
func (*StreamStatusEventData) GetData ¶
func (e *StreamStatusEventData) GetData() interface{}
func (*StreamStatusEventData) GetType ¶
func (e *StreamStatusEventData) GetType() EventType
func (*StreamStatusEventData) Timestamp ¶
func (e *StreamStatusEventData) Timestamp() time.Time
type SubscribeEventData ¶
type SubscribeEventData struct { ChannelId string Data twitchdata.ChannelSubscribeMessageData // contains filtered or unexported fields }
func (*SubscribeEventData) AsJson ¶
func (e *SubscribeEventData) AsJson() string
func (*SubscribeEventData) AsMap ¶
func (e *SubscribeEventData) AsMap() map[string]interface{}
func (*SubscribeEventData) GetData ¶
func (e *SubscribeEventData) GetData() interface{}
func (*SubscribeEventData) GetType ¶
func (e *SubscribeEventData) GetType() EventType
func (*SubscribeEventData) Timestamp ¶
func (e *SubscribeEventData) Timestamp() time.Time