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("Данные успешно обновленны!"); }
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); }