Beispiel #1
0
 public MetadataLocalProvider(MetadataRequestOptions options, MetadataLocal plugin, string PlayniteConfigurationPath, MetadataLocalSettings settings)
 {
     _options = options;
     _plugin  = plugin;
     _PlayniteConfigurationPath = PlayniteConfigurationPath;
     _settings = settings;
 }
Beispiel #2
0
        public MetadataLocalSettings(MetadataLocal plugin)
        {
            // Injecting your plugin instance is required for Save/Load method because Playnite saves data to a location based on what plugin requested the operation.
            this.plugin = plugin;

            // Load saved settings.
            var savedSettings = plugin.LoadPluginSettings <MetadataLocalSettings>();

            // LoadPluginSettings returns null if not saved data is available.
            if (savedSettings != null)
            {
                EnableCheckVersion = savedSettings.EnableCheckVersion;

                EnableSelectStore = savedSettings.EnableSelectStore;
            }
        }
Beispiel #3
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);
                }
            }
        }