private static string GetWinRate(string htmlDotabuff)
        {
            string winRate = "N/A";
            string pattern = "<dd>(.*?)</dd>";
            var result = CustomWebClient.GetContents(htmlDotabuff, pattern);
            
            for (var i = 0; i < result.Count; i++)
            {
                if (result[i].Contains("%"))
                {
                    winRate = result[i].Replace("<dd>", "").Replace("</dd>", "");
                    break;
                }
            }

            return winRate;
        }
        private static string GetGrate(string htmlDotabuff)
        {
            
            string grate = "N/A";
            string pattern = "<div class=\"grade\"(.*?)>(.*?)</div>";
            var result = CustomWebClient.GetContents(htmlDotabuff, pattern);
            
            for (var i = 0; i < result.Count; i++)
            {
                if (result[i].StartsWith("<div class=\"grade\"") && result[i].EndsWith("</div>"))
                {
                    char symbol = result[i][result[i].Length - 7];
                    grate = (symbol == '-' || symbol == '+') ? result[i].Substring(result[i].Length-8, 2) : symbol.ToString();
                    break;
                }
            }

            return grate;
        }
        private static string GetRole(string htmlDotabuff)
        {
            
            string role = "N/A";
            string pattern = "<div class=\"sector role index-0\"(.*?)>(.*?)</div>";
            var result = CustomWebClient.GetContents(htmlDotabuff, pattern);
            
            for (var i = 0; i < result.Count; i++)
            {
                pattern = "</i>(.*?)</div>";
                var result2 = CustomWebClient.GetContents(result[i], pattern);
                for (var i2 = 0; i2 < result2.Count; i2++)
                {
                    if (result2[i2].StartsWith("</i> ") && result2[i2].EndsWith("</div>"))
                    {
                        role = result2[i2].Replace("</i> ", "").Replace("</div>", "");
                        return role;
                    }
                }
            }

            return role;
        }
        private static void SendRequestFromDotaBuff(uint steamid, Action<DotaBuffPlayer> callback)
        {
            string result = string.Empty;
            using (CustomWebClient webClient = new CustomWebClient())
            {
                try
                {
                    result = webClient.DownloadString("https://ru.dotabuff.com/players/" + steamid);
                }
                catch (Exception ex)
                {
                    Game.PrintMessage("[TheRyuzaki]: Exception from request dotabuff: " + ex.Message);
                }
            }

            var player = new DotaBuffPlayer
            {
                SteamID = steamid,
                Role = GetRole(result),
                Grade = GetGrate(result),
                WinRate = GetWinRate(result)
            };
            callback?.Invoke(player);
        }