1st
This commit is contained in:
212
types.go
Executable file
212
types.go
Executable file
@@ -0,0 +1,212 @@
|
||||
package onexbet
|
||||
|
||||
//"time"
|
||||
|
||||
type OnexbetSport int
|
||||
|
||||
const (
|
||||
Football OnexbetSport = 1
|
||||
Handball OnexbetSport = 8
|
||||
Tennis OnexbetSport = 4
|
||||
|
||||
defaultPartnerID = "25"
|
||||
|
||||
liveSportURLPattern = "https://ua-1x-bet.com/LiveFeed/Get1x2_VZip?sports=%d&count=100&lng=en&mode=4&country=2&partner=25&getEmpty=true"
|
||||
|
||||
// Все лайв матчи
|
||||
liveURL = "https://ua-1x-bet.com/en/live/"
|
||||
|
||||
// https://ua-1x-bet.com/LiveFeed/GetGameZip?id=241215601&lng=en&cfview=0&isSubGames=true&GroupEvents=true&allEventsGroupSubGames=true&countevents=250&partner=25&marketType=1
|
||||
liveMatchURLPattern = "https://ua-1x-bet.com/LiveFeed/GetGameZip?id=%s&lng=en&cfview=0&isSubGames=true&GroupEvents=true&allEventsGroupSubGames=true&countevents=250&partner=25&marketType=1"
|
||||
|
||||
// Параметр - это поле SGI из LiveMatchURL
|
||||
// Старый URL
|
||||
//matchStatsURLPattern = "https://ua-1x-bet.com/SiteService/StatByStatGameId2?id=%s&ln=en&cfview=0"
|
||||
|
||||
// id, тот же что и для liveMatchURLPattern
|
||||
//liveMatchChronoPattern = "https://ua-1x-bet.com/LiveFeed/GetChronoOfPlay?id=%s&lng=en"
|
||||
|
||||
// gameId имеет вид "5d5447addc49007c51bd9359". Узнать можно из поля "SGI" в JSON по ссылке liveMatchURLPattern
|
||||
//liveMatchLineupsPattern = "https://ua-1x-bet.com/en/SiteService/LineUps?gameId=%s&ln=en"
|
||||
|
||||
// https://ua-1x-bet.com/LiveFeed/Web_SearchZip?text=leeds+united&limit=50&lng=en&mode=4&partner=25
|
||||
stdLiveSearchURL = "https://ua-1x-bet.com/LiveFeed/Web_SearchZip"
|
||||
|
||||
// https://ua-1x-bet.com/LineFeed/Web_SearchZip?text=leeds+united&limit=50&lng=en&mode=4&partner=25
|
||||
stdLineSearchURL = "https://ua-1x-bet.com/LineFeed/Web_SearchZip"
|
||||
|
||||
tennisLiveSearchURL = "https://lite.ua-1x-bet.com/service-api/LiveFeed/Web_SearchZip"
|
||||
tennisLineSearchURL = "https://lite.ua-1x-bet.com/service-api/LineFeed/Web_SearchZip"
|
||||
|
||||
//https://ua-1x-bet.com/SiteService/Game?gameId=60f319a7f75a663f692dc28b&ln=en&partner=25&geo=2
|
||||
matchStatsURLPattern = "https://ua-1x-bet.com/SiteService/Game?gameId=%s&ln=en&partner=25&geo=1"
|
||||
|
||||
// Mon Jan 2 15:04:05 -0700 MST 2006
|
||||
startDateLayout = "2006-01-02T15:04:05-07:00"
|
||||
|
||||
tennisMarketWinner = 1
|
||||
tennisMarketTotal = 17
|
||||
tennisMarketHandicap = 2
|
||||
|
||||
teamMarketWinner3Way = 1
|
||||
teamMarketTotal = 17
|
||||
teamMarketIndividualTotal1 = 15
|
||||
teamMarketIndividualTotal2 = 62
|
||||
|
||||
// Websocket message types
|
||||
WsMsgLiveMatches = "liveMatches"
|
||||
WsMsgTeamLiveMatchData = "teamLiveMatchData"
|
||||
WsMsgTennisLiveMatchData = "tennisLiveMatchData"
|
||||
|
||||
StatusMatchCompleted = 3
|
||||
StatusMatchInplay = 2
|
||||
StatusMatchWaiting = 1
|
||||
|
||||
TopicLive = "live"
|
||||
)
|
||||
|
||||
type WatchReq struct {
|
||||
SportID OnexbetSport
|
||||
MatchID string
|
||||
}
|
||||
|
||||
type LiveMatch struct {
|
||||
MatchID string `json:"matchID"`
|
||||
SportName string `json:"sportName"`
|
||||
ChampName string `json:"champName"`
|
||||
URL string `json:"url"`
|
||||
Home string `json:"home"`
|
||||
Away string `json:"away"`
|
||||
StartTime int64 `json:"startTime"`
|
||||
StatsMatchID string `json:"statsMatchID"`
|
||||
Score Score `json:"score"`
|
||||
ScoreByPeriods map[int]Score `json:"scoreByPeriods"`
|
||||
CurrentPeriod int `json:"currentPeriod"`
|
||||
}
|
||||
|
||||
type Score struct {
|
||||
Home int `json:"home"`
|
||||
Away int `json:"away"`
|
||||
}
|
||||
|
||||
type Period struct {
|
||||
PeriodNumber int `json:"periodNumber"` // 1 - 5
|
||||
Total Total `json:"total"`
|
||||
Handicap Handicap `json:"handicap"`
|
||||
}
|
||||
|
||||
/*
|
||||
type TennisLiveMatchData struct {
|
||||
MatchID string `json:"matchID"`
|
||||
Winner *Winner2Way `json:"winner"`
|
||||
Total Total `json:"total"`
|
||||
Sets []TennisSet `json:"sets"`
|
||||
// Текущий сет
|
||||
CurrentSetNumber int `json:"currentSetNumber"`
|
||||
// Счет по сетам, например 1-0 или 2-1
|
||||
SetScore Score `json:"setScore"`
|
||||
// ключ - номер сета, значение - счет по геймам внутри сета
|
||||
GameScore map[int]Score `json:"gameScore"`
|
||||
}
|
||||
*/
|
||||
|
||||
type TeamLiveMatchData struct {
|
||||
MatchID string `json:"matchID"`
|
||||
HomeAttacks int `json:"homeAttacks"`
|
||||
HomeDangerousAttacks int `json:"homeDangerousAttacks"`
|
||||
HomeShotsOnTarget int `json:"homeShotsOnTarget"`
|
||||
HomeShotsOffTarget int `json:"homeShotsOffTarget"`
|
||||
AwayAttacks int `json:"awayAttacks"`
|
||||
AwayDangerousAttacks int `json:"awayDangerousAttacks"`
|
||||
AwayShotsOnTarget int `json:"awayShotsOnTarget"`
|
||||
AwayShotsOffTarget int `json:"awayShotsOffTarget"`
|
||||
CurrentTime int `json:"currentTime"`
|
||||
HomeGoals int `json:"homeGoals"`
|
||||
AwayGoals int `json:"awayGoals"`
|
||||
Winner *Winner3Way `json:"winner"`
|
||||
Total Total `json:"total"`
|
||||
Handicap Handicap `json:"handicap"`
|
||||
IndividualTotalHome Total `json:"individualTotalHome"`
|
||||
IndividualTotalAway Total `json:"individualTotalAway"`
|
||||
H1 Half `json:"h1"` // 1st half
|
||||
// tennis
|
||||
Winner2Way *Winner2Way `json:"winner2way"`
|
||||
|
||||
// score
|
||||
Score Score `json:"score"`
|
||||
ScoreByPeriods map[int]Score `json:"scoreByPeriods"`
|
||||
CurrentPeriod int `json:"currentPeriod"`
|
||||
Periods map[int]Period `json:"periods"`
|
||||
}
|
||||
|
||||
// Бывают матчи, где перестают принимать ставки на один из исходов. Поэтому нужен флаг
|
||||
type Winner2Way struct {
|
||||
HasHome bool `json:"hasHome"`
|
||||
Home float64 `json:"home"`
|
||||
HasAway bool `json:"hasAway"`
|
||||
Away float64 `json:"away"`
|
||||
}
|
||||
|
||||
type Winner3Way struct {
|
||||
Home float64 `json:"home"`
|
||||
Draw float64 `json:"draw"`
|
||||
Away float64 `json:"away"`
|
||||
}
|
||||
|
||||
type Half struct {
|
||||
Total Total `json:"total"`
|
||||
IndividualTotalHome Total `json:"individualTotalHome"`
|
||||
IndividualTotalAway Total `json:"individualTotalAway"`
|
||||
}
|
||||
|
||||
type Total struct {
|
||||
Over []ParamOffer `json:"over"`
|
||||
Under []ParamOffer `json:"under"`
|
||||
}
|
||||
|
||||
type Handicap struct {
|
||||
Home []ParamOffer `json:"home"`
|
||||
Away []ParamOffer `json:"away"`
|
||||
}
|
||||
|
||||
type ParamOffer struct {
|
||||
Price float64 `json:"price"`
|
||||
Param string `json:"param"`
|
||||
ParamFloat float64 `json:"paramFloat"`
|
||||
}
|
||||
|
||||
type LiveMatchesMessage struct {
|
||||
SportID OnexbetSport `json:"sportID"`
|
||||
Matches []LiveMatch `json:"matches"`
|
||||
Watching []string `json:"watching"`
|
||||
}
|
||||
|
||||
/*
|
||||
type LiveMatchesUpdateMessage struct {
|
||||
RemovedMatchIDs []string `json:"removedMatchIDs"`
|
||||
AddedMatches []LiveMatch `json:"addedMatches"`
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
|
||||
type MatchCandidate struct {
|
||||
Sport string `json:"sport"`
|
||||
ChampName string `json:"champName"`
|
||||
Home string `json:"home"`
|
||||
Away string `json:"away"`
|
||||
StartTime int64 `json:"startTime"`
|
||||
MatchID string `json:"matchID"`
|
||||
}
|
||||
|
||||
type PeriodScore struct {
|
||||
HomePoints int `json:"homePoints"`
|
||||
AwayPoints int `json:"awayPoints"`
|
||||
}
|
||||
|
||||
type TeamMatchResult struct {
|
||||
Status int `json:"status"`
|
||||
HomePoints int `json:"homePoints"`
|
||||
AwayPoints int `json:"awayPoints"`
|
||||
ScoreByPeriods map[int]PeriodScore
|
||||
}
|
||||
Reference in New Issue
Block a user