Files
onexbet/types.go
2026-07-21 03:55:57 +03:00

213 lines
6.9 KiB
Go
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}