Example #1
0
        protected override void CheckDict()
        {
            var hostsToDelete = new List <WebProxy>();

            Parallel.ForEach(ProxyList, (host, state) =>
            {
                try
                {
                    Console.WriteLine($"888sport check address {host.Address}");
                    using (var webClient = new Extensions.WebClientEx(host))
                    {
                        webClient.DownloadString("https://eu-offering.kambicdn.org/offering/v2018/888/listView/all/all/all/all/in-play.json?lang=en_GB&market=En");
                    }
                }
                catch (Exception e)
                {
                    hostsToDelete.Add(host);
                    Log.Info($"888sport delete address {host.Address} {host.Credentials.GetCredential(host.Address, "").UserName}  listToDelete {hostsToDelete.Count}");
                }
            });

            foreach (var host in hostsToDelete)
            {
                ProxyList.Remove(host);
            }
        }
Example #2
0
        protected override void CheckDict()
        {
            var hostsToDelete = new List <WebProxy>();

            Parallel.ForEach(ProxyList, (host, state) =>
            {
                try
                {
                    using (var webClient = new Extensions.WebClientEx(host))
                    {
                        Console.WriteLine($"Bwin Lines Check Proxy {host.Address}");
                        webClient.DownloadString(Host);
                    }
                }
                catch (Exception)
                {
                    Console.WriteLine($"Bwin Lines DELETE Proxy {host.Address}");
                    hostsToDelete.Add(host);
                }
            });

            foreach (var host in hostsToDelete)
            {
                ProxyList.Remove(host);
            }
        }
Example #3
0
        protected override LineDTO[] GetLiveLines()
        {
            try
            {
                var tempData = CachedArray.GetData();

                if (tempData.NeedUpdate)
                {
                    using (var wc = new Extensions.WebClientEx(ProxyList.PickRandom()))
                    {
                        wc.Encoding           = Encoding.Default;
                        wc.Headers["Referer"] = tempData.Referer;
                        tempData.Html         = wc.DownloadString(tempData.Url);
                    }
                }
                else
                {
                    tempData.NeedUpdate = true;
                }

                var converter = new ParimatchLineConverter();


                var lines = converter.Convert(tempData, Name);

                LastUpdatedDiff = DateTime.Now - LastUpdated;

                ConsoleExt.ConsoleWrite(Name, ProxyList.Count, lines.Length, new DateTime(LastUpdatedDiff.Ticks).ToString("mm:ss"));

                return(lines);
            }
            catch
            {
                return(new LineDTO[] { });
            }
        }
Example #4
0
        private TempData UpdateUrls(object data)
        {
            Func <string, string> load = x =>
            {
                using (var wc = new Extensions.WebClientEx(ProxyList.PickRandom()))
                {
                    wc.Headers["Upgrade-Insecure-Requests"] = "1";
                    wc.Headers["Referer"] = $"{Host}/en/live.html";
                    return(wc.DownloadString(x));
                }
            };

            var url = $"{Host}/en/live_as.html?curs=0&curName=$&shed=0";

            var html = load(url);

            var parser = new HtmlParser();
            var doc    = parser.Parse(html);
            var inputs = doc.QuerySelectorAll("input.ch_l");

            var values = inputs.Select(x => x.GetAttribute("value").ToInt()).ToList();

            var hl = string.Join(",", values);
            var he = string.Join(",", values.OrderBy(x => x));

            var tempData = new TempData
            {
                Referer = $"{Host}/en/bet.html?ARDisabled=on&hl={hl}"
            };

            tempData.Html       = load(tempData.Referer);
            tempData.NeedUpdate = false;
            tempData.Url        = $"{Host}/en/live_ar.html?ARDisabled=on&hl={hl}&he={he}&curs=0&curName=$";

            return(tempData);
        }
