コード例 #1
0
ファイル: ProfileParser.cs プロジェクト: moiph/Overwatch.Net
 internal async Task <Player> Parse(Player player, ProfileClient.ProfileRequestData pageData)
 {
     using (var doc = await _parser.ParseAsync(pageData.ReqContent))
     {
         player.ProfileUrl              = pageData.ReqUrl;
         player.CompetitiveRank         = CompetitiveRank(doc);
         player.CompetitiveRankImageUrl = CompetitiveRankImage(doc);
         player.PlayerLevel             = PlayerLevel(doc);
         player.ProfilePortraitUrl      = PortraitImage(doc);
         player.PlayerLevelImage        = PlayerLevelImage(doc);
         player.Platform         = pageData.PlayerPlatform;
         player.EndorsementLevel = EndorsementLevel(doc);
         player.Endorsements     = Endorsements(doc);
         player.PlayerId         = PlayerId(doc);
         player.Aliases          = Aliases(doc);
         if (IsPlayerProfilePrivate(doc))
         {
             player.IsProfilePrivate = true;
             return(player);
         }
         player.CompetitiveStats = Stats(doc, Mode.Competitive);
         player.CasualStats      = Stats(doc, Mode.Casual);
         player.Achievements     = Achievements(doc);
         return(player);
     }
 }
コード例 #2
0
        static ProfileParserTest()
        {
            var source = File.ReadAllText("TestSource.txt");
            var data   = new ProfileClient.ProfileRequestData("", source, Platform.Pc);
            var parser = new ProfileParser();

            _testPlayer = new Player();
            parser.Parse(_testPlayer, data).GetAwaiter().GetResult();
        }
コード例 #3
0
        public ProfileParserTest(ITestOutputHelper testOutputHelper)
        {
            _testOutputHelper = testOutputHelper;
            var source = File.ReadAllText("TestSource.txt");
            //var searchSource = File.ReadAllText("SearchTestSource.txt");
            var data   = new ProfileClient.ProfileRequestData("", source, Platform.Pc);
            var parser = new ProfileParser();

            _testPlayer = new Player();
            parser.Parse(_testPlayer, data).GetAwaiter().GetResult();
        }
コード例 #4
0
        internal async Task <Player> Parse(Player player, ProfileClient.ProfileRequestData pageData)
        {
            using (var doc = await _parser.ParseDocumentAsync(pageData.ReqContent))
            {
                //Checks if profile not found, site still returns 200 in this case
                if (doc.QuerySelector("h1.u-align-center")?.FirstChild?.TextContent.Equals("Profile Not Found") ?? false)
                {
                    return(null);
                }

                //Get user id from script at page
                player.PlayerId = PlayerId(doc);

                return(player.Validate());
            }
        }
コード例 #5
0
 internal static bool IsValidPlayerProfile(ProfileClient.ProfileRequestData pageData)
 {
     return(!pageData.ReqContent.Contains("Profile Not Found"));
 }