Example #1
0
        private void ParseCurrentLives()
        {
            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var respone = wb.DownloadString($"{url}/su/live/popular");
            var parser  = new HtmlParser();
            var doc     = parser.Parse(respone);

            var mainContainer = doc.GetElementById("container_AVAILABLE");

            foreach (IElement child in mainContainer.Children)
            {
                if (child.ChildElementCount < 2)
                {
                    continue;
                }

                foreach (IElement liga in child.Children[1].Children)
                {
                    if (liga.ChildElementCount == 0)
                    {
                        continue;
                    }
                    if (liga.Children[1].ChildElementCount == 0)
                    {
                        continue;
                    }

                    foreach (IElement ev in liga.Children[1].Children)
                    {
                        string[] teams;
                        SiteRow  rw = new SiteRow();
                        rw.Site = ParserType.Marafon;
                        try
                        {
                            rw.Sport  = child.Children[0].TextContent.Trim();
                            rw.Groupe = liga.Children[0].TextContent.Trim();
                            rw.Match  = ev.Children[2].TextContent.Replace(" @ ", " - ").Trim();
                            teams     = rw.Match.Replace(" - ", "|").Split('|');
                            if (teams.Length != 2)
                            {
                                continue;
                            }
                            rw.TeamName = teams[0];
                        }
                        catch
                        {
                            continue;
                        }

                        _rezult.Add(rw);

                        var rw1 = rw.Clone();
                        rw1.TeamName = teams[1];
                        _rezult.Add(rw1);
                    }
                }
            }
        }
        public static void SendMessage(SiteRow row)
        {
            try
            {
                MailMessage mail = new MailMessage();
                mail.From = new System.Net.Mail.MailAddress("*****@*****.**");

                // The important part -- configuring the SMTP client
                SmtpClient smtp = new SmtpClient();
                smtp.Port                  = 587;
                smtp.EnableSsl             = true;
                smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = new NetworkCredential(mail.From.Address, "comapare92");
                smtp.Host                  = "smtp.outlook.com";

                //recipient address
                mail.To.Add(new MailAddress(row.Email));

                //Formatted mail body
                mail.IsBodyHtml = true;
                string st = CompareStringDiffPlex.Compare(row.PreHTML, row.PostHTML);

                mail.Body = st;
                smtp.Send(mail);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
                                  ex.ToString());
            }
        }
Example #3
0
 internal static void LottoDs_addRow(SiteRow row)
 {
     if (_DSSiteData.Site.FindByUrl(row.Url) == null)
     {
         _DSSiteData.Site.AddSiteRow(row);
         DsSiteSave();
         DsSiteLoad();
     }
 }
 static public void FromInputSiteToRow(SiteInputMapping elem, ref SiteRow row)
 {
     row.Url    = elem.Url;
     row.Email  = elem.Email;
     row.Ore    = elem.Ore;
     row.Tag    = elem.Tag;
     row.Active = (byte)(elem.Active ? 1 : 0);
     row.State  = false;
 }
