public List <RankUserModel> GetBigFans(string bjID) { var result = new List <RankUserModel>(); var url = $"http://live.afreecatv.com:8057/api/best_bj_action.php?szAction=GetBestBJDetail&szType=json&uid={bjID}&szBeforeCallBack=_bigfan&callback=_bigfan"; var bigFanString = GetUserRankHtml(bjID, url); bigFanString = bigFanString?.Replace("_bigfan(", "")?.Replace(")", "") ?? string.Empty; if (string.IsNullOrEmpty(bigFanString)) { return(result); } RankBigFan bigFan = null; try { bigFan = JsonConvert.DeserializeObject <RankBigFan>(bigFanString); } catch (Exception e) { string log = e.Message; return(result); } for (int Idx = 0; Idx < bigFan.Starballoon_top.Count; Idx++) { var userNick = bigFan.Starballoon_top[Idx].User_nick; if (userNick.Contains("#") && userNick.Contains(":3")) { userNick = userNick?.Replace(":3", "")?.Substring(1) ?? userNick; } var item = new RankUserModel() { BjID = bjID, UserID = bigFan.Starballoon_top[Idx].User_id, UserNick = userNick, BigFanRanking = Idx + 1 }; result.Add(item); } return(result); }
public void SetUserModel(string query, RankUserModel userModel) { var mysqlParams = new List <MysqlParam> { // 동작 구분 //new MysqlParam("@WorkingTag", MysqlDbType.VarChar, "AP"), // Bj 아이디 new MysqlParam("@BjID", MysqlDbType.VarChar, userModel.BjID), // Bj 닉네임 new MysqlParam("@BjNic", MysqlDbType.VarChar, userModel.BjNic), // 사용자 아이디 (사용자별 중복가능) new MysqlParam("@UserID", MysqlDbType.VarChar, userModel.UserID), // 사용자 닉네임 new MysqlParam("@UserNick", MysqlDbType.VarChar, userModel.UserNick), new MysqlParam("@HistoryDepth", MysqlDbType.Int16, userModel.HistoryDepth), // 빅팬 순위 new MysqlParam("@BigFanRanking", MysqlDbType.Int16, userModel.BigFanRanking), // 서포터 순위 new MysqlParam("@SupportRanking", MysqlDbType.Int16, userModel.SupportRanking), // 값 유효성 여부 -> 기본값 'N' //new MysqlParam("@Valid", MysqlDbType.VarChar, userModel.Valid), // 추가된 날짜 //new MysqlParam("@AddDate", MysqlDbType.Datetime, userModel.AddDate), }; ExecuteNonQuery(query, mysqlParams, System.Data.CommandType.Text); }
private UserModel RankUserModelToUserModel(RankUserModel rankUser, List <RankUserModel> allUserModels) { var userModel = new UserModel() { ID = rankUser.UserID, Nic = rankUser.UserNick, }; //var biz = new BizUserRank(); //var matchingUser = biz.GetAllRankUserModelsByUserID(rankUser.UserID); var matchingUser = allUserModels.FindAll(a => a.UserID == rankUser.UserID); int mainBigFanRanking = matchingUser?.OrderBy(m => m.BigFanRanking)?.FirstOrDefault()?.BigFanRanking ?? -1; if (mainBigFanRanking == 1) { // 1등 회장 userModel.Type = UserType.King; } else if (mainBigFanRanking >= 2 && mainBigFanRanking <= 5) { // 2~5등 userModel.Type = UserType.BigFan; } else if (mainBigFanRanking >= 6 && mainBigFanRanking <= 10) { // 6~10등 userModel.Type = UserType.BigFan; } else if (mainBigFanRanking >= 11 && mainBigFanRanking <= 20) { // 11~20등 userModel.Type = UserType.BigFan; } // 몇건 ~ 십몇건 for (int Idx = 0; Idx < matchingUser.Count; Idx++) { var Addbj = new BjModel() { ID = matchingUser[Idx].BjID, Nic = matchingUser[Idx].BjNic, }; int bigFanRanking = matchingUser[Idx].BigFanRanking; if (bigFanRanking == 1) { // 1등 회장 Addbj.IconUrl = IconUrl.BulKing; } else if (bigFanRanking >= 2 && bigFanRanking <= 5) { // 2~5등 Addbj.IconUrl = IconUrl.BulRedHeart; } else if (bigFanRanking >= 6 && bigFanRanking <= 10) { // 6~10등 Addbj.IconUrl = IconUrl.BulYellowHeart; } else if (bigFanRanking >= 11 && bigFanRanking <= 20) { // 11~20등 Addbj.IconUrl = IconUrl.BulGrayHeart; } Addbj.Ranking = bigFanRanking; userModel.BJs.Add(Addbj); } return(userModel); }
public List <RankUserModel> GetSupporters(string bjID) { var result = new List <RankUserModel>(); // 사용자별 구분 문자열 int unicode = 004; char character = (char)unicode; string split1 = character.ToString(); // 아이디, 닉네임 구분 문자열 int unicode2 = 002; char character2 = (char)unicode2; string split2 = character2.ToString(); // 아이디에 붙어 있는 0- 문자 제거 int unicode3 = 006; char character3 = (char)unicode3; string replaceString = $"0{character3.ToString()}"; var url = $"http://live.afreecatv.com:8057/api/best_bj_action.php?szAction=GetSupporter&szType=json&uid={bjID}&szBeforeCallBack=_supporter&callback=_supporter"; // bj아이디 들어감 var supporter = GetUserRankHtml(bjID, url, false); supporter = supporter?.Replace("_supporter(", "")?.Replace(");", "") ?? string.Empty; if (string.IsNullOrEmpty(supporter)) { return(result); } var supporters = JsonConvert.DeserializeObject <Supporters>(supporter); var top = supporters?.CHANNEL?.SUPPORTER_LIST?.FirstOrDefault()?.List?.FirstOrDefault()?.Sticker_top ?? string.Empty; if (string.IsNullOrEmpty(top)) { return(result); } var topSplit1 = top.Split(new string[] { split1 }, StringSplitOptions.RemoveEmptyEntries); for (int Idx = 0; Idx < topSplit1.Length; Idx++) { if (topSplit1[Idx] == "0") { break; } var userInfo = topSplit1[Idx].Split(new string[] { split2 }, StringSplitOptions.RemoveEmptyEntries); if (userInfo.Length != 2) { continue; } var item = new RankUserModel() { BjID = bjID, UserID = userInfo[0].Replace(replaceString, ""), UserNick = userInfo[1], SupportRanking = Idx + 1 }; result.Add(item); } return(result); }