public void AddChat(UserBriefResponse user) { BringUp(); var chatId = $"chat_{user.id}"; if (tabs_chat.TabPages.ContainsKey(chatId)) { tabs_chat.SelectedIndex = tabs_chat.TabPages.IndexOfKey(chatId); return; } var tab = new TabPage(); tab.Text = user.displayName; tab.Name = chatId; tab.Tag = new TabTag(user, DateTime.Now, TargetType.User); tab.TabIndex = tabs_chat.TabPages.Count; tab.MouseClick += Tab_MouseClick; var lst_messages = new ListBox(); lst_messages.Dock = DockStyle.Fill; lst_messages.FormattingEnabled = true; lst_messages.Location = new Point(3, 3); // lst_messages.Name = lst_messages.Size = new Size(546, 243); tab.Controls.Add(lst_messages); tabs_chat.Controls.Add(tab); tabs_chat.SelectTab(tab.TabIndex); // Select Tab this.Text = $"Chat with {user.displayName}"; txt_chat_input.Focus(); var tag = (TabTag)tab.Tag; LogLine(chatId, tag.SessionStart, $"Chat session with {user.displayName.Quote()} started."); }
public async Task <UserBriefResponse> GetById(string userId) { Console.WriteLine($"Getting user info with ID: {userId}"); HttpResponseMessage response = await Global.HttpClient.GetAsync($"users/{userId}?apiKey={Global.ApiKey}"); UserBriefResponse res = null; if (response.IsSuccessStatusCode) { string json = await response.Content.ReadAsStringAsync(); Console.WriteLine($"JSON received: {json}"); res = JsonConvert.DeserializeObject <UserBriefResponse>(json); } return(res); }
async Task CheckAvatarIDIfStolen() { string n = Environment.NewLine; string id = avatarIDTextField.Text; logTextField.Text += "Checking " + id + " to see if it is a stolen avatar"; try { AvatarResponse avatar = await api.AvatarApi.GetById(id); UserBriefResponse avatarOwner = await api.UserApi.GetById(avatar.authorId); CheckIfStolen(avatar.assetUrl, avatar.id, avatarOwner.username, avatarOwner.displayName, avatarOwner.id); } catch (Exception e) { string response = await api.AvatarApi.GetUrl(id); string[] parse = response.Split('"'); string assetURL = ""; string avatarID = ""; for (int i = 0; i < parse.Length; i++) { if (parse[i].Contains("assetUrl")) { assetURL = parse[i + 2]; break; } } foreach (String sss in parse) { if (sss.Contains("avtr_")) { avatarID = sss; break; } } CheckIfStolen(assetURL, avatarID, "", "", ""); //ThreadHelperClass.SetText(this, logTextField, logTextField.Text + " " + "Manual Asset URL: " + assetURL + n); } }
private void FillUser(UserBriefResponse user) { txt_users_id.Text = user.id; txt_users_id.Tag = user; txt_users_displayname.Text = user.displayName; txt_users_username.Text = user.username; txt_users_status.Text = user.statusDescription; txt_users_rank.Text = RankFromTags(user.tags).ToString(); txt_users_tags.Text = user.tags.ToJson().ToString(); txt_users_location.Text = user.location; var location = new UserLocation(user.location); if (location.Type == UserLocationType.Public) { tooltip_user_location.SetToolTip(txt_users_location, location.WorldInstance.ToJson().ToString()); } /*if (tree_users.Nodes[0].Tag != null) * { * var tag = (TreeNodeTag)tree_users.Nodes[0].Tag; * // if (user.id == me.id) { btn_users_save.Visible = true; } else { btn_users_save.Visible = false; } * }*/ }
async Task StartApi() { if (IsLoggedIn) { return; } string n = Environment.NewLine; string userID = ""; try { Global.ApiKey = apiKeyTextField.Text; try { System.IO.File.WriteAllLines("APIKey.cfg", new string[] { Global.ApiKey }); } catch (Exception e) { /*unhandled*/ } logTextField.Text += "Logging in to API as " + userTextField.Text + n; //logTextField.Text += "Creating API Instance" + n; api = new VRChatApi.VRChatApi(userTextField.Text, passwordTextField.Text); //logTextField.Text += "Getting config response" + n; ConfigResponse config = await api.RemoteConfig.Get(); UserResponse user = await api.UserApi.Login(); if (user == null) { logTextField.Text += "Login Failed (Incorrect Username/Password OR APIKey)" + n; IsLoggedIn = false; return; } loginButton.Enabled = false; //logTextField.Text += user.DeepDumpAsString() + n; IsLoggedIn = true; userID = user.id; if (!user.friends.Contains(userID)) { await api.UserApi.SendFriendRequest(userID); await api.FriendsApi.AcceptFriend(userID); } } catch (Exception e) { logTextField.Text += e.ToString() + Environment.NewLine; } new Thread(async() => { while (true) { if (!IsLoggedIn) { break; } if (!loggingOnButton.Checked) { Thread.Sleep(1000); continue; } //usr_80a984c9-2b8e-4396-b893-2f31d8fd2ba3 UserBriefResponse userPing = await api.UserApi.GetById(userID); //ThreadHelperClass.SetText(this, logTextField, logTextField.Text + "User Ping" + n + n + userPing.DeepDumpAsString() + n); ThreadHelperClass.SetText(this, logTextField, logTextField.Text + "Running check for stolen avatars" + n); IList <String> ids = await api.WorldApi.GetUsersInInstance(userPing.worldId + "/" + userPing.instanceId); foreach (String s in ids) { //ThreadHelperClass.SetText(this, logTextField, logTextField.Text + s + n); UserBriefResponse userInRoom = await api.UserApi.GetById(s); if (userInRoom == null) { continue; } IList <string> userPublicAvatars = await api.AvatarApi.GetAvatarList(userInRoom.id); foreach (String ss in userPublicAvatars) { //ThreadHelperClass.SetText(this, logTextField, logTextField.Text + " " + ss + n); try { AvatarResponse avatar = await api.AvatarApi.GetById(ss); CheckIfStolen(avatar.assetUrl, avatar.id, userInRoom.username, userInRoom.displayName, userInRoom.id); } catch (Exception e) { string response = await api.AvatarApi.GetUrl(ss); string[] parse = response.Split('"'); string assetURL = ""; string avatarID = ""; for (int i = 0; i < parse.Length; i++) { if (parse[i].Contains("assetUrl")) { assetURL = parse[i + 2]; break; } } foreach (String sss in parse) { if (sss.Contains("avtr_")) { avatarID = sss; break; } } CheckIfStolen(assetURL, avatarID, userInRoom.username, userInRoom.displayName, userInRoom.id); //ThreadHelperClass.SetText(this, logTextField, logTextField.Text + " " + "Manual Asset URL: " + assetURL + n); } } } ThreadHelperClass.SetText(this, logTextField, logTextField.Text + "Check finished. Waiting 60 seconds..." + n); Thread.Sleep(60000); } }).Start(); }
public Friend(UserBriefResponse friend) { id = friend.id; displayName = friend.displayName; username = friend.username; }
public TabTag(UserBriefResponse target, DateTime sessionStart, TargetType type = TargetType.Unknown) { Target = target; SessionStart = sessionStart; Type = type; }
async public void userlists() { try { // int useNu = 0; int useNu2 = 0; UserResponse users = await api.UserApi.Login(); List <string> usLISTact = users.activeFriends; List <UserBriefResponse> friendss = await api.FriendsApi.Get(0, 99, true); List <UserBriefResponse> dump; int j = 99; while (j < 2000) { if (j == friendss.Count) { dump = await api.FriendsApi.Get(j, 99, true); friendss.AddRange(dump); j += 99; } else { break; } } List <UserBriefResponse> SortedList2 = friendss.OrderBy(x => x.displayName).ToList(); foreach (var friend in usLISTact) { // useNu++; UserBriefResponse frien1 = await api.UserApi.GetById(friend); useNu2++; string TrustLevel; string Trustcol = "#000000"; List <int> grdpoint = new List <int>(); grdpoint.Add(1); foreach (var Trustser in frien1.tags) { if (Trustser == "admin_moderator") { grdpoint.Add(8); //영자 } else if (Trustser == "system_legend") { grdpoint.Add(7); //검딱 } else if (Trustser == "system_trust_legend") { grdpoint.Add(6); //노딱 } else if (Trustser == "system_trust_veteran") { grdpoint.Add(5); //보딱 } else if (Trustser == "system_trust_trusted") { grdpoint.Add(4); //주딱 } else if (Trustser == "system_trust_known") { grdpoint.Add(3); //초딱 } else if (Trustser == "system_trust_basic") { grdpoint.Add(2); //파딱 } else { grdpoint.Add(1); //흰딱 } } int point = grdpoint.Max(); if (point == 8) { TrustLevel = "moderator"; //영자 Trustcol = "#FF0000"; } else if (point == 7) { TrustLevel = "legend"; //검딱 Trustcol = "#FF0000"; } else if (point == 6) { TrustLevel = "veteran"; //노딱 Trustcol = "#FFE400"; } else if (point == 5) { TrustLevel = "trusted";//보딱 Trustcol = "#7112FF"; } else if (point == 4) { TrustLevel = "known"; //주딱 Trustcol = "#FF5E00"; } else if (point == 3) { TrustLevel = "user"; //초딱 Trustcol = "#7DFE74"; } else if (point == 2) { TrustLevel = "basic"; //파딱 Trustcol = "#489CFF"; } else { TrustLevel = "Visitor";//흰딱 Trustcol = "#E1E1E1"; } userlist.Add(new user { notworld = true, usid = frien1.id, Location = frien1.location, Name = frien1.displayName, ImageUrl = frien1.currentAvatarImageUrl, mapinst = "active", usNa = frien1.username, ustags = frien1.tags, Trustcol = Trustcol, instcol = "#368AFF", TrustLevel = TrustLevel, bio = frien1.bio, statusDescription = frien1.statusDescription, }); } foreach (var friend in SortedList2) { useNu2++; // useNu++; string a = friend.location; int aleg = a.Length; string TrustLevel; string Trustcol = "#000000"; List <int> grdpoint = new List <int>(); grdpoint.Add(1); foreach (var Trustser in friend.tags) { if (Trustser == "admin_moderator") { grdpoint.Add(8); //영자 } else if (Trustser == "system_legend") { grdpoint.Add(7); //검딱 } else if (Trustser == "system_trust_legend") { grdpoint.Add(6); //노딱 } else if (Trustser == "system_trust_veteran") { grdpoint.Add(5); //보딱 } else if (Trustser == "system_trust_trusted") { grdpoint.Add(4); //주딱 } else if (Trustser == "system_trust_known") { grdpoint.Add(3); //초딱 } else if (Trustser == "system_trust_basic") { grdpoint.Add(2); //파딱 } else { grdpoint.Add(1); //흰딱 } } int point = grdpoint.Max(); if (point == 8) { TrustLevel = "moderator"; //영자 Trustcol = "#FF0000"; } else if (point == 7) { TrustLevel = "legend"; //검딱 Trustcol = "#FF0000"; } else if (point == 6) { TrustLevel = "veteran"; //노딱 Trustcol = "#FFE400"; } else if (point == 5) { TrustLevel = "trusted";//보딱 Trustcol = "#7112FF"; } else if (point == 4) { TrustLevel = "known"; //주딱 Trustcol = "#FF5E00"; } else if (point == 3) { TrustLevel = "user"; //초딱 Trustcol = "#7DFE74"; } else if (point == 2) { TrustLevel = "basic"; //파딱 Trustcol = "#489CFF"; } else { TrustLevel = "Visitor";//흰딱 Trustcol = "#E1E1E1"; } userlist.Add(new user { notworld = true, usid = friend.id, Location = friend.location, Name = friend.displayName, ImageUrl = friend.currentAvatarImageUrl, usNa = friend.username, ustags = friend.tags, Trustcol = Trustcol, instcol = "#000000", TrustLevel = TrustLevel, bio = friend.bio, statusDescription = friend.statusDescription, }); } // userNum = useNu; onlineNum = useNu2; listpro.ItemsSource = null; BindingContext = this; listpro.ItemsSource = userlist; listpro.EndRefresh(); } catch { } }