Example #5
0
        protected override void UpdateLiveLines()
        {
            try
            {
                var st = new Stopwatch();

                st.Start();

                var hostList = CookieDictionary.Select(c => c.Key).ToList();

                var lines = new List <LineDTO>();

                EventsList data;

                var randHost = hostList.PickRandom();

                using (var webClient = new Extensions.WebClientEx(randHost, CookieDictionary[randHost].GetData()))
                {
                    var d = webClient.DownloadString(Host + "bet-on-live-matches");

                    var f = eventsListRegex.Match(d).Groups["type"].Value;

                    data = JsonConvert.DeserializeObject <EventsList>(f);
                }

                var actualEvents = data.events.Where(e => e.open).ToList();

                Parallel.ForEach(actualEvents.ToList(), @event =>
                {
                    var task = Task.Factory.StartNew(() =>
                    {
                        var retry = 0;

                        while (retry < 3)
                        {
                            try
                            {
                                var proxy = hostList.PickRandom();

                                using (var webClient = new Extensions.WebClientEx(proxy, CookieDictionary[proxy].GetData()))
                                {
                                    var json = webClient.DownloadString(string.Format("{1}rest/betline/event/inplay?ctag=en-US&eventId={0}", @event.Id, Host));

                                    @event = JsonConvert.DeserializeObject <Event>(json);

                                    var converter = new LeonBetsLineConverter();

                                    var r = converter.Convert(@event, Name);

                                    lock (Lock) lines.AddRange(r);

                                    return;
                                }
                            }
                            catch (WebException)
                            {
                                retry++;
                            }
                            catch (JsonReaderException)
                            {
                                retry++;
                            }
                            catch (Exception e)
                            {
                                Log.Info("LeonBets error " + JsonConvert.SerializeObject(e));
                                retry = 3;
                            }
                        }
                    });

                    if (!task.Wait(10000))
                    {
                        Log.Info("Leonbets Task wait exception");
                    }
                });

                LastUpdatedDiff = DateTime.Now - LastUpdated;

                ConsoleExt.ConsoleWrite(Name, ProxyList.Count, lines.Count, new DateTime(LastUpdatedDiff.Ticks).ToString("mm:ss"));


                ActualLines = lines.ToArray();
            }
            catch (Exception e)
            {
                Log.Info($"ERROR {e.Message} {e.InnerException}");
                Console.WriteLine($"ERROR {e.Message} {e.InnerException}");
            }
        }
Example #6
0
        protected override void CheckDict()
        {
            var listToDelete = new List <WebProxy>();

            foreach (var host in ProxyList)
            {
                CookieDictionary.Add(host, new CachedArray <CookieContainer>(1000 * 3600 * 6, () =>
                {
                    try
                    {
                        CookieContainer cc;
                        using (var webClient = new GetWebClient(host))
                        {
                            var res = webClient.DownloadString($"{Host}");

                            var i = res.IndexOf("setCookie('", StringComparison.Ordinal);
                            var s = res.Substring(i, 75);

                            var cookieName  = s.Split('\'')[1];
                            var cookieValue = s.Split('\'')[3];

                            cc = webClient.CookieContainer;
                            cc.Add(new Cookie(cookieName, cookieValue, "/", Domain));
                        }

                        Console.WriteLine($"check address {host.Address}");

                        using (var webClient = new Extensions.WebClientEx(host, cc))
                        {
                            var f = webClient.DownloadString(Host);

                            if (!f.ContainsIgnoreCase("leonbets"))
                            {
                                throw new Exception();
                            }
                        }

                        return(cc);
                    }
                    catch (Exception e)
                    {
                        listToDelete.Add(host);
                    }

                    return(null);
                }));
            }

            //проверяем работу хоста
            Parallel.ForEach(ProxyList, host => CookieDictionary[host].GetData());

            //foreach (var webProxy in ProxyList)
            //{
            //    CookieDictionary[webProxy].GetData();
            //}

            foreach (var host in listToDelete)
            {
                CookieDictionary.Remove(host);
                ProxyList.Remove(host);
            }
        }
