/// <summary> /// 从UID创建数据 /// <para>系统会自己去抓数据</para> /// </summary> /// <param name="uid"></param> public BiliUser(int uid, ThirdPartAPIs sess, bool nocache = false) { if (userlist == null) { userlist = new Dictionary <int, BiliUser>(); } try { this.sess = sess; raw_json = (JObject)JsonConvert.DeserializeObject(sess.getBiliUserInfoJson(uid)); this.uid = int.Parse(raw_json["data"]["mid"].ToString()); name = raw_json["data"]["name"].ToString(); sex = raw_json["data"]["sex"].ToString(); sign = raw_json["data"]["sign"].ToString(); rank = int.Parse(raw_json["data"]["rank"].ToString()); level = int.Parse(raw_json["data"]["level"].ToString()); coins = int.Parse(raw_json["data"]["coins"].ToString()); face = raw_json["data"]["face"].ToString(); fans_badge = raw_json["data"]["fans_badge"].ToString() != "false"; try { official = new OfficialInfo() { Type = (OfficialType)raw_json["data"]["official"].Value <int>("type"), Title = raw_json["data"]["official"].Value <string>("title"), Description = raw_json["data"]["official"].Value <string>("desc"), Role = raw_json["data"]["official"].Value <int>("role") }; } catch { } } catch { this.uid = uid; } if (userlist.ContainsKey(uid)) { userlist.Remove(uid); } userlist.Add(uid, this); }
/// <summary> /// 手动数据初始化 /// 尽量别用!! /// </summary> /// <param name="uid"></param> /// <param name="name"></param> /// <param name="sex"></param> /// <param name="sign"></param> /// <param name="fans_badge"></param> /// <param name="coins"></param> /// <param name="face"></param> /// <param name="level"></param> /// <param name="rank"></param> public BiliUser(int uid, string name, string sex, string sign, bool fans_badge, int coins, string face, int level, int rank, OfficialInfo official, ThirdPartAPIs sess) { if (userlist == null) { userlist = new Dictionary <int, BiliUser>(); } this.uid = uid; this.name = name; this.sex = sex; this.sign = sign; this.fans_badge = fans_badge; this.coins = coins; this.face = face; this.level = level; this.rank = rank; this.official = official; if (userlist.ContainsKey(uid)) { userlist.Remove(uid); } this.sess = sess; userlist.Add(uid, this); }
/// <summary> /// 从已有json字符串实例化 /// </summary> /// <param name="json"></param> public BiliUser(string json) { if (userlist == null) { userlist = new Dictionary <int, BiliUser>(); } raw_json = (JObject)JsonConvert.DeserializeObject(json); if (raw_json["data"] == null) { uid = int.Parse(raw_json["mid"].ToString()); name = raw_json["name"].ToString(); sex = raw_json["sex"].ToString(); sign = raw_json["sign"].ToString(); rank = int.Parse(raw_json["rank"].ToString()); level = int.Parse(raw_json["level_info"]["current_level"].ToString()); face = raw_json["face"].ToString(); fans = raw_json.Value <int>("fans"); try { official = new OfficialInfo() { Type = (OfficialType)raw_json["official"].Value <int>("type"), Title = raw_json["official"].Value <string>("title"), Role = raw_json["official"].Value <int>("role"), Description = raw_json["official"].Value <string>("desc") }; } catch { official = new OfficialInfo() { Type = (OfficialType)raw_json["Official"].Value <int>("type"), Title = raw_json["Official"].Value <string>("title"), Role = raw_json["Official"].Value <int>("role"), Description = raw_json["Official"].Value <string>("desc") }; } } else { uid = int.Parse(raw_json["data"]["mid"].ToString()); name = raw_json["data"]["name"].ToString(); sex = raw_json["data"]["sex"].ToString(); sign = raw_json["data"]["sign"].ToString(); rank = int.Parse(raw_json["data"]["rank"].ToString()); level = int.Parse(raw_json["data"]["level"].ToString()); coins = int.Parse(raw_json["data"]["coins"].ToString()); face = raw_json["data"]["face"].ToString(); fans_badge = raw_json["data"]["fans_badge"].ToString() != "false"; try { official = new OfficialInfo() { Type = (OfficialType)raw_json["data"]["official"].Value <int>("type"), Title = raw_json["data"]["official"].Value <string>("title"), Role = raw_json["data"]["official"].Value <int>("role"), Description = raw_json["data"]["official"].Value <string>("desc") }; } catch { official = new OfficialInfo() { Type = (OfficialType)raw_json["data"]["Official"].Value <int>("type"), Title = raw_json["data"]["Official"].Value <string>("title"), Role = raw_json["data"]["Official"].Value <int>("role"), Description = raw_json["data"]["Official"].Value <string>("desc") }; } } if (userlist.ContainsKey(uid)) { userlist.Remove(uid); } userlist.Add(uid, this); }