private static void ParseUserProtections(HtmlNode userProtectionsNode, UserProfile user, ProfileParseConfig config) { var userProtectionsArray = new[] { userProtectionsNode }; var head = config.HeadGetter(userProtectionsArray).Single(); user.HeadGear = ParseGear(head, config); var clothes = config.ClothesGetter(userProtectionsArray).Single(); user.ClothesGear = ParseGear(clothes, config); var shoes = config.ShoesGetter(userProtectionsArray).Single(); user.ShoesGear = ParseGear(shoes, config); }
private static void ParseUserMain(HtmlNode userMainNode, UserProfile user, ProfileParseConfig config) { var userMainArray = new[] { userMainNode }; var userInfo = config.UserInfoGetter(userMainArray).Single(); var userInfoArray = new[] { userInfo }; var miiImageUri = config.MiiImageUriGetter(userInfoArray).Single(); user.MiiImageUri = new Uri(miiImageUri); user.Name = ConvertEntity(config.MiiNameGetter(userInfoArray).Single()); var rank = config.RankGetter(userInfoArray).Single(); user.Rank = Convert.ToByte(rank); user.UdemaeAsString = config.UdemaeGetter(userInfoArray).Single(); var weaponImage = config.WeaponImageGetter(userMainArray).Single(); var weaponImageUris = ParseImage(weaponImage, config); user.WeaponImageUri = weaponImageUris.Item1; user.WeaponRetinaImageUri = weaponImageUris.Item2; }
private static UserProfile ParseProfile(string htmlData, ProfileParseConfig config) { var doc = new HtmlDocument(); doc.Load(new StringReader(htmlData)); var xpathConfig = config; var content = xpathConfig.ContentRootGetter(new[] { doc.DocumentNode }).Single(); var infoMessage = xpathConfig.InfoMessageGetter(new[] { content }).SingleOrDefault(); if (infoMessage != null) throw new SplatoonClientException(infoMessage.InnerText); var equipDetail = xpathConfig.EquipDetailGetter(new[] { content }).Single(); var user = new UserProfile(); { var userMain = xpathConfig.UserMainGetter(new[] { equipDetail }).Single(); ParseUserMain(userMain, user, xpathConfig); } { var userProtections = xpathConfig.UserProtectionsGetter(new[] { equipDetail }).Single(); ParseUserProtections(userProtections, user, xpathConfig); } ParsePaintedRank(content, user, config); return user; }
private static void ParsePaintedRank(HtmlNode content, UserProfile user, ProfileParseConfig config) { var contentArray = new[] { content }; var paintedRankNodes = config.PaintedRankGetter(contentArray); foreach (var paintedRankNode in paintedRankNodes) { var paintedRankNodeArray = new[] { paintedRankNode }; var imageNode = config.PaintedWeaponImageGetter(paintedRankNodeArray).Single(); var imageUris = ParseImage(imageNode, config); var pointText = config.PaintedPointGetter(paintedRankNodeArray).Single(); var point = Convert.ToUInt32(pointText); user._PaintedRank.Add(new PaintedRank(imageUris.Item1, imageUris.Item2, point)); } }