Example #7
0
        protected override void CheckDict()
        {
            var listToDelete = new List <WebProxy>();

            foreach (var host in ProxyList)
            {
                CookieDictionary.Add(host, new CachedArray <CookieContainer>(1000 * 3600 * 3, () =>
                {
                    try
                    {
                        var cc = new CookieContainer();

                        ConsoleExt.ConsoleWriteError($"Favbet check address {host.Address}");

                        cc.Add(PassCloudFlare(host));

                        using (var wc = new Extensions.WebClientEx(host, cc))
                        {
                            wc.Headers["User-Agent"] = GetWebClient.DefaultUserAgent;

                            wc.DownloadString(Host + "en/live/");

                            //var d = wc.ResponseHeaders["Set-Cookie"];

                            //foreach (var match in d.Split(',').Select(singleCookie => Regex.Match(singleCookie, "(.+?)=(.+?);")).Where(match => match.Captures.Count != 0))
                            //{
                            //    var name = match.Groups[1].ToString();
                            //    var value = match.Groups[2].ToString();
                            //    if (name == "PHPSESSID") cc.Add(new Cookie(name, value) { Domain = ProxyHelper.GetDomain(Host) });
                            //}

                            cc.Add(wc.CookieContainer.GetAllCookies());
                        }

                        return(cc);
                    }
                    catch (Exception e)
                    {
                        listToDelete.Add(host);
                        ConsoleExt.ConsoleWriteError($"Favbet delete address {host.Address} listToDelete {listToDelete.Count}");
                    }

                    return(null);
                }));
            }

            var tasks = ProxyList.AsParallel().Select(host => Task.Factory.StartNew(state => CookieDictionary[host].GetData(), host)).ToArray();

            //foreach (var host in ProxyList)
            //{
            //    CookieDictionary[host].GetData();
            //}

            Task.WaitAll(tasks);

            foreach (var host in listToDelete)
            {
                CookieDictionary.Remove(host);
                ProxyList.Remove(host);
            }
        }
Example #8
0
        protected override void UpdateLiveLines()
        {
            var randomProxy = ProxyList.PickRandom();

            var st = new Stopwatch();

            st.Start();

            try
            {
                var matchList = new List <long>();

                var cookies = CookieDictionary[randomProxy].GetData();

                using (var client = new Extensions.WebClientEx(randomProxy, cookies))
                {
                    client.Headers["X-Requested-With"] = "XMLHttpRequest";
                    client.Headers["Content-Type"]     = "application/x-www-form-urlencoded";
                    client.Headers["__VerfCode"]       = cookies.GetAllCookies()["VerfCode"].Value;

                    var response = client.UploadString($"{Host.Replace("www", "play")}OddsManager/Standard", "FixtureType=l&SportType=1&LDisplayMode=0&Scope=MainMarket&IsParlay=false");

                    var t = JsonConvert.DeserializeObject <MatchDataResult>(response);

                    foreach (var league in t.leagues)
                    {
                        //убираем запрещенные чемпионаты
                        if (league.LeagueName.ContainsIgnoreCase(LeagueStopWords.ToArray()))
                        {
                            continue;
                        }

                        matchList.AddRange(league.matches.Where(m => m.IsLive).Select(m => m.MatchId).ToList());
                    }
                }

                st.Stop();

                Log.Info("Dafabet after OddsManager/Standard request " + st.Elapsed);

                var tf = new List <long>();
                tf.AddRange(_linesDictionary.Where(lineDtose => !matchList.Contains(lineDtose.Key)).Select(l => l.Key));

                //удаляем устаревшие события
                foreach (var lineDtose in tf)
                {
                    _linesDictionary.Remove(lineDtose);
                }

                //добавляем новые события
                foreach (var matchId in matchList)
                {
                    if (_linesDictionary.ContainsKey(matchId))
                    {
                        continue;
                    }

                    _linesDictionary.Add(matchId, new EventUpdateObject(() =>
                    {
                        var random = ProxyList.PickRandom();
                        using (var cl = new Extensions.WebClientEx(random, CookieDictionary[randomProxy].GetData()))
                        {
                            cl.Headers["X-Requested-With"] = "XMLHttpRequest";
                            cl.Headers["Content-Type"]     = "application/x-www-form-urlencoded";
                            cl.Headers["__VerfCode"]       = cookies.GetAllCookies()["VerfCode"].Value;

                            var res       = cl.UploadString(new Uri($"{Host.Replace("www", "play")}OddsManager/Standard"), $"FixtureType=l&SportType=1&LDisplayMode=0&Scope=Match&IsParlay=false&MatchId={matchId}");
                            var converter = new DafabetConverter();



                            return(converter.Convert(res, Name).ToList());
                        }
                    }));
                }


                LastUpdatedDiff = DateTime.Now - LastUpdated;

                ConsoleExt.ConsoleWrite(Name, ProxyList.Count, ActualLines.Length, new DateTime(LastUpdatedDiff.Ticks).ToString("mm:ss"));

                //ActualLines = lines.ToArray();
            }
            catch (Exception e)
            {
                Log.Info($"ERROR Dafabet {e.Message} {e.StackTrace}");
            }
        }