Пример #1
0
        public async Task <ScoutUser> GetUser(string title, string identifier, Dictionary <string, string> parameters = null)
        {
            try
            {
                if (parameters == null)
                {
                    parameters = new Dictionary <string, string>();
                }

                parameters["title"]      = title;
                parameters["identifier"] = identifier;

                List <string> parameterSets = new List <string>();
                foreach (var parameter in parameters)
                {
                    parameterSets.Add(string.Format("{0}: \"{1}\"", parameter.Key, parameter.Value));
                }

                string query = "{ players(" + string.Join(", ", parameterSets) + ") { results { player { playerId handle } persona { id handle } } } }";

                JObject content = new JObject();
                content["query"]     = query;
                content["variables"] = new JObject();

                HttpResponseMessage response = await this.PostAsync("graph", this.CreateContentFromObject(content));

                if (response.IsSuccessStatusCode)
                {
                    JObject jobj = await this.ProcessJObjectResponse(response);

                    if (jobj.ContainsKey("data"))
                    {
                        JObject data = (JObject)jobj["data"];
                        if (data.ContainsKey("players"))
                        {
                            JObject players = (JObject)data["players"];
                            if (players.ContainsKey("results"))
                            {
                                JArray results = (JArray)players["results"];
                                foreach (JObject result in results)
                                {
                                    ScoutUser user = new ScoutUser(result);
                                    if (!string.IsNullOrEmpty(user.PlayerID) && !string.IsNullOrEmpty(user.PlayerHandle) && user.PlayerHandle.Equals(identifier, StringComparison.InvariantCulture))
                                    {
                                        return(user);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { Logger.Log(ex); }
            return(null);
        }
Пример #2
0
        public override async Task Initialize()
        {
            string platformString = "";

            switch (this.Platform)
            {
            case GameStatsPlatformTypeEnum.PC: platformString = "uplay"; break;

            case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; break;

            case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; break;
            }

            this.user = await ChannelSession.Services.Scout.GetUser("r6siege", this.Username, new Dictionary <string, string>()
            {
                { "platform", platformString },
            });
        }
Пример #3
0
        public override async Task Initialize()
        {
            this.categoryEnum = EnumHelper.GetEnumValueFromString <CallOfDutyBlackOps4GameStatsCategoryTypeEnum>(this.Category);

            string platformString = "";

            switch (this.Platform)
            {
            case GameStatsPlatformTypeEnum.PC: platformString = "battlenet"; break;

            case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; break;

            case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; break;
            }

            this.user = await ChannelSession.Services.Scout.GetUser("codbo4", this.Username, new Dictionary <string, string>()
            {
                { "platform", platformString },
            });
        }
Пример #4
0
        public override async Task Initialize()
        {
            this.categoryEnum = EnumHelper.GetEnumValueFromString <FortniteGameStatsCategoryTypeEnum>(this.Category);

            string platformString = "";
            string consoleString  = null;

            switch (this.Platform)
            {
            case GameStatsPlatformTypeEnum.PC: platformString = "epic"; break;

            case GameStatsPlatformTypeEnum.Xbox: platformString = "xbl"; consoleString = "xb1"; break;

            case GameStatsPlatformTypeEnum.Playstation: platformString = "psn"; consoleString = "ps4"; break;
            }

            this.user = await ChannelSession.Services.Scout.GetUser("fortnite", this.Username, new Dictionary <string, string>()
            {
                { "platform", platformString },
                { "console", consoleString },
            });
        }
Пример #5
0
        public async Task <Dictionary <string, ScoutStat> > GetStats(string title, ScoutUser user, string segment, Dictionary <string, string> parameters = null)
        {
            try
            {
                if (parameters == null)
                {
                    parameters = new Dictionary <string, string>();
                }

                parameters["title"] = title;
                parameters["id"]    = user.PlayerID;
                if (!string.IsNullOrEmpty(segment))
                {
                    parameters["segment"] = segment;
                }

                List <string> parameterSets = new List <string>();
                foreach (var parameter in parameters)
                {
                    parameterSets.Add(string.Format("{0}: \"{1}\"", parameter.Key, parameter.Value));
                }

                string query = "{ player(" + string.Join(", ", parameterSets) + ") { id metadata { key value } ";
                if (!string.IsNullOrEmpty(segment))
                {
                    query += "segments { metadata { key value } stats { metadata { key } value } }";
                }
                else
                {
                    query += "stats { metadata { key } value }";
                }
                query += " } }";

                JObject content = new JObject();
                content["query"]     = query;
                content["variables"] = new JObject();

                HttpResponseMessage response = await this.PostAsync("graph", this.CreateContentFromObject(content));

                if (response.IsSuccessStatusCode)
                {
                    JObject jobj = await this.ProcessJObjectResponse(response);

                    if (jobj.ContainsKey("data"))
                    {
                        JObject data = (JObject)jobj["data"];
                        if (data.ContainsKey("player"))
                        {
                            JObject player = (JObject)data["player"];
                            if (player.ContainsKey("id") && player["id"].ToString().Equals(user.PlayerID, StringComparison.InvariantCulture))
                            {
                                List <ScoutStat> results = new List <ScoutStat>();

                                if (player.ContainsKey("metadata"))
                                {
                                    JArray metadata = (JArray)player["metadata"];
                                    foreach (JObject stat in metadata)
                                    {
                                        results.Add(new ScoutStat(stat));
                                    }
                                }

                                if (player.ContainsKey("stats"))
                                {
                                    JArray stats = (JArray)player["stats"];
                                    foreach (JObject stat in stats)
                                    {
                                        results.Add(new ScoutStat(stat));
                                    }
                                }

                                if (player.ContainsKey("segments"))
                                {
                                    JArray segments = (JArray)player["segments"];
                                    foreach (JObject seg in segments)
                                    {
                                        if (seg.ContainsKey("stats"))
                                        {
                                            JArray stats = (JArray)seg["stats"];
                                            foreach (JObject stat in stats)
                                            {
                                                results.Add(new ScoutStat(stat));
                                            }
                                        }
                                    }
                                }

                                return(results.ToDictionary(s => s.Name, s => s));
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { Logger.Log(ex); }
            return(null);
        }