Documentation ¶
Index ¶
- Constants
- Variables
- type ChannelType
- type FeaturedType
- type FollowsChannelType
- type FollowsUserType
- type Game
- type GameInfo
- type GetAllTeamsInputType
- type GetAllTeamsOutputType
- type GetChannelFollowsInputType
- type GetChannelFollowsOutputType
- type GetChannelInputType
- type GetChannelOutputType
- type GetChannelTeamsInputType
- type GetChannelTeamsOutputType
- type GetChannelVideosInputType
- type GetChannelVideosOutputType
- type GetFeaturedStreamsInputType
- type GetFeaturedStreamsOutputType
- type GetIngestsOutputType
- type GetStreamByChannelInputType
- type GetStreamByChannelOutputType
- type GetStreamsInputType
- type GetStreamsOutputType
- type GetStreamsSummaryInputType
- type GetStreamsSummaryOutputType
- type GetTeamInputType
- type GetTeamOutputType
- type GetTopGamesInputType
- type GetTopGamesOutputType
- type GetTopVideosInputType
- type GetTopVideosOutputType
- type GetUserFollowsChannelInputType
- type GetUserFollowsChannelOutputType
- type GetUserFollowsInputType
- type GetUserFollowsOutputType
- type IngestType
- type NewSessionInput
- type SearchChannelsInputType
- type SearchChannelsOutputType
- type SearchGamesInputType
- type SearchGamesOutputType
- type SearchStreamsInputType
- type SearchStreamsOutputType
- type Session
- func (session *Session) CheckClientID() error
- func (session *Session) GetAllTeams() (*GetAllTeamsOutputType, error)
- func (session *Session) GetChannel(getChannelInputType *GetChannelInputType) (*GetChannelOutputType, error)
- func (session *Session) GetChannelFollows(getChannelFollowsInputType *GetChannelFollowsInputType) (*GetChannelFollowsOutputType, error)
- func (session *Session) GetChannelTeams(getChannelTeamsInputType *GetChannelTeamsInputType) (*GetChannelTeamsOutputType, error)
- func (session *Session) GetChannelVideos(getChannelVideosInputType *GetChannelVideosInputType) (*GetChannelVideosOutputType, error)
- func (session *Session) GetFeaturedStreams(getFeaturedStreamsInputType *GetFeaturedStreamsInputType) (*GetFeaturedStreamsOutputType, error)
- func (session *Session) GetIngests() (*GetIngestsOutputType, error)
- func (session *Session) GetStream(getStreamsInputType *GetStreamsInputType) (*GetStreamsOutputType, error)
- func (session *Session) GetStreamByChannel(getStreamByChannelInputType *GetStreamByChannelInputType) (*GetStreamByChannelOutputType, error)
- func (session *Session) GetStreamsSummary(getStreamsSummaryInputType *GetStreamsSummaryInputType) (*GetStreamsSummaryOutputType, error)
- func (session *Session) GetTeam(getTeamInputType *GetTeamInputType) (*GetTeamOutputType, error)
- func (session *Session) GetTopGames(getTopeGamesInputType *GetTopGamesInputType) (*GetTopGamesOutputType, error)
- func (session *Session) GetTopVideos(getTopVideosInputType *GetTopVideosInputType) (*GetTopVideosOutputType, error)
- func (session *Session) GetUserFollows(getUserFollowsInputType *GetUserFollowsInputType) (*GetUserFollowsOutputType, error)
- func (session *Session) GetUserFollowsChannel(getUserFollowsChannelInputType *GetUserFollowsChannelInputType) (*GetUserFollowsChannelOutputType, error)
- func (session *Session) SearchChannels(searchChannelsInputType *SearchChannelsInputType) (*SearchChannelsOutputType, error)
- func (session *Session) SearchGames(searchGamesInputType *SearchGamesInputType) (*SearchGamesOutputType, error)
- func (session *Session) SearchStreams(searchStreamsInputType *SearchStreamsInputType) (*SearchStreamsOutputType, error)
- type StreamType
- type TeamType
- type UserType
- type VideoType
Constants ¶
const (
// APIV3Header - default v3 api header
APIV3Header = "application/vnd.twitchtv.v3+json"
)
Variables ¶
var ( // DefaultURL - default URLs for the Twitch v3 API DefaultURL = &url.URL{ Scheme: "https", Host: "api.twitch.tv", Path: "kraken", } )
Functions ¶
This section is empty.
Types ¶
type ChannelType ¶
type ChannelType struct { Mature bool `json:"mature"` Status string `json:"status"` BroadcasterLanguage string `json:"broadcaster_language"` DisplayName string `json:"display_name"` Game string `json:"game"` Delay int `json:"delay"` Language string `json:"language"` ID int `json:"_id"` Name string `json:"name"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` Logo string `json:"logo"` Banner string `json:"banner"` VideoBanner string `json:"video_banner"` Background string `json:"background"` ProfileBanner string `json:"profile_banner"` ProfileBannerBackgroundColor string `json:"profile_banner_background_color"` Partner bool `json:"partner"` URL string `json:"url"` Views int `json:"views"` Followers int `json:"followers"` Links map[string]string `json:"_links"` }
ChannelType - describes a channel on twitch
type FeaturedType ¶
type FeaturedType struct { Image string `json:"image"` Text string `json:"text"` Title string `json:"title"` Sponsored bool `json:"sponsored"` Scheduled bool `json:"scheduled"` Stream StreamType `json:"stream"` }
FeaturedType - describes the relationship a stream has if it is featured
type FollowsChannelType ¶
type FollowsChannelType struct { CreatedAt string `json:"created_at"` Notifications bool `json:"notifications"` User UserType `json:"user"` Links map[string]string `json:"_links"` }
FollowsChannelType - struct describing a following channel
type FollowsUserType ¶
type FollowsUserType struct { CreatedAt string `json:"created_at"` Notifications bool `json:"notifications"` Channel ChannelType `json:"channel"` Links map[string]string `json:"_links"` }
FollowsUserType - struct describing a following user
type Game ¶
type Game struct { GameInfo GameInfo `json:"game"` Viewers int `json:"viewers"` Channels int `json:"channels"` }
Game - describes a game on twitch
type GameInfo ¶
type GameInfo struct { Name string `json:"name"` Box map[string]string `json:"box"` Logo map[string]string `json:"logo"` Links map[string]string `json:"_links"` ID int `json:"_id"` GiantBombID int `json:"giantbomb_id"` }
GameInfo - details about the specific game
type GetAllTeamsInputType ¶
type GetAllTeamsInputType struct { Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
GetAllTeamsInputType - request parameters for the GetAllTeams function
type GetAllTeamsOutputType ¶
type GetAllTeamsOutputType struct { Teams []TeamType `json:"teams"` Links map[string]string `json:"_links"` }
GetAllTeamsOutputType - contains a list of teams
type GetChannelFollowsInputType ¶
type GetChannelFollowsInputType struct { Channel string Limit int `url:"limit,omitempty"` Cursor string `url:"cursor,omitempty"` Direction string `url:"direction,omitempty"` }
GetChannelFollowsInputType - request type for querying users following a channel
type GetChannelFollowsOutputType ¶
type GetChannelFollowsOutputType struct { Total int `json:"_total"` Cursor string `json:"_cursor"` Follows []FollowsUserType `json:"follows"` Links map[string]string `json:"_links"` }
GetChannelFollowsOutputType - response type containing users following a channel
type GetChannelInputType ¶
type GetChannelInputType struct {
Channel string
}
GetChannelInputType - input type for the GetChannel function
type GetChannelOutputType ¶
type GetChannelOutputType ChannelType
GetChannelOutputType - returned type containing the channel
type GetChannelTeamsInputType ¶
type GetChannelTeamsInputType struct {
Channel string
}
GetChannelTeamsInputType - input type for the GetChannelTeams function
type GetChannelTeamsOutputType ¶
type GetChannelTeamsOutputType struct { Teams []TeamType `json:"teams"` Links map[string]string `json:"_links"` }
GetChannelTeamsOutputType - returned type container an array of teams
type GetChannelVideosInputType ¶
type GetChannelVideosInputType struct { Channel string Broadcasts bool `url:"broadcasts,omitempty"` HLS bool `url:"hls,omitempty"` Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
GetChannelVideosInputType - request parameters for the GetChannelVideos function
type GetChannelVideosOutputType ¶
type GetChannelVideosOutputType struct { Videos []VideoType `json:"videos"` Total int `json:"total"` Links map[string]string `json:"_links"` }
GetChannelVideosOutputType - contains a list of videos for the specified channel
type GetFeaturedStreamsInputType ¶
type GetFeaturedStreamsInputType struct { Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
GetFeaturedStreamsInputType - input parameters for the GetFeaturedStreams function
type GetFeaturedStreamsOutputType ¶
type GetFeaturedStreamsOutputType struct { Featured []FeaturedType `json:"featured"` Links map[string]string `json:"_links"` }
GetFeaturedStreamsOutputType - contains a list of featured streams
type GetIngestsOutputType ¶
type GetIngestsOutputType struct { Ingests []IngestType `json:"ingests"` Links map[string]string `json:"_links"` }
GetIngestsOutputType - contains an array of ingest types
type GetStreamByChannelInputType ¶
type GetStreamByChannelInputType struct {
Channel string `url:"channel"`
}
GetStreamByChannelInputType - specifies the channel for the GetStreamByChannel function
type GetStreamByChannelOutputType ¶
type GetStreamByChannelOutputType struct { Stream StreamType `json:"stream"` Links map[string]string `json:"_links"` }
GetStreamByChannelOutputType - response for the GetStreamByChannel function
type GetStreamsInputType ¶
type GetStreamsInputType struct { Game string `url:"game,omitempty"` Channel string `url:"channel,omitempty"` Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` ClientID string `url:"client_id,omitempty"` StreamType string `url:"stream_type,omitempty"` Language string `url:"language,omitempty"` }
GetStreamsInputType - request paramaters for the GetStream function
type GetStreamsOutputType ¶
type GetStreamsOutputType struct { Total int `json:"_total"` Streams []StreamType `json:"streams"` Links map[string]string `json:"_links"` }
GetStreamsOutputType - response for the GetStream function
type GetStreamsSummaryInputType ¶
type GetStreamsSummaryInputType struct {
Game string `url:"game,omitempty"`
}
GetStreamsSummaryInputType - contains the game to scope the query to
type GetStreamsSummaryOutputType ¶
type GetStreamsSummaryOutputType struct { Viewers int `json:"viewers"` Links map[string]string `json:"_links"` Channels int `json:"channels"` }
GetStreamsSummaryOutputType - response object describing the summary of a game
type GetTeamInputType ¶
type GetTeamInputType struct {
Team string
}
GetTeamInputType - specifies the team name
type GetTopGamesInputType ¶
type GetTopGamesInputType struct { Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
GetTopGamesInputType - request type for GetTopGames
type GetTopGamesOutputType ¶
type GetTopGamesOutputType struct { Links map[string]string `json:"_links"` Total int `json:"_total"` Top []Game `json:"top"` }
GetTopGamesOutputType - response type containing an array of games
type GetTopVideosInputType ¶
type GetTopVideosInputType struct { Game string `url:"game,omitempty"` Period string `url:"period,omitempty"` Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
GetTopVideosInputType - request paramaters for the GetTopVideos function
type GetTopVideosOutputType ¶
type GetTopVideosOutputType struct { Videos []VideoType `json:"videos"` Links map[string]string `json:"_links"` }
GetTopVideosOutputType - contains a list of top videos
type GetUserFollowsChannelInputType ¶
GetUserFollowsChannelInputType - request type container user and channel
type GetUserFollowsChannelOutputType ¶
type GetUserFollowsChannelOutputType struct { Follows bool CreatedAt string `json:"created_at"` Notifications bool `json:"notifications"` Channel ChannelType `json:"channel"` Links map[string]string `json:"_links"` }
GetUserFollowsChannelOutputType - response type container wether a user follows the spcified channel
type GetUserFollowsInputType ¶
type GetUserFollowsInputType struct { User string Limit int `url:"limit,omitempty"` Direction string `url:"direction,omitempty"` SortyBy string `url:"sortby,omitempty"` }
GetUserFollowsInputType - request type for querying what channels a user follows
type GetUserFollowsOutputType ¶
type GetUserFollowsOutputType struct { Total int `json:"_total"` Cursor string `json:"_cursor"` Follows []FollowsChannelType `json:"follows"` Links map[string]string `json:"_links"` }
GetUserFollowsOutputType - response type containing channels a user follows
type IngestType ¶
type IngestType struct { Name string `json:"name"` Default bool `json:"default"` ID int `json:"_id"` URLTemplate string `json:"url_template"` Availability float64 `json:"availability"` }
IngestType - type described ingest endpoints for twitch
type NewSessionInput ¶
NewSessionInput - input struct for creating a new session
type SearchChannelsInputType ¶
type SearchChannelsInputType struct { Query string `url:"query,omitempty"` Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` }
SearchChannelsInputType - specifies the query parameters for a channel search
type SearchChannelsOutputType ¶
type SearchChannelsOutputType struct { Channels []ChannelType `json:"channels"` Total int `json:"_total"` Links map[string]string `json:"_links"` }
SearchChannelsOutputType - contains the results for a channel search
type SearchGamesInputType ¶
type SearchGamesInputType struct { Query string `url:"query,omitempty"` Type string `url:"type,omitempty"` Live bool `url:"live,omitempty"` }
SearchGamesInputType - specifies the query parameters for a game search
type SearchGamesOutputType ¶
type SearchGamesOutputType struct { Games []StreamType `json:"games"` Links map[string]string `json:"_links"` }
SearchGamesOutputType - contains the results for a game search
type SearchStreamsInputType ¶
type SearchStreamsInputType struct { Query string `url:"query,omitempty"` Limit int `url:"limit,omitempty"` Offset int `url:"offset,omitempty"` HLS bool `url:"hls,omitempty"` }
SearchStreamsInputType - specifies the query parameters for a stream search
type SearchStreamsOutputType ¶
type SearchStreamsOutputType struct { Streams []StreamType `json:"streams"` Total int `json:"_total"` Links map[string]string `json:"_links"` }
SearchStreamsOutputType - contains the results for a stream search
type Session ¶
Session represents a persistent connection to Twitch
func NewSession ¶
func NewSession(input NewSessionInput) (*Session, error)
NewSession creates and returns a new Twtich session
func (*Session) CheckClientID ¶
CheckClientID ensures that the client ID is correct. This is done by performing a get to the root of twitch and confirming that the response's identified field is true
func (*Session) GetAllTeams ¶
func (session *Session) GetAllTeams() (*GetAllTeamsOutputType, error)
GetAllTeams - returns all the teams on twitch
func (*Session) GetChannel ¶
func (session *Session) GetChannel(getChannelInputType *GetChannelInputType) (*GetChannelOutputType, error)
GetChannel - returns the specified channel
func (*Session) GetChannelFollows ¶
func (session *Session) GetChannelFollows(getChannelFollowsInputType *GetChannelFollowsInputType) (*GetChannelFollowsOutputType, error)
GetChannelFollows - returns the users who follow the specified channel
func (*Session) GetChannelTeams ¶
func (session *Session) GetChannelTeams(getChannelTeamsInputType *GetChannelTeamsInputType) (*GetChannelTeamsOutputType, error)
GetChannelTeams - - returns an array of the teams the specified channel belongs to
func (*Session) GetChannelVideos ¶
func (session *Session) GetChannelVideos(getChannelVideosInputType *GetChannelVideosInputType) (*GetChannelVideosOutputType, error)
GetChannelVideos - returns the videos for the specified channel
func (*Session) GetFeaturedStreams ¶
func (session *Session) GetFeaturedStreams(getFeaturedStreamsInputType *GetFeaturedStreamsInputType) (*GetFeaturedStreamsOutputType, error)
GetFeaturedStreams - returns the featured streams
func (*Session) GetIngests ¶
func (session *Session) GetIngests() (*GetIngestsOutputType, error)
GetIngests - returns the ingest endpoints available for twitch
func (*Session) GetStream ¶
func (session *Session) GetStream(getStreamsInputType *GetStreamsInputType) (*GetStreamsOutputType, error)
GetStream - returns the streams matching the input parameters
func (*Session) GetStreamByChannel ¶
func (session *Session) GetStreamByChannel(getStreamByChannelInputType *GetStreamByChannelInputType) (*GetStreamByChannelOutputType, error)
GetStreamByChannel - returns the current stream for a channel
func (*Session) GetStreamsSummary ¶
func (session *Session) GetStreamsSummary(getStreamsSummaryInputType *GetStreamsSummaryInputType) (*GetStreamsSummaryOutputType, error)
GetStreamsSummary - returns the summary of a game on twitch
func (*Session) GetTeam ¶
func (session *Session) GetTeam(getTeamInputType *GetTeamInputType) (*GetTeamOutputType, error)
GetTeam - returns the specified team
func (*Session) GetTopGames ¶
func (session *Session) GetTopGames(getTopeGamesInputType *GetTopGamesInputType) (*GetTopGamesOutputType, error)
GetTopGames - returns the top games at the time of request on twitch
func (*Session) GetTopVideos ¶
func (session *Session) GetTopVideos(getTopVideosInputType *GetTopVideosInputType) (*GetTopVideosOutputType, error)
GetTopVideos - returns the top videos for a specified game
func (*Session) GetUserFollows ¶
func (session *Session) GetUserFollows(getUserFollowsInputType *GetUserFollowsInputType) (*GetUserFollowsOutputType, error)
GetUserFollows - returns the channels that a specified user follows
func (*Session) GetUserFollowsChannel ¶
func (session *Session) GetUserFollowsChannel(getUserFollowsChannelInputType *GetUserFollowsChannelInputType) (*GetUserFollowsChannelOutputType, error)
GetUserFollowsChannel - returns wether a user follows the specified channel
func (*Session) SearchChannels ¶
func (session *Session) SearchChannels(searchChannelsInputType *SearchChannelsInputType) (*SearchChannelsOutputType, error)
SearchChannels - returns channels matching the query
func (*Session) SearchGames ¶
func (session *Session) SearchGames(searchGamesInputType *SearchGamesInputType) (*SearchGamesOutputType, error)
SearchGames - returns games matching the query
func (*Session) SearchStreams ¶
func (session *Session) SearchStreams(searchStreamsInputType *SearchStreamsInputType) (*SearchStreamsOutputType, error)
SearchStreams - returns streams matching the query
type StreamType ¶
type StreamType struct { Game string `json:"game"` Viewers int `json:"viewers"` AverageFPS float32 `json:"average_fps"` Delay int `json:"delay"` VideoHeight int `json:"video_height"` IsPlaylist bool `json:"is_playlist"` CreatedAt string `json:"created_at"` ID int `json:"_id"` Channel ChannelType `json:"channel"` Preview map[string]string `json:"preview"` Links map[string]string `json:"_links"` }
StreamType - describes a stream
type TeamType ¶
type TeamType struct { ID int `json:"_id"` Name string `json:"name"` Info string `json:"info"` DisplayName string `json:"display_name"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` Logo string `json:"logo"` Banner string `json:"banner"` Background string `json:"background"` Links map[string]string `json:"_links"` }
TeamType - describes a team on twitch
type UserType ¶
type UserType struct { Type string `json:"type"` Bio string `json:"bio"` Logo string `json:"logo"` DisplayName string `json:"display_name"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` ID int `json:"_id"` Name string `json:"name"` Links map[string]string `json:"_links"` }
UserType - describes a user on twitch
type VideoType ¶
type VideoType struct { Title string `json:"title"` Description string `json:"description"` BroadcastID int64 `json:"broadcast_id"` Status string `json:"status"` ID string `json:"_id"` TagList string `json:"tag_list"` RecordedAt string `json:"recorded_at"` Game interface{} `json:"game"` Length int `json:"length"` Preview string `json:"preview"` URL string `json:"url"` Views int `json:"views"` BroadcastType string `json:"broadcast_type"` Links map[string]string `json:"_links"` Channel struct { Name string `json:"name"` DisplayName string `json:"display_name"` } `json:"channel"` }
VideoType - describes a saved or highlighted video on twitch