Example #5
0
        //gestione job
        private static void AddSchedule(SiteRow row)
        {
            var r = new Registry();

            _ = r.Schedule(async() =>
                           await InteractiveDB.AddUpdateSiteAsync(row)
                           ).WithName(row.Url)
                .ToRunNow()
#if DEBUG
                .AndEvery(5)
                .Minutes();
 public SiteMapping(SiteRow tablotto)
 {
     Url      = tablotto.Url;
     State    = tablotto.IsStateNull() ? false : tablotto.State;
     PreHtml  = tablotto.IsPreHTMLNull() ? "" : tablotto.PreHTML;
     PostHTML = tablotto.IsPostHTMLNull() ? "" : tablotto.PostHTML;
     Email    = tablotto.IsEmailNull() ? "*****@*****.**" : tablotto.Email;
     Ore      = tablotto.Ore;
     Tag      = tablotto.IsTagNull() ? "" : tablotto.Tag;
     Active   = tablotto.IsActiveNull() ? false : tablotto.Active == 1;
 }
Example #7
0
        //Site
        internal static SiteRow DsSiteData_newRow(SiteInputMapping elem)
        {
            SiteRow rows = _DSSiteData.Site.FindByUrl(elem.Url);

            if (rows != null)
            {
                return(rows);
            }
            rows = DsSiteData_newRow();
            FromInputSiteToRow(elem, ref rows);
            return(rows);
        }  //Site
Example #8
0
        }  //Site

        internal static SiteRow DsSiteData_newRow(string Url)
        {
            SiteRow rows = _DSSiteData.Site.FindByUrl(Url);

            if (rows != null)
            {
                return(rows);
            }
            else
            {
                return(DsSiteData_newRow());
            }
        }
        private List <SiteRow> ParsePage(string link, string Groupe)
        {
            List <SiteRow> rezult = new List <SiteRow>();

            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var          respone = wb.DownloadString("https://olimp.com/" + link);
            HtmlDocument doc     = new HtmlDocument();

            doc.LoadHtml(respone);

            var trs = doc.DocumentNode.SelectNodes("//tr[@class=\"hi\"]");

            if (trs == null)
            {
                //если нету в этой части ставок
                return(new List <SiteRow>());
            }
            foreach (var tr in trs)
            {
                if (tr.ChildNodes[3].Attributes["width"] == null)
                {
                    continue;
                }

                SiteRow sr = new SiteRow();
                sr.TimeStart = DateTime.Parse(tr.ChildNodes[1].InnerText);
                sr.Groupe    = Groupe;
                sr.Site      = Shared.Enums.ParserType.Olimp;


                string[] teams = tr.ChildNodes[3].InnerText.Trim().Replace(" - ", "|").Split('|');
                if (teams.Length != 2)
                {
                    continue;
                }
                sr.TeamName = teams[0].Trim();

                rezult.Add(sr);

                var sr1 = sr.Clone();
                sr1.TeamName = teams[1].Trim();

                rezult.Add(sr1);
            }


            return(rezult);
        }
Example #10
0
 public static bool AddSite(SiteInputMapping elem)
 {
     try
     {
         SiteRow row = DbManagement.DsSiteData_newRow(elem);
         DbManagement.LottoDs_addRow(row);
         DbManagement.SiteAllRow();
         return(true);
     }
     catch (Exception EX)
     {
         throw EX;
     }
 }
