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 }