Ejemplo n.º 1
0
        private int ParseDetail(PlayerExport player, IElement mainContent, int i, IElement childElement)
        {
            if (childElement.ClassList.Contains("se1"))
            {
                string   title        = childElement.InnerHtml;
                IElement valueElement = mainContent.Children[++i];
                if (valueElement.ClassList.Contains("se2"))
                {
                    string value = valueElement.Text();

                    TrySetField <int>(title, value, "ID hráče", val => player.Info.Id              = val);
                    TrySetField <string>(title, value, "Jméno", val => player.Info.Name            = val);
                    TrySetField <string>(title, value, "Národnost", val => player.Info.Nationality = val);
                    TrySetField <int>(title, value, "Věk", val => player.Info.Age = val);
                    TrySetField <string>(title, value, "Pozice", val =>
                    {
                        if (val.StartsWith("Brankář", StringComparison.InvariantCultureIgnoreCase))
                        {
                            player.Info.Position = PlayerPosition.Goalkeeper;
                        }
                        else if (val.StartsWith("Obránce", StringComparison.InvariantCultureIgnoreCase))
                        {
                            player.Info.Position = PlayerPosition.Defender;
                        }
                        else if (val.StartsWith("Křídlo", StringComparison.InvariantCultureIgnoreCase))
                        {
                            player.Info.Position = PlayerPosition.Winger;
                        }
                        else if (val.StartsWith("Střední záložník", StringComparison.InvariantCultureIgnoreCase))
                        {
                            player.Info.Position = PlayerPosition.Midfielder;
                        }
                        else if (val.StartsWith("Útočník", StringComparison.InvariantCultureIgnoreCase))
                        {
                            player.Info.Position = PlayerPosition.Forwarder;
                        }
                    });
                    TrySetField <int>(title, value, "Výška", val => player.Info.Height        = val);
                    TrySetField <decimal>(title, value, "Cena", val => player.Info.Price      = val);
                    TrySetField <decimal>(title, value, "Plat", val => player.Info.Salary     = val);
                    TrySetField <int>(title, value, "Potenciál", val => player.Info.Potential = val);
                    TrySetField <string>(title, value, "V klubu od", val =>
                    {
                        string[] parts       = val.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        player.Info.SignedAt = DateTime.Parse(parts[0]);
                        player.Info.IsHome   = parts.Length == 2;
                    });
                }
            }

            return(i);
        }
Ejemplo n.º 2
0
        public PlayerExport ParsePlayerDetail(string htmlBody)
        {
            var           parser   = new AngleSharp.Html.Parser.HtmlParser();
            IHtmlDocument document = parser.ParseDocument(htmlBody);

            PlayerExport player = new PlayerExport();

            IElement mainContent = document.QuerySelector(".main_left");

            for (int i = 0; i < mainContent.Children.Length; i++)
            {
                IElement childElement = mainContent.Children[i];
                i = ParseDetail(player, mainContent, i, childElement);
                i = ParseQuality(player.Quality, mainContent, i, childElement);
                ParseStats(player, childElement);
            }

            return(player);
        }
Ejemplo n.º 3
0
 private void ParseStats(PlayerExport player, IElement childElement)
 {
     if (childElement.TagName.Equals("table", StringComparison.InvariantCultureIgnoreCase))
     {
         foreach (IElement rowElement in childElement.QuerySelectorAll("tr"))
         {
             string title = rowElement.Children[0].Text();
             if (title == "Liga")
             {
                 SetStatsGroup(player.CurrentSeasonStats.League, rowElement.Children[1].Text());
                 SetStatsGroup(player.PreviousSeasonStats.League, rowElement.Children[2].Text());
                 SetStatsGroup(player.SumStats.League, rowElement.Children[3].Text());
             }
             else if (title == "Pohár")
             {
                 SetStatsGroup(player.CurrentSeasonStats.Cup, rowElement.Children[1].Text());
                 SetStatsGroup(player.PreviousSeasonStats.Cup, rowElement.Children[2].Text());
                 SetStatsGroup(player.SumStats.Cup, rowElement.Children[3].Text());
             }
             else if (title == "Přátelské zápasy")
             {
                 SetStatsGroup(player.CurrentSeasonStats.Friendly, rowElement.Children[1].Text());
                 SetStatsGroup(player.PreviousSeasonStats.Friendly, rowElement.Children[2].Text());
                 SetStatsGroup(player.SumStats.Friendly, rowElement.Children[3].Text());
             }
             else if (title == "Mezinárodní poháry")
             {
                 SetStatsGroup(player.CurrentSeasonStats.InternationalCups, rowElement.Children[1].Text());
                 SetStatsGroup(player.PreviousSeasonStats.InternationalCups, rowElement.Children[2].Text());
                 SetStatsGroup(player.SumStats.InternationalCups, rowElement.Children[3].Text());
             }
             else if (title == "Reprezentace")
             {
                 SetStatsGroup(player.CurrentSeasonStats.NationalTeam, rowElement.Children[1].Text());
                 SetStatsGroup(player.PreviousSeasonStats.NationalTeam, rowElement.Children[2].Text());
                 SetStatsGroup(player.SumStats.NationalTeam, rowElement.Children[3].Text());
             }
         }
     }
 }