public (DateTime?startTime, double timeDisc) GetDateTime(OlimpEvent ev) { string monthComponent = ev.StartDate.Substring(0, ev.StartDate.IndexOf(" ")); string timeComponent = ev.StartDate.Substring(ev.StartDate.LastIndexOf(" ") + 1); string day = ev.StartDate.Substring(ev.StartDate.IndexOf(" ") + 1, 2); TimeSpan span = TimeSpan.ParseExact(timeComponent, "c", null); DateTime dateTime; if (monthComponent == "Dec") { dateTime = new DateTime(2019, 12, Int32.Parse(day), span.Hours, span.Minutes, span.Seconds); double timeDisc = ((DateTime)dateTime - (DateTime)DateTime.Now).TotalMinutes; return(dateTime, timeDisc); } else { return(null, 0); } }
public (List <Total> home, List <Total> away) GetTeamTotals(HtmlNode node, OlimpEvent olimpEvent) { List <Total> home = new List <Total>(); List <Total> away = new List <Total>(); try { foreach (HtmlNode htmlNode in node.ChildNodes) { if (htmlNode.OriginalName == "div" && this.GetAtributeValueByName(htmlNode, "id").StartsWith(olimpEvent.EventId) == true) { HtmlNodeCollection htmlNodes = htmlNode.ChildNodes; foreach (HtmlNode nodeLineWrapper in htmlNodes) { Total teamTotal = new Total(); if (nodeLineWrapper.OriginalName == "div" && this.GetAtributeValueByName(nodeLineWrapper, "class") == "lineWrapper") { var result = this._htmlOddsParse.GetLineTwo(nodeLineWrapper); if (result.name1 != null) { decimal totalValue = this.GetMarketValue(result.name1); teamTotal.Points = totalValue; teamTotal.Under = result.k1; } if (result.name2 != null) { decimal totalValue = this.GetMarketValue(result.name2); teamTotal.Points = totalValue; teamTotal.Over = result.k2; } if ((result.name1 != null && result.name1.Contains(olimpEvent.HomeTeam)) || (result.name2 != null && result.name2.Contains(olimpEvent.HomeTeam))) { home.Add(teamTotal); } else { away.Add(teamTotal); } } } } } return(home, away); } catch (Exception ex) { return(null, null); } }
public async Task <List <OlimpEvent> > GetEventsByLeague(OlimpLeague league) { List <OlimpEvent> events = new List <OlimpEvent>(); string url = league.Href; HtmlNode documentNode = this.GetDocumentNodeByUrl(url); if (documentNode != null) { try { HtmlNode eventsDiv = documentNode.QuerySelector(".to_header"); HtmlNodeCollection nodes = eventsDiv.ChildNodes; for (int i = 0; i < nodes.Count; i++) { if (nodes[i].OriginalName == "div" && this.GetAtributeValueByName(nodes[i], "data-id") == league.Id) { HtmlNode chListNode = nodes[i + 2]; foreach (HtmlNode node in chListNode.ChildNodes) { if (node.OriginalName == "div" && this.GetAtributeValueByName(node, "class") == "ch_line") { OlimpEvent olimpEvent = this.GetOlimpEventByNode(node); olimpEvent.LeagueName = league.Name; olimpEvent.Dateadded = DateTime.Now.ToString(); events.Add(olimpEvent); } } } } } catch (Exception ex) { return(null); } } else { return(null); } return(events); }
private OlimpEvent GetOlimpEventByNode(HtmlNode eventInformContainer) { OlimpEvent olimpEvent = new OlimpEvent(); olimpEvent.EventId = this.GetAtributeValueByName(eventInformContainer, "data-id"); olimpEvent.StartDate = eventInformContainer.ChildNodes[1].ChildNodes[1].ChildNodes[1].InnerText.Replace(" ", " "); string teams = eventInformContainer.ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText; var eventTeams = this.GetHomeAwayTeams(teams); olimpEvent.HomeTeam = eventTeams.HomeTeam; olimpEvent.AwayTeam = eventTeams.AwayTeam; return(olimpEvent); }
public async Task <OlimpOddEvent> GetOddsByEventId(OlimpEvent olimpEvent) { string url = "/en/sports/match/" + olimpEvent.EventId; HtmlNode documentNode = this.GetDocumentNodeByUrl(url); if (documentNode != null) { HtmlNode oddsContainer = documentNode.QuerySelector(".coef"); MoneyLine moneyLine = new MoneyLine(); DoubleChance doubleChance = new DoubleChance(); List <Total> totals = new List <Total>(); List <Handicap> handicaps = new List <Handicap>(); List <Total> homeTotals = new List <Total>(); List <Total> awayTotals = new List <Total>(); OlimpOddEvent olimpOddEvent = new OlimpOddEvent(); try { foreach (HtmlNode node in oddsContainer.ChildNodes) { if (node.OriginalName == "div" && this.GetAtributeValueByName(node, "class") == "") { foreach (HtmlNode htmlNode in node.ChildNodes) { if (htmlNode.OriginalName == "div" && this.GetAtributeValueByName(htmlNode, "class") == "livelineheader") { string type = this.GetMarketTypeByLiveheaderNode(htmlNode); if (type == "FULL TIME RESULT") { moneyLine = this.getMoneylineFoEvent(node, olimpEvent.EventId); } if (type == "DOUBLE CHANCE") { doubleChance = this.getDoubleChanceFoEvent(node, olimpEvent.EventId); } if (type == "TOTAL GOALS") { Total t = this.GetTotalForEvent(node, olimpEvent.EventId); if (t != null) { totals.Add(t); } } if (type == "ALTERNATIVE TOTAL GOALS") { List <Total> totals2 = this.GetTotalGoals(node, olimpEvent.EventId); if (totals2 != null) { totals.AddRange(totals2); } } if (type == "HANDICAP RESULT") { Handicap h = this.GetHandicap(node, olimpEvent.EventId); if (h != null) { handicaps.Add(h); } } if (type == "ALTERNATIVE HANDICAP RESULT") { List <Handicap> hdps = this.GetHandicaps(node, olimpEvent.EventId); if (hdps != null) { handicaps.AddRange(hdps); } } if (type == "TEAM TOTAL") { var result = this.GetTeamTotals(node, olimpEvent); if (result.home != null) { awayTotals = result.away; homeTotals = result.home; } } } } } } } catch (Exception ex) { return(null); } olimpOddEvent.moneyLine = moneyLine; olimpOddEvent.doubleChance = doubleChance; olimpOddEvent.Totals = totals; olimpOddEvent.Handicaps = handicaps; olimpOddEvent.AwayTotals = awayTotals; olimpOddEvent.HomeTotals = homeTotals; olimpOddEvent.EventId = olimpEvent.EventId; olimpOddEvent.HomeTeam = olimpEvent.HomeTeam; olimpOddEvent.AwayTeam = olimpEvent.AwayTeam; olimpOddEvent.LeagueName = olimpEvent.LeagueName; olimpOddEvent.StartDate = olimpEvent.StartDate; olimpOddEvent.DateAdded = DateTime.Now.ToString(); return(olimpOddEvent); } else { return(null); } }