43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package model
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
type (
|
|
TwitchOAuthToken struct {
|
|
AccessToken string
|
|
ExpiresAt time.Time
|
|
TokenType string
|
|
}
|
|
|
|
TwitchState struct {
|
|
Token *TwitchOAuthToken
|
|
}
|
|
|
|
TwitchStreamInfo 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 int `json:"viewer_count"`
|
|
StartedAt string `json:"started_at"`
|
|
Language string `json:"language"`
|
|
ThumbnailURL string `json:"thumbnail_url"`
|
|
TagIDs []string `json:"tag_ids"`
|
|
Tags []string `json:"tags"`
|
|
IsMature bool `json:"is_mature"`
|
|
}
|
|
)
|
|
|
|
func (info *TwitchStreamInfo) Thumbnail(width int, height int) string {
|
|
res := strings.Replace(info.ThumbnailURL, "{width}", fmt.Sprintf("%d", width), 1)
|
|
res = strings.Replace(res, "{height}", fmt.Sprintf("%d", height), 1)
|
|
return res
|
|
}
|