private void UpdateBase()
        {
            OpenFileDialog dlg = new OpenFileDialog
            {
                Multiselect = false,
                Title       = "Укажите файл с базой",
                Filter      = "Файл базы данных(*.data) |*.data"
            };

            dlg.ShowDialog();
            if (String.IsNullOrEmpty(dlg.FileName))
            {
                return;
            }
            try
            {
                var bd = StaticData.Shared.Model.UnicData.Load(dlg.FileName);

                StaticData.Shared.Model.UnicData.Save("bd.data", bd);
                UnicDataDecorator.SetUpdateBase(bd);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Выбранный файл поврежден или содержит записей" + ex.Message);
                return;
            }


            MessageBox.Show("Данные успешно обновленны!");
        }
Exemple #2
0
        internal void ParseData(FonbetResponse data)
        {
            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }

            lock (_lockObj)
            {
                if (IsFirstLoad)
                {
                    LoadLink(data);
                }
                else
                {
                    if (FromVersion != data.FromVersion)
                    {
                        IsFirstLoad = true;
                        throw new ArgumentException($"Пришел не тот пакет обновления {FromVersion} != {data.FromVersion}");
                    }
                    UpdateLink(data);
                }
                _line.LastUpdate = DateTime.Now;
            }

            FromVersion = data.PacketVersion;
        }
        internal List <LinkData> GetLives()
        {
            var rezult = new List <LinkData>();

            if (_req == null)
            {
                _req = new HttpRequest();
                _req.CharacterSet = Encoding.UTF8;
                _req.UserAgent    =
                    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 OPR/41.0.2353.46";
                //if (UsingProxy)
                //    _req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy());
            }

            string respone = _req.Get($"{_url}/su/live/popular").ToString();
            var    pr      = new HtmlParser();
            var    doc     = pr.Parse(respone);
            var    lives   = doc.QuerySelectorAll("div.event-info");


            foreach (IElement element in lives)
            {
                var id       = element.Attributes["data-event-treeid"].Value;
                var linkdata = new LinkData();
                linkdata.Id = id;
                try
                {
                    linkdata.Teams = element.Children[2].TextContent.Replace(" @ ", " - ");
                    linkdata.Score = element.Children[element.ChildElementCount - 2].FirstElementChild.TextContent;
                    if (element.Children[element.ChildElementCount - 2].ChildElementCount == 2)
                    {
                        linkdata.TimeData = element.Children[element.ChildElementCount - 2].LastElementChild.TextContent;
                    }
                }
                catch (Exception e)
                {
                    continue;
                }

                rezult.Add(linkdata);
            }


            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }



            var dt = new List <LinkData>();

            foreach (LinkData linkData in rezult)
            {
                var teams = linkData.Teams.Replace(" - ", "|").Split('|');
                if (teams.Length != 2)
                {
                    continue;
                }
                linkData.Team1Id = _bd.GetNumber(teams[0]);
                if (linkData.Team1Id == -1)
                {
                    continue;
                }
                linkData.Team2Id = _bd.GetNumber(teams[1]);
                if (linkData.Team2Id == -1)
                {
                    dt.Add(linkData);
                }
            }

            Logger.AddLog($"Всего lives: {rezult.Count}. Из них отобранно {dt.Count}", Logger.LogTarget.Marafon);

            return(dt);
        }