public static void Start() { using (WebClient client = new WebClient()) { string d = client.DownloadString("http://www.bbc.co.uk/sport/football/premier-league/fixtures"); CQ dom = d; // string table = dom[".fixtures-table"].Text(); //Console.WriteLine(table); var tables = dom[".table-stats"];// Take(10).ToList(); //Take the next 10 fixtures, that's the upcoming gameweek int gameCount = 0; foreach (var table in tables) { CQ tableDOM = table.InnerHTML; string dateStr = tableDOM["caption:first"].Text(); if (dateStr.Contains("summary")) { continue; } dateStr = dateStr.Replace("This table charts the fixtures during ", ""); // Console.WriteLine(dateStr); int day = int.Parse(Regex.Replace(dateStr.Split(' ')[1], "[^0-9.]", "")); string month = dateStr.Split(' ')[2]; int year = int.Parse(dateStr.Split(' ')[3]); DateTime date = DateTime.Parse(day + "." + month + " " + year); // Console.WriteLine(day.ToString()); var games = tableDOM[".preview"].ToList(); // Console.WriteLine(games.Count + " games"); foreach (var game in games) { // Console.WriteLine(game.InnerHTML); CQ gameDOM = game.InnerHTML; string homeTeam = gameDOM[".team-home > a"].Text(); string awayTeam = gameDOM[".team-away > a"].Text(); string kickoff = gameDOM[".kickoff"].Html().Trim(); if (homeTeam != "") { ulong dateUnix = MersonAPI.Utility.DateTimeToUnixTimestamp(date); //17:00 int hour = int.Parse(kickoff.Split(':')[0]); int minute = int.Parse(kickoff.Split(':')[1]); dateUnix += (ulong)(hour * 60 * 60); dateUnix += (ulong)(minute * 60); ulong diff = (ulong)(MersonAPI.Utility.DateTimeToUnixTimestamp() - dateUnix); if (date.Month == 8 && date.Day < 19) { Console.WriteLine(" " + homeTeam + " vs " + awayTeam + " at " + kickoff + " -- " + hour + ":" + minute); Console.WriteLine("Kicked off " + diff + " seconds ago"); Console.WriteLine(date.ToString()); Console.WriteLine(date.Day + "/" + date.Month + "/" + date.Year); Console.WriteLine(MersonAPI.Utility.DateTimeToUnixTimestamp()); Console.WriteLine(dateUnix); } Fixture fixture = MainPlugin.Fixtures.Where(f => f.ID == homeTeam + awayTeam).FirstOrDefault(); if (fixture == null) { fixture = new Fixture() { HomeTeam = homeTeam, AwayTeam = awayTeam, ID = homeTeam + awayTeam, Date = dateUnix, }; MainPlugin.Fixtures.Add(fixture); } else { fixture.Date = dateUnix; } gameCount += 1; if (gameCount >= 10) { // return; } } else { // Console.WriteLine("What is this? ~~~"); // Console.WriteLine(game.InnerHTML); // Console.WriteLine(" ^^^^^^^^^^"); } } } } }
public static Prediction GetUsersFixturePrediction(Fixture fixture, string username) { return Predictions.Where(p => p.OwnerID == username && p.FixtureID == fixture.ID).FirstOrDefault(); }
public static void Start() { using (WebClient client = new WebClient()) { string d = client.DownloadString("http://www.bbc.co.uk/sport/football/premier-league/results"); CQ dom = d; var tables = dom[".table-stats"].ToList(); foreach (var table in tables) { CQ tableDOM = table.InnerHTML; string dateStr = tableDOM["caption:first"].Text(); if (dateStr.Contains("summary")) { continue; } dateStr = dateStr.Replace("This table charts the fixtures during ", ""); Console.WriteLine(dateStr); int day = int.Parse(Regex.Replace(dateStr.Split(' ')[1], "[^0-9.]", "")); string month = dateStr.Split(' ')[2]; int year = int.Parse(dateStr.Split(' ')[3]); DateTime date = DateTime.Parse(day + "." + month + " " + year); date = date.AddHours(15); Console.WriteLine(date.ToString()); var reports = tableDOM[".report"]; foreach (var report in reports) { CQ reportDOM = report.InnerHTML; string homeTeam = reportDOM[".team-home > a"].Text(); string awayTeam = reportDOM[".team-away > a"].Text(); if (homeTeam != "") { //1-2 string scoreStr = reportDOM[".score > abbr"].Text(); int homeScore = int.Parse(scoreStr.Split('-')[0]); int awayScore = int.Parse(scoreStr.Split('-')[1]); Console.WriteLine(" " + homeTeam + " " + homeScore + "-" + awayScore + " " + awayTeam);// + " at " + kickoff); Fixture fixture = MainPlugin.Fixtures.Where(f => f.ID == homeTeam + awayTeam).FirstOrDefault(); if (fixture == null) { fixture = new Fixture() { HomeTeam = homeTeam, AwayTeam = awayTeam, ID = homeTeam + awayTeam, Date = MersonAPI.Utility.DateTimeToUnixTimestamp(date) }; MainPlugin.Fixtures.Add(fixture); Console.WriteLine("Added new fixture"); } fixture.ResultHomeScore = homeScore; fixture.ResultAwayScore = awayScore; } else { } Console.WriteLine("----------------------------------------------------"); } } } }