public MetadataLocalProvider(MetadataRequestOptions options, MetadataLocal plugin, string PlayniteConfigurationPath, MetadataLocalSettings settings) { _options = options; _plugin = plugin; _PlayniteConfigurationPath = PlayniteConfigurationPath; _settings = settings; }
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; } }
// 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); } } }