Exemplo n.º 1
0
        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.");
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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; }
             * }*/
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
 public Friend(UserBriefResponse friend)
 {
     id = friend.id; displayName = friend.displayName; username = friend.username;
 }
Exemplo n.º 7
0
 public TabTag(UserBriefResponse target, DateTime sessionStart, TargetType type = TargetType.Unknown)
 {
     Target = target; SessionStart = sessionStart; Type = type;
 }
Exemplo n.º 8
0
        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
            {
            }
        }