Example #11
0
        private void ImportData()
        {
            if (!File.Exists("bd.data"))
            {
                return;
            }

            List <UnicData> db         = UnicData.Load("bd.data");
            List <UnicData> rezultList = new List <UnicData>();
            List <string>   filesData  = new List <string>()
            {
                "Fonbet.data",
                "Marafon.data",
                "Olimp.data",
                "Zenit.data"
            };

            foreach (string fileName in filesData)
            {
                List <SiteRow> data = SiteRow.Load(fileName);
                foreach (SiteRow siteRow in data)
                {
                    UnicData rez = FindData(siteRow.TeamName, db);
                    if (rez != null)
                    {
                        var      team2 = siteRow.Match.Replace(siteRow.TeamName, "").Replace(" - ", "").Trim();
                        UnicData rez2  = FindData(siteRow.TeamName, db);
                        if (rez2 != null)
                        {
                            rezultList.Add(rez);
                        }
                    }
                }
            }

            rezultList = rezultList.OrderBy(x => x.Id).ToList();
            rezultList = ToUnic(rezultList);

            UnicData.Save("bd_Import.data", rezultList);
            Loger.Add($"База для импорта готова. В ней {rezultList.Count} записей");
        }
        private void LoadData()
        {
            try
            {
                FonbetData    = SiteRow.Load("Fonbet.data");
                OlimpData     = SiteRow.Load("Olimp.data");
                MarafonData   = SiteRow.Load("Marafon.data");
                ZenitData     = SiteRow.Load("Zenit.data");
                PariMatchData = SiteRow.Load("PariMatch.data");
                Base          = new ObservableCollection <UnicData>(UnicData.Load("bd.data").OrderBy(x => x.Id));
            }
            catch
            {
                Base = new ObservableCollection <UnicData>();
            }

            Base.CollectionChanged += Base_CollectionChanged;

            if (Base.Count != 0)
            {
                foreach (UnicData key in Base)
                {
                    foreach (SiteRow t in FonbetData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in OlimpData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in MarafonData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in ZenitData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in PariMatchData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }
                }
            }

            Fonbet    = new ObservableCollection <SiteRow>(FonbetData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Olimp     = new ObservableCollection <SiteRow>(OlimpData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Marafon   = new ObservableCollection <SiteRow>(MarafonData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Zenit     = new ObservableCollection <SiteRow>(ZenitData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            PariMatch = new ObservableCollection <SiteRow>(PariMatchData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
        }
Example #13
0
 public SiteRowChangeEvent(SiteRow row, global::System.Data.DataRowAction action)
 {
     this.eventRow    = row;
     this.eventAction = action;
 }
        public List <SiteRow> ParseAnonsLive()
        {
            var rezult = new List <SiteRow>();

            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var          respone = wb.DownloadString($"{url}/betting");
            HtmlDocument doc     = new HtmlDocument();

            doc.LoadHtml(respone);
            var rows = doc.DocumentNode.SelectNodes("//tr").Where(x => x.Id != null && x.Id.Contains("t") && x.Id.ToString().Count() <= 4).ToList();

            foreach (var row in rows)
            {
                int i = 3;
                var x = row.ChildNodes[1].ChildNodes.Count;
                if (x != 5)
                {
                    i = 5;
                }


                var rw = new SiteRow();
                rw.Site  = Shared.Enums.ParserType.Olimp;
                rw.Sport = row.ChildNodes[1].ChildNodes[3].InnerText.Split('.').First().Trim();
                var teams = row.ChildNodes[1].ChildNodes[3].InnerText.Replace(rw.Sport + ". ", "").Replace(" - ", "|").Split('|');
                rw.TimeStart = DateTime.Parse(row.ChildNodes[1].ChildNodes[8].ChildNodes[0].InnerText.Replace("Начало ", "").Trim());
                rw.TeamName  = teams[0];
                rw.Groupe    = "";

                rw.Match = $"{rw.TeamName} - {teams[1]}";
                rezult.Add(rw);

                var rw1 = rw.Clone();
                rw1.TeamName = teams[1];
                rezult.Add(rw1);
            }

            //Получаем Live
            var uri = new Uri(url).Host;

            respone = wb.DownloadString($"http://olimpapi.cc/api/v3/app_api_index.php?action=slice&live=1&time_shift=0&lang_id=0&platforma=site-api&_=0");

            var json = JObject.Parse(respone);

            if (json["data"] != null)
            {
                foreach (JToken token in json["data"])
                {
                    if (token["cn"].ToString().Contains("Статистика"))
                    {
                        continue;
                    }

                    foreach (JToken ev in token["it"])
                    {
                        var rw = new SiteRow();
                        rw.Site      = Shared.Enums.ParserType.Olimp;
                        rw.Sport     = token["sn"].ToString();
                        rw.Groupe    = "";
                        rw.TeamName  = ev["c1"].ToString();
                        rw.Match     = ev["n"].ToString();
                        rw.TimeStart = UnixTimeStampToDateTime(Convert.ToDouble(ev["t"])).AddHours(3);
                        rezult.Add(rw);
                        var rw1 = rw.Clone();
                        rw1.TeamName = ev["c2"].ToString();

                        rezult.Add(rw1);
                    }
                }
            }

            return(rezult);
        }
Example #15
0
        public static async Task <bool> AddUpdateSiteAsync(SiteRow row)
        {
            try
            {
                //      return true;
                if (row.Active == 0)
                {
                    return(false);
                }
                if (String.IsNullOrEmpty(row.Url))
                {
                    return(false);
                }
                if (row.Url.ToLower().CompareTo(@"https://acpol2.army.mil/vacancy/vacancy_list.asp") == 0)
                {
                    Console.WriteLine("CARICO " + row.Url);
                    var ris = await SendRequestAsync(row.Url, "POST", new Dictionary <string, string> {
                        { "FormAction2", "2" }
                    });

                    if (row.IsPreHTMLNull() || row.PreHTML == String.Empty)
                    {
                        row.PreHTML = ElaboraCampDearby(ris);
                    }
                    else
                    {
                        row.PostHTML = row.PreHTML;
                        row.PreHTML  = ElaboraCampDearby(ris);
                    }
                    row.State = (row.PostHTML == row.PreHTML || row.PostHTML != string.Empty);
                }
                else
                {
                    Console.WriteLine("CARICO " + row.Url);
                    var ris = await SendRequestAsync(row.Url, "GET", new Dictionary <string, string> {
                        { "FormAction2", "2" }
                    });

                    if (row.IsPreHTMLNull() || row.PreHTML == String.Empty)
                    {
                        row.PreHTML = ElaboraByTag(ris, row.Tag);
                    }
                    else
                    {
                        row.PostHTML = row.PreHTML;
                        row.PreHTML  = ElaboraByTag(ris, row.Tag);
                        if (row.PostHTML != row.PreHTML)
                        {
                            //send mail
                            Mail.SendMessage(row);
                        }
                    }
                }
                DsSiteSave();
                return(true);
            }
            catch (Exception EX)
            {
                Console.WriteLine(EX.ToString());
                return(false);
            }
        }
        public List <SiteRow> ParseAnonsLive()
        {
            var       rezultList = new List <SiteRow>();
            WebClient wb         = new WebClient();

            wb.Encoding = Encoding.GetEncoding(1251);
            var response = wb.DownloadString($"{_url}/live.html");
            var parser   = new HtmlParser();

            IHtmlDocument document = parser.Parse(response);

            var table = document.GetElementById("sheduled");

            if (table == null)
            {
                throw new ArgumentException("Нет таблицы с прелайвом");
            }

            foreach (var key in table.Children[1].Children[0].Children)
            {
                if (key.ClassName.StartsWith("sport"))
                {
                    var sport = key.Children[0].TextContent;

                    foreach (var item in key.Children[1].Children)
                    {
                        if (string.IsNullOrWhiteSpace(item.Id))
                        {
                            continue;
                        }

                        var liga = item.PreviousSibling.TextContent;

                        foreach (var ev in item.Children)
                        {
                            var sr = new SiteRow();
                            sr.Sport  = sport;
                            sr.Groupe = liga;
                            sr.Site   = Shared.Enums.ParserType.PariMatch;

                            int day = Int32.Parse(ev.Attributes["data-date"].Value);
                            var dt  = DateTime.Now;
                            if (dt.Day > day)
                            {
                                dt = dt.AddMonths(1);
                            }

                            sr.TimeStart = DateTime.Parse(day + "/" + dt.Date.Month + "/" + dt.Date.Year + " " + ev.LastElementChild.Children[0].Children[0].TextContent).AddHours(1);


                            sr.Match = ev.LastElementChild.Children[0].Children[1].TextContent;

                            if (sr.Match.Contains("угловые") || sr.Match.Contains("карточки"))
                            {
                                continue;
                            }
                            var teams = sr.Match.Replace(" - ", "|").Split('|');
                            sr.TeamName = teams[0];
                            rezultList.Add(sr);

                            var sr1 = sr.Clone();
                            sr1.TeamName = teams[1];
                            rezultList.Add(sr1);
                        }
                    }
                }
            }

            return(rezultList);
        }
        public List <SiteRow> ParseAnonsLive()
        {
            List <SiteRow> rezult = new List <SiteRow>();

            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var          response = wb.DownloadString(url + "/live");
            HtmlDocument doc      = new HtmlDocument();

            doc.LoadHtml(response);

            var table = doc.DocumentNode.SelectSingleNode("//table[@class=\"live-index-schedule-table\"]");

            if (table == null)
            {
                throw new ArgumentNullException($"{typeof(Zenit)}: Ошибка получения таблицы с Анонсом.");
            }

            var rows = table.FirstChild.ChildNodes.Where(x => x.Name == "tr").ToList();

            for (int i = 0; i < rows.Count; i++)
            {
                string ligaName  = rows[i].InnerText.Trim();
                string SportName = ligaName.Split('.').First();
                ligaName = ligaName.Replace(SportName + ".", "");
                while (true)
                {
                    if (i == rows.Count - 1)
                    {
                        break;
                    }
                    i++;
                    if (rows[i].Attributes["class"].Value == "live-index-schedule-row")
                    {
                        i--;
                        break; // вываливаемся из while
                    }

                    SiteRow sr = new SiteRow();
                    sr.Sport     = SportName;
                    sr.Groupe    = ligaName;
                    sr.Match     = rows[i].ChildNodes[3].InnerText;
                    sr.TimeStart = DateTime.Parse(rows[i].ChildNodes[1].InnerText.Replace(" ", "/2017 "));
                    sr.Site      = Shared.Enums.ParserType.Zenit;

                    string[] teams = sr.Match.Replace(" - ", "|").Split('|');
                    sr.TeamName = teams[0];
                    rezult.Add(sr);

                    var sr1 = sr.Clone();

                    sr1.TeamName = teams[1];
                    rezult.Add(sr1);
                }
            }

            var uri = new Uri(url).Host;

            response = wb.DownloadString($"https://m.{uri}/mbzenit/ajax/live/livedata?mob-all-live");
            var json = JObject.Parse(response);

            if (json["result"]?["games"] != null)
            {
                foreach (JToken jToken in json["result"]["games"])
                {
                    SiteRow sr   = new SiteRow();
                    var     liga =
                        json["result"]["league"].FirstOrDefault(
                            x => x.First["id"].ToString() == jToken.First["lid"].ToString());

                    var sport =
                        json["result"]["sport"].FirstOrDefault(
                            x => x.First["id"].ToString() == liga.First["sid"]?.ToString());

                    sr.Sport = sport.First["name"].ToString().Replace("Он-лайн. ", "");
                    if (string.IsNullOrWhiteSpace(sr.Sport))
                    {
                        sr.Sport = "Nan";
                    }
                    sr.Groupe    = liga.First["name"].ToString();
                    sr.Match     = $"{jToken.First["c1"]} - {jToken.First["c2"]}";
                    sr.TimeStart = UnixTimeStampToDateTime(Convert.ToDouble(jToken.First["time"])).AddHours(3);
                    sr.Site      = Shared.Enums.ParserType.Zenit;
                    sr.TeamName  = jToken.First["c1"].ToString();
                    rezult.Add(sr);

                    var sr1 = sr.Clone();
                    sr1.TeamName = jToken.First["c2"].ToString();
                    rezult.Add(sr1);
                }
            }

            return(rezult);
        }
        public List <SiteRow> ParseAnonsLive()
        {
            string adress = GetApiAdress();

            WebClient wb = new GZipWebClient();

            wb.Encoding = Encoding.UTF8;
            var respone = wb.DownloadString($"https:{adress}/line/currentLine/ru/");

            var json = JObject.Parse(respone);

            var rezult = new List <SiteRow>();
            var events = json["events"].Where(x => x["level"].ToString() == "1").ToList();

            foreach (var ev in events)
            {
                if (ev["state"]?["willBeLive"]?.ToString() == "True")
                {
                }
                else
                {
                    continue;
                }
                SiteRow rw = new SiteRow();
                rw.Site      = ParserType.Fonbet;
                rw.TeamName  = ev["team1"].ToString();
                rw.TimeStart = UnixTimeStampToDateTime(SetDouble(ev["startTime"].ToString())).AddHours(3);
                var sport = json["sports"].Where(x => x["id"].ToString() == ev["sportId"].ToString()).ToList().First();
                rw.Groupe = sport["name"].ToString();

                rw.Sport = rw.Groupe.Split('.').First().Trim();
                rw.Match = $"{rw.TeamName} - {ev["team2"]}";

                rezult.Add(rw);

                var rw2 = rw.Clone();
                rw2.TeamName = ev["team2"].ToString();


                rezult.Add(rw2);
            }

            wb      = new GZipWebClient();
            respone = wb.DownloadString($"https:{adress}/live/currentLine/ru/");
            json    = JObject.Parse(respone);
            events  = json["events"].Where(x => x["level"].ToString() == "1").ToList();
            foreach (JToken ev in events)
            {
                SiteRow rw = new SiteRow();
                rw.Site      = ParserType.Fonbet;
                rw.TeamName  = ev["team1"].ToString();
                rw.TimeStart = UnixTimeStampToDateTime(SetDouble(ev["startTime"].ToString())).AddHours(3);
                var sport = json["sports"].Where(x => x["id"].ToString() == ev["sportId"].ToString()).ToList().First();
                rw.Groupe = sport["name"].ToString();

                rw.Sport = rw.Groupe.Split('.').First().Trim();
                rw.Match = $"{rw.TeamName} - {ev["team2"]}";

                rezult.Add(rw);

                var rw2 = rw.Clone();
                rw2.TeamName = ev["team2"].ToString();


                rezult.Add(rw2);
            }


            rezult = rezult.OrderBy(x => x.TimeStart).ToList();
            return(rezult);
        }
Example #19
0
        private List <SiteRow> parsePage(string link)
        {
            var rezult = new List <SiteRow>();

            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var          respone = wb.DownloadString(link);
            HtmlDocument doc     = new HtmlDocument();

            doc.LoadHtml(respone);

            var name_node = doc.DocumentNode.SelectSingleNode("//a[@class=\"sport-category-label\"]");

            var blocks = doc.DocumentNode.SelectNodes("//div[@class=\"category-container\"]").ToList();

            foreach (var block in blocks)
            {
                string groupe = block.ChildNodes[1].ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText.Trim();

                var teams = block.ChildNodes[3].ChildNodes[3].ChildNodes[1].ChildNodes;

                foreach (var row in teams)
                {
                    if (row.Name == "tbody" && row.Attributes["data-event-treeid"] != null)
                    {
                        var     current = row.ChildNodes[1].ChildNodes[1].ChildNodes[1].ChildNodes;
                        SiteRow rw      = new SiteRow();
                        rw.Sport  = name_node.InnerText.Trim();
                        rw.Groupe = groupe;
                        rw.Site   = Shared.Enums.ParserType.Marafon;
                        var dt = current[1].ChildNodes[3].InnerText.Trim();
                        if (dt.Contains("ноя"))
                        {
                            dt = dt.Replace(" ноя", ".11.2016");
                        }
                        else if (dt.Contains("дек"))
                        {
                            dt = dt.Replace(" дек", ".12.2016");
                        }
                        else if (dt.Contains("янв"))
                        {
                            dt = dt.Replace(" янв ", ".01.");
                        }
                        else if (dt.Contains("фев"))
                        {
                            dt = dt.Replace(" фев ", ".01.");
                        }
                        else
                        {
                        }
                        rw.TimeStart = DateTime.Parse(dt);
                        rw.TeamName  = current[1].ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText.Trim();

                        rezult.Add(rw);

                        var rw1 = rw.Clone();
                        rw1.TeamName = current[3].ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText.Trim();
                        rezult.Add(rw1);
                    }
                }
            }

            return(rezult);
        }
Example #20
0
        public List <SiteRow> ParseAnonsLive(DateTime date)
        {
            var rezult = new List <SiteRow>();

            WebClient wb = new WebClient();

            wb.Encoding = Encoding.UTF8;
            var uri      = $"{url}/su/live/announces?form_name=form&calendar=" + date.ToString("dd.MM.yyyy") + "&announce_sort=BY_TIME&sport_select=ALL&pageAction=default";
            var response = wb.DownloadString(uri);
            var json     = JArray.Parse(response);

            HtmlDocument doc = new HtmlDocument();

            if (json.First["content"] == null)
            {
                return(new List <SiteRow>());
            }
            doc.LoadHtml(json.First["content"].ToString());

            var nodes = doc.DocumentNode.SelectNodes("//tr[@class=\"announce\"]");

            foreach (var key in nodes)
            {
                var t = key.ChildNodes[1].ChildNodes[1].ChildNodes;

                var rw = new SiteRow();
                var dt = t[1].InnerText.Trim();
                if (dt.Contains("ноя"))
                {
                    dt = dt.Replace(" ноя", ".11.2017 ");
                }
                else if (dt.Contains("дек"))
                {
                    dt = dt.Replace(" дек", ".12.2017 ");
                }
                else if (dt.Contains("янв"))
                {
                    dt = dt.Replace(" янв ", ".01.2017 ");
                }
                else if (dt.Contains("фев"))
                {
                    dt = dt.Replace(" фев ", ".02.2017 ");
                }
                else if (dt.Contains("мар"))
                {
                    dt = dt.Replace(" мар ", ".03.2017 ");
                }
                else if (dt.Contains("апр"))
                {
                    dt = dt.Replace(" апр ", ".04.2017 ");
                }
                else if (dt.Contains("май"))
                {
                    dt = dt.Replace(" май ", ".05.2017 ");
                }
                else
                {
                }
                rw.TimeStart = DateTime.Parse(dt);

                rw.Site  = Shared.Enums.ParserType.Marafon;
                rw.Sport = t[3].InnerText.Split('.').First().Trim();
                var teams = t[3].ChildNodes[1].InnerText.Replace("&nbsp;", "").Replace(" - ", "|").Split('|');

                if (teams.Count() != 2)
                {
                    teams = t[3].ChildNodes[1].InnerText.Replace("&nbsp;", "").Replace(" @ ", "|").Split('|');
                }
                if (teams.Length != 2)
                {
                    continue;
                }

                rw.Groupe   = t[3].ChildNodes[0].InnerText.Replace(rw.Sport + ". ", "").Trim();
                rw.TeamName = teams[0];

                rw.Match = $"{rw.TeamName} - {teams[1]}";

                rezult.Add(rw);

                var rw1 = rw.Clone();
                rw1.TeamName = teams[1];
                rezult.Add(rw1);
            }


            return(rezult);
        }
Example #21
0
        private void LoadAsync()
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
#if !DEBUG
            try
            {
#endif

            Marafon betm = new Marafon(_urls[0]);

            List <SiteRow> sm = betm.ParseAnonsLive();
            DateTime ser      = DateTime.UtcNow;
            if (ser.AddHours(3).Day != ser.Day)
            {
                List <SiteRow> s1 = betm.ParseAnonsLive(DateTime.Now.AddDays(-1));
                sm.AddRange(s1);
            }

            SiteRow.Save("Marafon.data", sm);
            Loger.Add($"Marafon загружен. количество: {sm.Count}");
#if !DEBUG
        }

        catch (Exception ex)
        {
            Loger.Add($"При загрузке данных произошла ошибка: {ex.Message}");
        }


        try
        {
#endif
            Fonbet         betf = new Fonbet(_urls[1]);
            List <SiteRow> sf   = betf.ParseAnonsLive();
            SiteRow.Save("Fonbet.data", sf);
            Loger.Add($"Fonbet загружен. количество: {sf.Count}");
#if !DEBUG
        }
        catch (Exception ex)
        {
            Loger.Add($"При загрузке данных произошла ошибка: {ex.Message}");
        }

        try
        {
#endif
            Olimp          beto = new Olimp(_urls[2]);
            List <SiteRow> so   = beto.ParseAnonsLive();
            SiteRow.Save("Olimp.data", so);
            Loger.Add($"Olimp загружен. количество: {so.Count}");
#if !DEBUG
        }
        catch (Exception ex)
        {
            Loger.Add($"При загрузке данных произошла ошибка: {ex.Message}");
        }
#endif
            try
            {
                Zenit          bet = new Zenit(_urls[3]);
                List <SiteRow> s   = bet.ParseAnonsLive();
                SiteRow.Save("Zenit.data", s);
                Loger.Add($"Zenit загружен. количество: {s.Count}");
            }
            catch (Exception ex)
            {
                Loger.Add($"При загрузке данных произошла ошибка: {ex.Message}");
            }

            try
            {
                PariMatch      bet = new PariMatch(_urls[4]);
                List <SiteRow> s   = bet.ParseAnonsLive();
                SiteRow.Save("PariMatch.data", s);
                Loger.Add($"PariMatch загружен. количество: {s.Count}");
            }
            catch (Exception ex)
            {
                Loger.Add($"При загрузке данных произошла ошибка: {ex.Message}");
            }



            IsLoad = false;
        }