public List <GameInfo> GetLibraryGames() { using (var view = PlayniteApi.WebViews.CreateOffscreenView()) { var api = new OriginAccountClient(view); if (!api.GetIsUserLoggedIn()) { throw new Exception("User is not logged in."); } var token = api.GetAccessToken(); if (token == null) { throw new Exception("Failed to get access to user account."); } if (!string.IsNullOrEmpty(token.error)) { throw new Exception("Access error: " + token.error); } var info = api.GetAccountInfo(token); if (!string.IsNullOrEmpty(info.error)) { throw new Exception("Access error: " + info.error); } var games = new List <GameInfo>(); foreach (var game in api.GetOwnedGames(info.pid.pidId, token).Where(a => a.offerType == "basegame")) { UsageResponse usage = null; try { usage = api.GetUsage(info.pid.pidId, game.offerId, token); } catch (Exception e) { logger.Error(e, $"Failed to get usage data for {game.offerId}"); } games.Add(new GameInfo() { Source = "Origin", GameId = game.offerId, Name = game.offerId, LastActivity = usage?.lastSessionEndTimeStamp, Playtime = usage?.total ?? 0 }); } return(games); } }
public List <Game> GetLibraryGames() { using (var view = playniteApi.WebViews.CreateOffscreenView()) { var api = new OriginAccountClient(view); if (!api.GetIsUserLoggedIn()) { throw new Exception("User is not logged in."); } var token = api.GetAccessToken(); if (token == null) { throw new Exception("Failed to get access to user account."); } if (!string.IsNullOrEmpty(token.error)) { throw new Exception("Access error: " + token.error); } var info = api.GetAccountInfo(token); if (!string.IsNullOrEmpty(info.error)) { throw new Exception("Access error: " + info.error); } var games = new List <Game>(); foreach (var game in api.GetOwnedGames(info.pid.pidId, token).Where(a => a.offerType == "basegame")) { games.Add(new Game() { PluginId = Id, Source = "Origin", GameId = game.offerId, Name = game.offerId }); } return(games); } }
public OriginAchievements(IPlayniteAPI PlayniteApi) { var view = PlayniteApi.WebViews.CreateOffscreenView(); originAPI = new OriginAccountClient(view); }
public List <GameInfo> GetLibraryGames() { using (var view = PlayniteApi.WebViews.CreateOffscreenView()) { var api = new OriginAccountClient(view); if (!api.GetIsUserLoggedIn()) { throw new Exception("User is not logged in."); } var token = api.GetAccessToken(); if (token == null) { throw new Exception("Failed to get access to user account."); } if (!string.IsNullOrEmpty(token.error)) { throw new Exception("Access error: " + token.error); } var info = api.GetAccountInfo(token); if (!string.IsNullOrEmpty(info.error)) { throw new Exception("Access error: " + info.error); } var games = new List <GameInfo>(); foreach (var game in api.GetOwnedGames(info.pid.pidId, token).Where(a => a.offerType == "basegame")) { UsageResponse usage = null; try { usage = api.GetUsage(info.pid.pidId, game.offerId, token); } catch (Exception e) { logger.Error(e, $"Failed to get usage data for {game.offerId}"); } var gameName = game.offerId; try { var localData = GetLocalManifest(game.offerId); if (localData != null) { gameName = StringExtensions.NormalizeGameName(localData.localizableAttributes.displayName); } } catch (Exception e) when(!Environment.IsDebugBuild) { logger.Error(e, $"Failed to get Origin manifest for a {game.offerId}"); continue; } games.Add(new GameInfo() { Source = "Origin", GameId = game.offerId, Name = gameName, LastActivity = usage?.lastSessionEndTimeStamp, Playtime = usage?.total ?? 0, Platform = "PC" }); } return(games); } }
public OriginAchievements(IPlayniteAPI PlayniteApi, SuccessStorySettings settings, string PluginUserDataPath) : base(PlayniteApi, settings, PluginUserDataPath) { var view = PlayniteApi.WebViews.CreateOffscreenView(); originAPI = new OriginAccountClient(view); }