Exemplo n.º 1
0
        public async Task <WebStoreModels.ProductResponse> GetProductInfo(string productSlug, string PlayniteLanguage)
        {
            string EpicLangCountry = CodeLang.GetEpicLangCountry(PlayniteLanguage);

            if (PlayniteLanguage == "es_ES" || PlayniteLanguage == "zh_TW")
            {
                EpicLangCountry = CodeLang.GetEpicLang(PlayniteLanguage);
            }
            var slugUri    = productSlug.Split('/').First();
            var productUrl = string.Format(ProductUrlBase, slugUri, EpicLangCountry);
            var str        = await httpClient.GetStringAsync(productUrl);

            return(Serialization.FromJson <WebStoreModels.ProductResponse>(str));
        }
Exemplo n.º 2
0
        // Override Xbox function GetTitleInfo in WebApiClient on XboxLibrary.
        public static async Task <string> GetXboxData(string pfn, string PlayniteLanguage, string PluginUserDataPath, MetadataLocal plugin)
        {
            var xstsLoginTokesPath = Path.Combine(PluginUserDataPath + "\\..\\7e4fbb5e-2ae3-48d4-8ba0-6b30e7a4e287", "xsts.json");
            var tokens             = Serialization.FromJsonFile <AuthorizationData>(xstsLoginTokesPath);

            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Add("x-xbl-contract-version", "2");
                client.DefaultRequestHeaders.Add("Authorization", $"XBL3.0 x={tokens.DisplayClaims.xui[0].uhs};{tokens.Token}");
                client.DefaultRequestHeaders.Add("Accept-Language", CodeLang.GetEpicLang(PlayniteLanguage));

                var requestData = new Dictionary <string, List <string> >
                {
                    { "pfns", new List <string> {
                          pfn
                      } },
                    { "windowsPhoneProductIds", new List <string>() },
                };

                var response = await client.PostAsync(
                    @"https://titlehub.xboxlive.com/titles/batch/decoration/detail",
                    new StringContent(Serialization.ToJson(requestData), Encoding.UTF8, "application/json"));

                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    logger.Warn("Metadatalocal - Xbox user is not connected");
                    plugin.PlayniteApi.Notifications.Add(new NotificationMessage(
                                                             $"metadalocal-xbox-error",
                                                             "Xbox - " + resources.GetString("LOCNotLoggedIn"),
                                                             NotificationType.Error
                                                             ));

                    return(string.Empty);
                }
                else
                {
                    var cont = await response.Content.ReadAsStringAsync();

                    var titleHistory = Serialization.FromJson <TitleHistoryResponse>(cont);
                    return(titleHistory.titles.First().detail.description);
                }
            }
        }