public HandicapBet(HandicapBetType handicapBetType, double HandicapValue, Time Time, double Odds, MatchName MatchName, string BetUrl, string JavaScriptSelectorCode, Sport Sport, Bookmaker Bookmaker) { this.Odds = Odds; this.HandicapBetType = handicapBetType; this.HandicapValue = HandicapValue; this.Time = Time; this.MatchName = MatchName; this.BetUrl = BetUrl; this.JavaScriptSelectorCode = JavaScriptSelectorCode; this.Sport = Sport; this.Bookmaker = Bookmaker; }
public override int GetHashCode() { return(HandicapBetType.GetHashCode() ^ Time.GetHashCode() ^ MatchName.GetHashCode()); }
public override void ParseMatchPageHtml(HtmlDocument doc, string url) { MatchName matchName = GetMatchName(doc); if (matchName == null) { return; } Sport sport = GetSport(doc); if (sport == Sport.NotSupported) { return; } string BetUrl = url; Bet result = null; HtmlNodeCollection maindocument = doc.DocumentNode.SelectNodes("//span[@class='bet_sel koefs']"); if (maindocument == null) { return; } foreach (var node in maindocument) { result = null; try { string[] betParams = node.Attributes["data-select"].Value.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries); HtmlNodeCollection coeffNodes = node.SelectNodes(".//b"); if (coeffNodes == null) { continue; } string coeff = coeffNodes.First().InnerText; double odds = Convert.ToDouble(coeff.Replace(".", ",")); Time time = GetTime(betParams); if (time == null) { continue; } JavaSelectCode = "(function() { var elements = Array.from(document.getElementsByClassName('bet_sel koefs')); elements.forEach(function(item, i, arr) {" + "if(item.getAttribute('data-select') == '" + node.Attributes["data-select"].Value + "') item.click(); }); })();"; if (betParams[1] == "1") // 1, X, 2, 1X, 12, x2 { if (betParams[2] == "1" || betParams[2] == "10" || betParams[2] == "13" || betParams[2] == "16") // 1, X, 2 { if (betParams[4] == "1") { result = new ResultBet(ResultBetType.First, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[4] == "2") { result = new ResultBet(ResultBetType.Draw, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[4] == "3") { result = new ResultBet(ResultBetType.Second, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } } if (betParams[2] == "2" || betParams[2] == "9" || betParams[2] == "22") // 1, 2 all game { if (betParams[4] == "1") { result = new ResultBet(ResultBetType.P1, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[4] == "2") { result = new ResultBet(ResultBetType.P2, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } } if (betParams[2] == "3") // 1x, 12, x2 all game { if (betParams[4] == "1") { result = new ResultBet(ResultBetType.FirstOrDraw, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[4] == "2") { result = new ResultBet(ResultBetType.FirstOrSecond, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[4] == "3") { result = new ResultBet(ResultBetType.SecondOrDraw, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } } } if (betParams[1] == "2") // handicap, under { double param = Convert.ToDouble(betParams[3].Replace(".", ",")); if (betParams[2] == "4" || betParams[2] == "168" || betParams[2] == "11" || betParams[2] == "14" || betParams[2] == "17") // f1/f2 { HandicapBetType type = betParams[4] == "1" ? HandicapBetType.F1 : HandicapBetType.F2; result = new HandicapBet(type, param, time, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[2] == "5" || betParams[2] == "12" || betParams[2] == "15" || betParams[2] == "18") // under { result = new TotalBet(TotalBetType.Under, param, time, Team.All, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[2] == "7") //first team { result = new TotalBet(TotalBetType.Under, param, time, Team.First, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[2] == "8") //second team { result = new TotalBet(TotalBetType.Under, param, time, Team.Second, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } } if (betParams[1] == "3") // over { double param = Convert.ToDouble(betParams[3].Replace(".", ",")); if (betParams[2] == "5" || betParams[2] == "12" || betParams[2] == "15" || betParams[2] == "18") // over { result = new TotalBet(TotalBetType.Over, param, time, Team.All, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[2] == "7") //first team { result = new TotalBet(TotalBetType.Over, param, time, Team.First, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } if (betParams[2] == "8") //second team { result = new TotalBet(TotalBetType.Over, param, time, Team.Second, odds, matchName, BetUrl, JavaSelectCode, sport, Maker); } } if (result != null) { int index = BetList.IndexOf(result); if (index != -1) { BetList[index].ChangeOdds(result.Odds); } else { BetList.Add(result); } } } catch (Exception e) { Console.Write(e.Message); } } System.Threading.Thread.Sleep(50); }