Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 public override int GetHashCode()
 {
     return(HandicapBetType.GetHashCode() ^ Time.GetHashCode() ^ MatchName.GetHashCode());
 }
Ejemplo n.º 3
0
        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);
        }