├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── config.yml
│ ├── custom.md
│ └── feature_request.md
├── .gitignore
├── .gitmodules
├── LICENSE.md
├── README.md
├── build
├── BuildExtensions.ps1
├── UpdateLocExtFiles.ps1
└── UpdateLocalizations.ps1
├── manifests
├── AmazonLibrary_Builtin.yaml
├── BattlenetLibrary_Builtin.yaml
├── EpicGamesLibrary_Builtin.yaml
├── GogLibrary_Builtin.yaml
├── HumbleLibrary_Builtin.yaml
├── IGDBMetadata_Builtin.yaml
├── ItchioLibrary_Builtin.yaml
├── LibraryExporterPS_Builtin.yaml
├── OriginLibrary_Builtin.yaml
├── Rockstar_Games_Library.yaml
├── SteamLibrary_Builtin.yaml
├── Universal_Steam_Metadata.yaml
├── UplayLibrary_Builtin.yaml
├── XboxLibrary_Builtin.yaml
└── themes
│ ├── Playnite_builtin_ClassicDesktop.yaml
│ ├── Playnite_builtin_ClassicDesktopBlue.yaml
│ ├── Playnite_builtin_ClassicDesktopGreen.yaml
│ ├── Playnite_builtin_ClassicDesktopPlain.yaml
│ ├── Playnite_builtin_DefaultDesktopRed.yaml
│ └── Playnite_builtin_DefaultFullscreenLime.yaml
├── screenshots
├── theme_classic.jpg
└── theme_classic_thumb.jpg
└── source
├── Generic
├── LibraryExporter
│ ├── LibraryExporter.psm1
│ └── extension.yaml
└── PlayniteExtensions.Common
│ ├── DateHelper.cs
│ ├── Encryption.cs
│ ├── GlobalCommands.cs
│ ├── PlayniteExtensions.Common.csproj
│ ├── PluginBase.cs
│ ├── PluginSettingsViewModel.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ └── packages.config
├── Libraries
├── AmazonGamesLibrary
│ ├── AmazonGameController.cs
│ ├── AmazonGames.cs
│ ├── AmazonGamesLibrary.cs
│ ├── AmazonGamesLibrary.csproj
│ ├── AmazonGamesLibraryClient.cs
│ ├── AmazonGamesLibrarySettingsView.xaml
│ ├── AmazonGamesLibrarySettingsView.xaml.cs
│ ├── AmazonGamesLibrarySettingsViewModel.cs
│ ├── AmazonGamesMetadataProvider.cs
│ ├── App.xaml
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── DeviceRegistration.cs
│ │ ├── EntitlementsRequest.cs
│ │ ├── EntitlementsResponse.cs
│ │ └── GameConfiguration.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Services
│ │ └── AmazonAccountClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ ├── icon.png
│ └── packages.config
├── BattleNetLibrary
│ ├── App.xaml
│ ├── BattleNet.cs
│ ├── BattleNetClient.cs
│ ├── BattleNetGameController.cs
│ ├── BattleNetGames.cs
│ ├── BattleNetLibrary.cs
│ ├── BattleNetLibrary.csproj
│ ├── BattleNetLibrarySettingsView.xaml
│ ├── BattleNetLibrarySettingsView.xaml.cs
│ ├── BattleNetLibrarySettingsViewModel.cs
│ ├── BattleNetMetadataProvider.cs
│ ├── Environment.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── BNetApp.cs
│ │ ├── BattleNetApiStatus.cs
│ │ ├── ClassicGames.cs
│ │ └── GamesAndSubs.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── battleneticon.png
│ ├── Services
│ │ └── BattleNetAccountClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── EpicLibrary
│ ├── App.xaml
│ ├── EpicClient.cs
│ ├── EpicGameController.cs
│ ├── EpicLauncher.cs
│ ├── EpicLibrary.cs
│ ├── EpicLibrary.csproj
│ ├── EpicLibrarySettingsView.xaml
│ ├── EpicLibrarySettingsView.xaml.cs
│ ├── EpicLibrarySettingsViewModel.cs
│ ├── EpicMetadataProvider.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── AccountResponse.cs
│ │ ├── AssetsResponse.cs
│ │ ├── CatalogResponse.cs
│ │ ├── ErrorResponse.cs
│ │ ├── LauncherInstalled.cs
│ │ ├── OauthResponse.cs
│ │ ├── PlaytimesResponse.cs
│ │ └── WebStoreModels.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── epicicon.png
│ ├── Services
│ │ ├── EpicAccountClient.cs
│ │ └── WebStoreClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── GogLibrary
│ ├── App.xaml
│ ├── Environment.cs
│ ├── GOGMetadataProvider.cs
│ ├── Gog.cs
│ ├── GogClient.cs
│ ├── GogGameController.cs
│ ├── GogLibrary.cs
│ ├── GogLibrary.csproj
│ ├── GogLibrarySettingsView.xaml
│ ├── GogLibrarySettingsView.xaml.cs
│ ├── GogLibrarySettingsViewModel.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── AccountBasicResponse.cs
│ │ ├── GetOwnedGamesResult.cs
│ │ ├── GogGameMetadata.cs
│ │ ├── GogGameTaskInfo.cs
│ │ ├── LibraryGameResponse.cs
│ │ ├── PagedResponse.cs
│ │ ├── ProductApiDetail.cs
│ │ ├── StoreGamesFilteredListResponse.cs
│ │ └── StorePageResult.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ ├── galaxyIcon.png
│ │ └── gogicon.png
│ ├── Services
│ │ ├── GogAccountClient.cs
│ │ └── GogApiClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── HumbleLibrary
│ ├── App.xaml
│ ├── HumbleClient.cs
│ ├── HumbleGameController.cs
│ ├── HumbleLibrary.cs
│ ├── HumbleLibrary.csproj
│ ├── HumbleLibraryClient.cs
│ ├── HumbleLibrarySettingsView.xaml
│ ├── HumbleLibrarySettingsView.xaml.cs
│ ├── HumbleLibrarySettingsViewModel.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── HumbleApp.cs
│ │ ├── Order.cs
│ │ ├── Trove.cs
│ │ └── UserHome.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── icon.png
│ ├── Services
│ │ └── HumbleAccountClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── ItchioLibrary
│ ├── App.xaml
│ ├── Butler.cs
│ ├── Itch.cs
│ ├── ItchioClient.cs
│ ├── ItchioGameController.cs
│ ├── ItchioLibrary.cs
│ ├── ItchioLibrary.csproj
│ ├── ItchioLibrarySettingsView.xaml
│ ├── ItchioLibrarySettingsView.xaml.cs
│ ├── ItchioLibrarySettingsViewModel.cs
│ ├── ItchioMetadataProvider.cs
│ ├── JsonRpcClient.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── Butler.cs
│ │ ├── Cave.cs
│ │ ├── Collection.cs
│ │ ├── FetchCaves.cs
│ │ ├── FetchCollections.cs
│ │ ├── FetchGame.cs
│ │ ├── FetchGameRecords.cs
│ │ ├── FetchProfileOwnedKeys.cs
│ │ ├── GameRecord.cs
│ │ ├── HTMLLaunch.cs
│ │ ├── ItchInstallState.cs
│ │ ├── LaunchManifest.cs
│ │ ├── LogMessage.cs
│ │ ├── PickManifestAction.cs
│ │ ├── PrereqsFailed.cs
│ │ ├── ProfileList.cs
│ │ ├── ShellLaunch.cs
│ │ └── URLLaunch.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── itchioicon.png
│ ├── StartupSelectionView.xaml
│ ├── StartupSelectionView.xaml.cs
│ ├── StartupSelectionViewModel.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── OriginLibrary
│ ├── App.xaml
│ ├── EAC.cs
│ ├── Environment.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── AccountEntitlementsResponse.cs
│ │ ├── AccountInfoResponse.cs
│ │ ├── AuthTokenResponse.cs
│ │ ├── GameInstallerData.cs
│ │ ├── GameLocalDataResponse.cs
│ │ ├── GameStoreDataResponse.cs
│ │ ├── OriginGameMetadata.cs
│ │ ├── StorePageMetadata.cs
│ │ └── UsageReponse.cs
│ ├── Origin.cs
│ ├── OriginClient.cs
│ ├── OriginGameController.cs
│ ├── OriginLibrary.cs
│ ├── OriginLibrary.csproj
│ ├── OriginLibrarySettingsView.xaml
│ ├── OriginLibrarySettingsView.xaml.cs
│ ├── OriginLibrarySettingsViewModel.cs
│ ├── OriginMetadataProvider.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── originicon.png
│ ├── Services
│ │ ├── OriginAccountClient.cs
│ │ └── OriginApiClient.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
├── RockstarLibrary
│ ├── App.xaml
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RockstarGames.cs
│ ├── RockstarGamesController.cs
│ ├── RockstarGamesLibrary.cs
│ ├── RockstarGamesLibrary.csproj
│ ├── RockstarGamesLibrary.sln
│ ├── RockstarGamesLibraryClient.cs
│ ├── RockstarGamesLibrarySettingsView.xaml
│ ├── RockstarGamesLibrarySettingsView.xaml.cs
│ ├── RockstarGamesLibrarySettingsViewModel.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ ├── icon.png
│ └── packages.config
├── SteamLibrary
│ ├── App.xaml
│ ├── AppState.cs
│ ├── Configuration.cs
│ ├── Converters
│ │ └── BackgroundSourceToStringConverter.cs
│ ├── Environment.cs
│ ├── GameExtension.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── ModInfo.cs
│ ├── Models
│ │ ├── GetOwnedGamesResult.cs
│ │ ├── LocalSteamUser.cs
│ │ └── ResolveVanityResult.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── steamicon.png
│ ├── Services
│ │ └── SteamServicesClient.cs
│ ├── Steam.cs
│ ├── SteamClient.cs
│ ├── SteamGameController.cs
│ ├── SteamLibrary.cs
│ ├── SteamLibrary.csproj
│ ├── SteamLibrarySettingsView.xaml
│ ├── SteamLibrarySettingsView.xaml.cs
│ ├── SteamLibrarySettingsViewModel.cs
│ ├── SteamMetadataProvider.cs
│ ├── SteamShared
│ │ ├── MetadataProvider.cs
│ │ ├── SharedSteamSettings.cs
│ │ ├── SharedSteamSettingsViewModel.cs
│ │ ├── SteamApiClient.cs
│ │ ├── SteamGameMetadata.cs
│ │ ├── SteamTagNamer.cs
│ │ ├── StoreAppDetailsResult.cs
│ │ ├── TagCategories
│ │ │ ├── TagIdCategory.cs
│ │ │ └── tagsCategories.json
│ │ ├── TagLocalization
│ │ │ ├── brazilian.json
│ │ │ ├── bulgarian.json
│ │ │ ├── czech.json
│ │ │ ├── danish.json
│ │ │ ├── dutch.json
│ │ │ ├── english.json
│ │ │ ├── finnish.json
│ │ │ ├── french.json
│ │ │ ├── german.json
│ │ │ ├── greek.json
│ │ │ ├── hungarian.json
│ │ │ ├── italian.json
│ │ │ ├── japanese.json
│ │ │ ├── koreana.json
│ │ │ ├── latam.json
│ │ │ ├── norwegian.json
│ │ │ ├── polish.json
│ │ │ ├── portuguese.json
│ │ │ ├── romanian.json
│ │ │ ├── russian.json
│ │ │ ├── schinese.json
│ │ │ ├── spanish.json
│ │ │ ├── swedish.json
│ │ │ ├── tchinese.json
│ │ │ ├── thai.json
│ │ │ ├── turkish.json
│ │ │ ├── ukrainian.json
│ │ │ └── vietnamese.json
│ │ └── WebApiClient.cs
│ ├── addon.yaml
│ ├── app.config
│ ├── extension.yaml
│ ├── packages.config
│ └── plugin.cfg
├── UplayLibrary
│ ├── App.xaml
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── LocalCache.cs
│ │ └── ProductSchema.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── uplayicon.png
│ ├── Uplay.cs
│ ├── UplayClient.cs
│ ├── UplayGameController.cs
│ ├── UplayLibrary.cs
│ ├── UplayLibrary.csproj
│ ├── UplayLibrarySettingsView.xaml
│ ├── UplayLibrarySettingsView.xaml.cs
│ ├── UplayLibrarySettingsViewModel.cs
│ ├── UplayMetadataProvider.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ └── packages.config
└── XboxLibrary
│ ├── App.xaml
│ ├── Localization
│ ├── af_ZA.xaml
│ ├── ar_SA.xaml
│ ├── bg_BG.xaml
│ ├── ca_ES.xaml
│ ├── cs_CZ.xaml
│ ├── da_DK.xaml
│ ├── de_DE.xaml
│ ├── el_GR.xaml
│ ├── en_US.xaml
│ ├── eo_UY.xaml
│ ├── es_ES.xaml
│ ├── et_EE.xaml
│ ├── fa_IR.xaml
│ ├── fi_FI.xaml
│ ├── fr_FR.xaml
│ ├── gl_ES.xaml
│ ├── he_IL.xaml
│ ├── hr_HR.xaml
│ ├── hu_HU.xaml
│ ├── id_ID.xaml
│ ├── it_IT.xaml
│ ├── ja_JP.xaml
│ ├── ko_KR.xaml
│ ├── lt_LT.xaml
│ ├── mr_IN.xaml
│ ├── nl_NL.xaml
│ ├── no_NO.xaml
│ ├── pl_PL.xaml
│ ├── pt_BR.xaml
│ ├── pt_PT.xaml
│ ├── ro_RO.xaml
│ ├── ru_RU.xaml
│ ├── si_LK.xaml
│ ├── sk_SK.xaml
│ ├── sl_SI.xaml
│ ├── sr_SP.xaml
│ ├── sv_SE.xaml
│ ├── tr_TR.xaml
│ ├── uk_UA.xaml
│ ├── vi_VN.xaml
│ ├── zh_CN.xaml
│ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ └── AuthenticationData.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── Services
│ └── XboxAccountClient.cs
│ ├── Xbox.cs
│ ├── XboxGameController.cs
│ ├── XboxLibrary.cs
│ ├── XboxLibrary.csproj
│ ├── XboxLibraryClient.cs
│ ├── XboxLibrarySettingsView.xaml
│ ├── XboxLibrarySettingsView.xaml.cs
│ ├── XboxLibrarySettingsViewModel.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ ├── icon.png
│ └── packages.config
├── Localization
├── af_ZA.xaml
├── ar_SA.xaml
├── bg_BG.xaml
├── ca_ES.xaml
├── cs_CZ.xaml
├── da_DK.xaml
├── de_DE.xaml
├── el_GR.xaml
├── en_US.xaml
├── eo_UY.xaml
├── es_ES.xaml
├── et_EE.xaml
├── fa_IR.xaml
├── fi_FI.xaml
├── fr_FR.xaml
├── gl_ES.xaml
├── he_IL.xaml
├── hr_HR.xaml
├── hu_HU.xaml
├── id_ID.xaml
├── it_IT.xaml
├── ja_JP.xaml
├── ko_KR.xaml
├── lt_LT.xaml
├── mr_IN.xaml
├── nl_NL.xaml
├── no_NO.xaml
├── pl_PL.xaml
├── pt_BR.xaml
├── pt_PT.xaml
├── ro_RO.xaml
├── ru_RU.xaml
├── si_LK.xaml
├── sk_SK.xaml
├── sl_SI.xaml
├── sr_SP.xaml
├── sv_SE.xaml
├── tr_TR.xaml
├── uk_UA.xaml
├── vi_VN.xaml
├── zh_CN.xaml
└── zh_TW.xaml
├── Metadata
├── IGDBMetadata
│ ├── App.xaml
│ ├── IGDBMetadata.csproj
│ ├── IgdbClient.cs
│ ├── IgdbLazyMetadataProvider.cs
│ ├── IgdbMetadataPlugin.cs
│ ├── IgdbMetadataSettingsView.xaml
│ ├── IgdbMetadataSettingsView.xaml.cs
│ ├── IgdbMetadataSettingsViewModel.cs
│ ├── IgdbSearchContext.cs
│ ├── Localization
│ │ ├── af_ZA.xaml
│ │ ├── ar_SA.xaml
│ │ ├── bg_BG.xaml
│ │ ├── ca_ES.xaml
│ │ ├── cs_CZ.xaml
│ │ ├── da_DK.xaml
│ │ ├── de_DE.xaml
│ │ ├── el_GR.xaml
│ │ ├── en_US.xaml
│ │ ├── eo_UY.xaml
│ │ ├── es_ES.xaml
│ │ ├── et_EE.xaml
│ │ ├── fa_IR.xaml
│ │ ├── fi_FI.xaml
│ │ ├── fr_FR.xaml
│ │ ├── gl_ES.xaml
│ │ ├── he_IL.xaml
│ │ ├── hr_HR.xaml
│ │ ├── hu_HU.xaml
│ │ ├── id_ID.xaml
│ │ ├── it_IT.xaml
│ │ ├── ja_JP.xaml
│ │ ├── ko_KR.xaml
│ │ ├── lt_LT.xaml
│ │ ├── mr_IN.xaml
│ │ ├── nl_NL.xaml
│ │ ├── no_NO.xaml
│ │ ├── pl_PL.xaml
│ │ ├── pt_BR.xaml
│ │ ├── pt_PT.xaml
│ │ ├── ro_RO.xaml
│ │ ├── ru_RU.xaml
│ │ ├── si_LK.xaml
│ │ ├── sk_SK.xaml
│ │ ├── sl_SI.xaml
│ │ ├── sr_SP.xaml
│ │ ├── sv_SE.xaml
│ │ ├── tr_TR.xaml
│ │ ├── uk_UA.xaml
│ │ ├── vi_VN.xaml
│ │ ├── zh_CN.xaml
│ │ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Models
│ │ ├── ImageSizes.cs
│ │ └── Models.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── igdbicon.png
│ ├── addon.yaml
│ ├── extension.yaml
│ ├── packages.config
│ └── plugin.cfg
└── UniversalSteamMetadata
│ ├── App.xaml
│ ├── Localization
│ ├── af_ZA.xaml
│ ├── ar_SA.xaml
│ ├── bg_BG.xaml
│ ├── ca_ES.xaml
│ ├── cs_CZ.xaml
│ ├── da_DK.xaml
│ ├── de_DE.xaml
│ ├── el_GR.xaml
│ ├── en_US.xaml
│ ├── eo_UY.xaml
│ ├── es_ES.xaml
│ ├── et_EE.xaml
│ ├── fa_IR.xaml
│ ├── fi_FI.xaml
│ ├── fr_FR.xaml
│ ├── gl_ES.xaml
│ ├── he_IL.xaml
│ ├── hr_HR.xaml
│ ├── hu_HU.xaml
│ ├── id_ID.xaml
│ ├── it_IT.xaml
│ ├── ja_JP.xaml
│ ├── ko_KR.xaml
│ ├── lt_LT.xaml
│ ├── mr_IN.xaml
│ ├── nl_NL.xaml
│ ├── no_NO.xaml
│ ├── pl_PL.xaml
│ ├── pt_BR.xaml
│ ├── pt_PT.xaml
│ ├── ro_RO.xaml
│ ├── ru_RU.xaml
│ ├── si_LK.xaml
│ ├── sk_SK.xaml
│ ├── sl_SI.xaml
│ ├── sr_SP.xaml
│ ├── sv_SE.xaml
│ ├── tr_TR.xaml
│ ├── uk_UA.xaml
│ ├── vi_VN.xaml
│ ├── zh_CN.xaml
│ └── zh_TW.xaml
│ ├── LocalizationKeys.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── UniversalSteamMetadata.cs
│ ├── UniversalSteamMetadata.csproj
│ ├── UniversalSteamMetadataProvider.cs
│ ├── UniversalSteamMetadataSettingsView.xaml
│ ├── UniversalSteamMetadataSettingsView.xaml.cs
│ ├── UniversalSteamMetadataSettingsViewModel.cs
│ ├── addon.yaml
│ ├── extension.yaml
│ ├── icon.png
│ └── packages.config
├── PlayniteExtensions.sln
├── Tests
├── BattleNetLibrary.Tests
│ ├── BattleNetLibrary.Tests.csproj
│ ├── BattleNetLibraryTests.cs
│ ├── BattleNetMetadataProviderTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Services
│ │ └── BattleNetAccountClientTests.cs
│ ├── app.config
│ └── packages.config
├── Common.Tests
│ ├── Common.Tests.csproj
│ ├── DateHelperTests.cs
│ ├── EncryptionTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── packages.config
├── EpicLibrary.Tests
│ ├── EpicLibrary.Tests.csproj
│ ├── EpicLibraryTests.cs
│ ├── EpicTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── WebStoreClientTests.cs
│ └── packages.config
├── GogLibrary.Tests
│ ├── GogLibrary.Tests.csproj
│ ├── GogLibraryTests.cs
│ ├── GogMetadataProviderTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Services
│ │ └── WebApiClientTests.cs
│ ├── app.config
│ └── packages.config
├── HumbleLibrary.Tests
│ ├── HumbleLibrary.Tests.csproj
│ ├── HumbleLibraryTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── packages.config
├── IGDBMetadata.Tests
│ ├── IGDBMetadata.Tests.csproj
│ ├── IgdbMetadataPluginTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TestSetup.cs
│ └── packages.config
├── ItchioLibrary.Tests
│ ├── ButlerTests.cs
│ ├── ItchTests.cs
│ ├── ItchioLibrary.Tests.csproj
│ ├── ItchioLibraryTests.cs
│ ├── ItchioMetadataProviderTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TestSetup.cs
│ ├── app.config
│ └── packages.config
├── OriginLibrary.Tests
│ ├── ModelsTests.cs
│ ├── OriginLibrary.Tests.csproj
│ ├── OriginLibraryTests.cs
│ ├── OriginMetadataProviderTests.cs
│ ├── OriginTests.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Resources
│ │ └── __Installer
│ │ │ └── installerdata.xml
│ ├── Services
│ │ └── OriginApiClientTests.cs
│ ├── app.config
│ └── packages.config
├── SteamLibrary.Tests
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Services
│ │ ├── SteamApiClientTests.cs
│ │ └── WebApiClientTests.cs
│ ├── SteamLibrary.Tests.csproj
│ ├── SteamLibraryTests.cs
│ ├── SteamMetadataProviderTests.cs
│ ├── SteamTests.cs
│ ├── app.config
│ └── packages.config
├── TwitchLibrary.Tests
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TwitchLibrary.Tests.csproj
│ ├── TwitchLibraryTests.cs
│ ├── TwitchTests.cs
│ ├── app.config
│ └── packages.config
├── UniversalSteamMetadata.Tests
│ ├── MetadataTest.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SearchTests.cs
│ ├── UniversalSteamMetadata.Tests.csproj
│ └── packages.config
├── UplayLibrary.Tests
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── UplayLibrary.Tests.csproj
│ ├── UplayLibraryTests.cs
│ ├── UplayMetadataProviderTests.cs
│ ├── app.config
│ └── packages.config
└── XboxLibrary.Tests
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── XboxLibrary.Tests.csproj
│ ├── XboxLibraryTests.cs
│ └── packages.config
└── Themes
├── Desktop
├── Classic
│ ├── Constants.xaml
│ ├── DerivedStyles
│ │ └── DetailsViewItemStyle.xaml
│ └── theme.yaml
├── ClassicBlue
│ ├── Constants.xaml
│ ├── DerivedStyles
│ │ └── DetailsViewItemStyle.xaml
│ └── theme.yaml
├── ClassicGreen
│ ├── Constants.xaml
│ ├── DerivedStyles
│ │ └── DetailsViewItemStyle.xaml
│ └── theme.yaml
├── ClassicPlain
│ ├── Constants.xaml
│ ├── DerivedStyles
│ │ └── DetailsViewItemStyle.xaml
│ └── theme.yaml
└── DefaultRed
│ ├── Constants.xaml
│ └── theme.yaml
└── Fullscreen
└── DefaultLime
├── Constants.xaml
└── theme.yaml
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Check for existing issue**
11 | Please use issue search in the repository if the bug is something really obvious there's a high change it was already reported.
12 |
13 | **Describe the bug**
14 | A clear and concise description of what the bug is.
15 |
16 | **To Reproduce**
17 | If it's not clear from the description how to reproduce the issue please add clear steps to reproduce the behavior.
18 |
19 | **Screenshots**
20 | If applicable, add screenshots to help explain your problem.
21 |
22 | **Diagnostics ID**
23 | Please generate diagnostics package from "About Playnite" menu and attach identifier you received. If the issue is a crash bug, you can generate diag. package directly from crash dialog.
24 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Playnite Discord server
4 | url: https://discord.gg/BrtABqe
5 | about: Official Discord server for general chat and support with Playnite.
6 | - name: Playnite SDK documentation
7 | url: https://playnite.link/docs/
8 | about: Useful documentation when creating pluings and themes.
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/custom.md:
--------------------------------------------------------------------------------
1 | ## Use [issue templates](https://github.com/JosefNemec/PlayniteExtensions/issues/new/choose) instead!
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Check for existing issue**
11 | Please use issue search in the repository if your feature request is something really obvious there's a high change it was already requested.
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Screenshots**
17 | If applicable, add screenshots to help explain requested changes.
18 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "PlayniteRepo"]
2 | path = PlayniteRepo
3 | url = https://github.com/JosefNemec/Playnite.git
4 | branch = master
5 | [submodule "PlayniteBackendRepo"]
6 | path = PlayniteBackendRepo
7 | url = git@codeberg.org:Playnite/Backend.git
8 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Josef Nemec
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/manifests/LibraryExporterPS_Builtin.yaml:
--------------------------------------------------------------------------------
1 | AddonId: LibraryExporterPS_Builtin
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 6.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/LibraryExporterPS_Builtin_2_0.pext
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_ClassicDesktop.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_ClassicDesktop
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_ClassicDesktop_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_ClassicDesktopBlue.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_ClassicDesktopBlue
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_ClassicDesktopBlue_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_ClassicDesktopGreen.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_ClassicDesktopGreen
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_ClassicDesktopGreen_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_ClassicDesktopPlain.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_ClassicDesktopPlain
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_ClassicDesktopPlain_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_DefaultDesktopRed.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_DefaultDesktopRed
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_DefaultDesktopRed_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/manifests/themes/Playnite_builtin_DefaultFullscreenLime.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Playnite_builtin_DefaultFullscreenLime
2 | Packages:
3 | - Version: 2.0
4 | RequiredApiVersion: 2.0.0
5 | ReleaseDate: 2021-09-03
6 | PackageUrl: https://github.com/JosefNemec/PlayniteExtensions/releases/download/1.0/Playnite_builtin_DefaultFullscreenLime_2_0.pthm
7 | Changelog:
8 | - Playnite 9 support
--------------------------------------------------------------------------------
/screenshots/theme_classic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/screenshots/theme_classic.jpg
--------------------------------------------------------------------------------
/screenshots/theme_classic_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/screenshots/theme_classic_thumb.jpg
--------------------------------------------------------------------------------
/source/Generic/LibraryExporter/LibraryExporter.psm1:
--------------------------------------------------------------------------------
1 | function ExportLibrary()
2 | {
3 | param(
4 | $scriptMainMenuItemActionArgs
5 | )
6 |
7 | $path = $PlayniteApi.Dialogs.SaveFile("CSV|*.csv|Formated TXT|*.txt")
8 | if ($path)
9 | {
10 | if ($path -match ".csv$")
11 | {
12 | $PlayniteApi.Database.Games | Select Name, Source, ReleaseDate, Playtime, IsInstalled | ConvertTo-Csv | Out-File $path -Encoding utf8
13 | }
14 | else
15 | {
16 | $PlayniteApi.Database.Games | Select Name, Source, ReleaseDate, Playtime, IsInstalled | Format-Table -AutoSize | Out-File $path -Encoding utf8
17 | }
18 |
19 | $PlayniteApi.Dialogs.ShowMessage("Library exported successfully.");
20 | }
21 | }
22 |
23 | function GetMainMenuItems()
24 | {
25 | param(
26 | $menuArgs
27 | )
28 |
29 | $menuItem = New-Object Playnite.SDK.Plugins.ScriptMainMenuItem
30 | $menuItem.Description = "Export Library"
31 | $menuItem.FunctionName = "ExportLibrary"
32 | $menuItem.MenuSection = "@"
33 | return $menuItem
34 | }
--------------------------------------------------------------------------------
/source/Generic/LibraryExporter/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: LibraryExporterPS_Builtin
2 | Name: Library Exporter
3 | Author: Playnite
4 | Version: 2.0
5 | Module: LibraryExporter.psm1
6 | Type: Script
--------------------------------------------------------------------------------
/source/Generic/PlayniteExtensions.Common/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/AmazonGamesLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace AmazonGamesLibrary
17 | {
18 | public partial class AmazonGamesLibrarySettingsView : UserControl
19 | {
20 | public AmazonGamesLibrarySettingsView()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/AmazonGamesMetadataProvider.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using Playnite.SDK.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace AmazonGamesLibrary
12 | {
13 | public class AmazonGamesMetadataProvider : LibraryMetadataProvider
14 | {
15 | public override GameMetadata GetMetadata(Game game)
16 | {
17 | var gameInfo = new GameMetadata
18 | {
19 | Links = new List()
20 | };
21 |
22 | gameInfo.Links.Add(new Link("PCGamingWiki", @"http://pcgamingwiki.com/w/index.php?search=" + game.Name));
23 | return gameInfo;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Models/EntitlementsRequest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace AmazonGamesLibrary.Models
8 | {
9 | public class EntitlementsRequest
10 | {
11 | public string Operation = "GetEntitlements";
12 | public string clientId = "Sonic";
13 | public int syncPoint = 0;
14 | public string nextToken;
15 | public int maxResults = 500;
16 | public string keyId;
17 | public string hardwareHash;
18 | public string productIdFilter = null;
19 | public bool disableStateFilter = true;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/Models/GameConfiguration.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace AmazonGamesLibrary.Models
8 | {
9 | public class GameConfiguration
10 | {
11 | public const string ConfigFileName = "fuel.json";
12 |
13 | public class Config
14 | {
15 | public string Command;
16 | public string WorkingSubdirOverride;
17 | public List Args;
18 | public List AuthScopes;
19 | public string ClientId;
20 | }
21 |
22 | public string SchemaVersion;
23 | public Config Main;
24 | }
25 |
26 | public class InstallGameInfo
27 | {
28 | public string Id { get; set; }
29 | public string InstallDirectory { get; set; }
30 | public int Installed { get; set; }
31 | public string ProductTitle { get; set; }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: AmazonLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/AmazonGamesLibrary/icon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/master/manifests/AmazonLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Amazon/Twitch game library.
6 | Name: AmazonGames library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: AmazonLibrary_Builtin
2 | Name: AmazonGames library integration
3 | Author: Playnite
4 | Version: 2.8
5 | Module: AmazonGamesLibrary.dll
6 | Type: GameLibrary
7 | Icon: icon.png
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/AmazonGamesLibrary/icon.png
--------------------------------------------------------------------------------
/source/Libraries/AmazonGamesLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/BattleNetClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite;
2 | using Playnite.Common;
3 | using Playnite.SDK;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Diagnostics;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace BattleNetLibrary
12 | {
13 | public class BattleNetClient : LibraryClient
14 | {
15 | private static readonly ILogger logger = LogManager.GetLogger();
16 |
17 | public override string Icon => BattleNet.Icon;
18 |
19 | public override bool IsInstalled => BattleNet.IsInstalled;
20 |
21 | public override void Open()
22 | {
23 | BattleNet.StartClient();
24 | }
25 |
26 | public override void Shutdown()
27 | {
28 | var mainProc = Process.GetProcessesByName("Battle.net").FirstOrDefault();
29 | if (mainProc == null)
30 | {
31 | logger.Info("Battle.net client is no longer running, no need to shut it down.");
32 | return;
33 | }
34 |
35 | ProcessStarter.StartProcessWait(BattleNet.ClientExecPath, "--exec=shutdown", null);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/BattleNetLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace BattleNetLibrary
17 | {
18 | ///
19 | /// Interaction logic for BattleNetLibrarySettingsView.xaml
20 | ///
21 | public partial class BattleNetLibrarySettingsView : UserControl
22 | {
23 | public BattleNetLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Environment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BattleNetLibrary
8 | {
9 | public class Environment
10 | {
11 | public static bool IsDebugBuild
12 | {
13 | get
14 | {
15 | #if DEBUG
16 | return true;
17 | #else
18 | return false;
19 | #endif
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Models/BNetApp.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Models;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace BattleNetLibrary.Models
9 | {
10 | public enum BNetAppType
11 | {
12 | Default,
13 | Classic
14 | }
15 | public class BNetApp
16 | {
17 | public string ProductId;
18 | public string InternalId;
19 | public string IconUrl;
20 | public string BackgroundUrl;
21 | public string CoverUrl;
22 | public string Name;
23 | public BNetAppType Type;
24 | public string ClassicExecutable;
25 | public List Links;
26 | public long ApiId;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Models/BattleNetApiStatus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BattleNetLibrary.Models
8 | {
9 | public class BattleNetApiStatus
10 | {
11 | public class AccountCompletion
12 | {
13 | public bool requiresHealup;
14 | public string accountCountry;
15 | public string completionUrl;
16 | }
17 |
18 | public AccountCompletion accountCompletion;
19 | public string logoutUri;
20 | public string loginUri;
21 | public bool authenticated;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Models/ClassicGames.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BattleNetLibrary.Models
8 | {
9 | public class ClassicGames
10 | {
11 | public class ClassicGame
12 | {
13 | public string localizedGameName;
14 | public string regionalGameFranchiseIconFilename;
15 | public List cdKeys;
16 | }
17 |
18 | public List classicGames;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Models/GamesAndSubs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BattleNetLibrary.Models
8 | {
9 | public class GamesAndSubs
10 | {
11 | public class GameAccount
12 | {
13 | public class AccountUniqueId
14 | {
15 | public long gameAccountId;
16 | public int gameServiceRegionId;
17 | public long programId;
18 | }
19 |
20 | public long titleId;
21 | public string localizedGameName;
22 | public string gameAccountName;
23 | public AccountUniqueId gameAccountUniqueId;
24 | public string gameAccountRegion;
25 | public string regionalGameFranchiseIconFilename;
26 | public string gameAccountStatus;
27 | public bool titleHasSubscriptions;
28 | public bool titleHasGameTime;
29 | }
30 |
31 | public List gameAccounts;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/Resources/battleneticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/BattleNetLibrary/Resources/battleneticon.png
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: BattlenetLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/BattleNetLibrary/Resources/battleneticon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/master/manifests/BattlenetLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Battle.net library.
6 | Name: Battle.net library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: BattlenetLibrary_Builtin
2 | Name: Battle.net library integration
3 | Author: Playnite
4 | Version: 2.23
5 | Module: BattleNetLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\battleneticon.png
--------------------------------------------------------------------------------
/source/Libraries/BattleNetLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/EpicLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace EpicLibrary
17 | {
18 | ///
19 | /// Interaction logic for EpicLibrarySettingsView.xaml
20 | ///
21 | public partial class EpicLibrarySettingsView : UserControl
22 | {
23 | public EpicLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Models/AccountResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace EpicLibrary.Models
8 | {
9 | public class AccountResponse
10 | {
11 | public string id;
12 | public string displayName;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Models/AssetsResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace EpicLibrary.Models
8 | {
9 | public class Asset
10 | {
11 | public string appName;
12 | public string labelName;
13 | public string buildVersion;
14 | public string catalogItemId;
15 | public string @namespace;
16 | public string assetId;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Models/ErrorResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace EpicLibrary.Models
8 | {
9 | public class ErrorResponse
10 | {
11 | public string errorCode;
12 | public string errorMessage;
13 | public int numericErrorCode;
14 | public string originatingService;
15 | public string intent;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Models/OauthResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace EpicLibrary.Models
8 | {
9 | public class OauthResponse
10 | {
11 | public string access_token;
12 | public long expires_in;
13 | public DateTime expires_at;
14 | public string token_type;
15 | public string refresh_token;
16 | public long refresh_expires;
17 | public DateTime refresh_expires_at;
18 | public string account_id;
19 | public string client_id;
20 | public bool internal_client;
21 | public string client_service;
22 | public string app;
23 | public string in_app_id;
24 | public string device_id;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Models/PlaytimesResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace EpicLibrary.Models
8 | {
9 | public class PlaytimeItem
10 | {
11 | public string accountId;
12 | public string artifactId;
13 | public ulong totalTime;
14 | }
15 | }
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/Resources/epicicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/EpicLibrary/Resources/epicicon.png
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: EpicGamesLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/EpicLibrary/Resources/epicicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/EpicGamesLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Epic store library.
6 | Name: Epic Store library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: EpicGamesLibrary_Builtin
2 | Name: Epic Store library integration
3 | Author: Playnite
4 | Version: 2.24
5 | Module: EpicLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\epicicon.png
--------------------------------------------------------------------------------
/source/Libraries/EpicLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Environment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary
8 | {
9 | public class Environment
10 | {
11 | public static bool IsDebugBuild
12 | {
13 | get
14 | {
15 | #if DEBUG
16 | return true;
17 | #else
18 | return false;
19 | #endif
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/GogClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.Common;
2 | using Playnite.SDK;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Diagnostics;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Reflection;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace GogLibrary
13 | {
14 | public class GogClient : LibraryClient
15 | {
16 | private static readonly ILogger logger = LogManager.GetLogger();
17 |
18 | public override string Icon => Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Resources\galaxyIcon.png");
19 |
20 | public override bool IsInstalled => Gog.IsInstalled;
21 |
22 | public override void Open()
23 | {
24 | ProcessStarter.StartProcess(Gog.ClientExecPath, string.Empty);
25 | }
26 |
27 | public override void Shutdown()
28 | {
29 | var mainProc = Process.GetProcessesByName("GalaxyClient").FirstOrDefault();
30 | if (mainProc == null)
31 | {
32 | logger.Info("Galaxy client is no longer running, no need to shut it down.");
33 | return;
34 | }
35 |
36 | ProcessStarter.StartProcessWait(Gog.ClientExecPath, "/command=shutdown", null);
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/GogLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace GogLibrary
17 | {
18 | ///
19 | /// Interaction logic for GogLibrarySettingsView.xaml
20 | ///
21 | public partial class GogLibrarySettingsView : UserControl
22 | {
23 | public GogLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Rekeningnaam
5 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/AccountBasicResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary.Models
8 | {
9 | public class AccountBasicResponse
10 | {
11 | public string accessToken;
12 | public int accessTokenExpires;
13 | public string avatar;
14 | public int cacheExpires;
15 | public string clientId;
16 | public bool isLoggedIn;
17 | public string userId;
18 | public string username;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/GogGameMetadata.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Models;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace GogLibrary.Models
9 | {
10 | public class GogGameMetadata : GameMetadata
11 | {
12 | public ProductApiDetail GameDetails { get; set; }
13 | public StorePageResult.ProductDetails StoreDetails { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/LibraryGameResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary.Models
8 | {
9 | public class LibraryGameResponse
10 | {
11 | public class Game
12 | {
13 | public string id;
14 | public bool achievementSupport;
15 | public string image;
16 | public string title;
17 | public string url;
18 | }
19 |
20 | public class Stats
21 | {
22 | public DateTime? lastSession;
23 | public int playtime;
24 | }
25 |
26 | public Game game;
27 |
28 | public object stats;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/PagedResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary.Models
8 | {
9 | public class PagedResponse
10 | {
11 | public class Embedded
12 | {
13 | public List items;
14 | }
15 |
16 | public int page;
17 | public int pages;
18 | public int total;
19 | public int limit;
20 | public Embedded _embedded;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/StoreGamesFilteredListResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary.Models
8 | {
9 | public class StoreGamesFilteredListResponse
10 | {
11 | public class Product
12 | {
13 | public string title;
14 | public string image;
15 | public string url;
16 | public string supportUrl;
17 | public string forumUrl;
18 | public bool isGame;
19 | public string slug;
20 | public uint id;
21 | }
22 |
23 | public List products;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Models/StorePageResult.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace GogLibrary.Models
8 | {
9 | public class StorePageResult
10 | {
11 | public class ProductDetails
12 | {
13 | public class SluggedName
14 | {
15 | public string name;
16 | public string slug;
17 | }
18 |
19 | public class Feature
20 | {
21 | public string name;
22 | public string id;
23 | }
24 |
25 | public List genres;
26 | public List tags;
27 | public List gameTags;
28 | public List features;
29 | public string publisher;
30 | public List developers;
31 | public DateTime? globalReleaseDate;
32 | public string id;
33 | public string galaxyBackgroundImage;
34 | public string backgroundImage;
35 | public string boxArtImage;
36 | public string image;
37 | public int size;
38 | }
39 |
40 | public ProductDetails cardProduct;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Resources/galaxyIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/GogLibrary/Resources/galaxyIcon.png
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/Resources/gogicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/GogLibrary/Resources/gogicon.png
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: GogLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/GogLibrary/Resources/gogicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/GogLibrary_Builtin.yaml
5 | ShortDescription: Imports games from GOG game library.
6 | Name: GOG library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: GogLibrary_Builtin
2 | Name: GOG library integration
3 | Author: Playnite
4 | Version: 2.19
5 | Module: GogLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\gogicon.png
--------------------------------------------------------------------------------
/source/Libraries/GogLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/HumbleLibraryClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace HumbleLibrary
9 | {
10 | public class HumbleLibraryClient : LibraryClient
11 | {
12 | public override bool IsInstalled => true;
13 |
14 | public override void Open()
15 | {
16 | throw new NotImplementedException();
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/HumbleLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace HumbleLibrary
17 | {
18 | public partial class HumbleLibrarySettingsView : UserControl
19 | {
20 | public HumbleLibrarySettingsView()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ignoreer derde party winkel speletjies
5 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Models/UserHome.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace HumbleLibrary.Models
8 | {
9 | public class UserHome
10 | {
11 | public List gamekeys;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/Resources/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/HumbleLibrary/Resources/icon.png
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: HumbleLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/HumbleLibrary/icon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/HumbleLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Humble store library.
6 | Name: Humble library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: HumbleLibrary_Builtin
2 | Name: Humble library integration
3 | Author: Playnite
4 | Version: 3.7
5 | Module: HumbleLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\icon.png
--------------------------------------------------------------------------------
/source/Libraries/HumbleLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/ItchioClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ItchioLibrary
9 | {
10 | public class ItchioClient : LibraryClient
11 | {
12 | public override string Icon => Itch.Icon;
13 |
14 | public override bool IsInstalled => Itch.IsInstalled;
15 |
16 | public override void Open()
17 | {
18 | Itch.StartClient();
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/ItchioLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace ItchioLibrary
17 | {
18 | ///
19 | /// Interaction logic for ItchioLibrarySettingsView.xaml
20 | ///
21 | public partial class ItchioLibrarySettingsView : UserControl
22 | {
23 | public ItchioLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/Butler.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models.Butler
8 | {
9 | public class ButlerOutput
10 | {
11 | public long time;
12 | public string type;
13 | }
14 |
15 | public class Log : ButlerOutput
16 | {
17 | public const string MessageType = "log";
18 | public string level;
19 | public string message;
20 | }
21 |
22 | public class ListenNotification : ButlerOutput
23 | {
24 | public const string MessageType = "butlerd/listen-notification";
25 |
26 | public class Tcp
27 | {
28 | public string address;
29 | }
30 |
31 | public Tcp tcp;
32 | public string secret;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/Collection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class Collection
10 | {
11 | ///
12 | /// Site-wide unique identifier generated by itch.io
13 | ///
14 | public long id;
15 | ///
16 | /// Human-friendly title (may contain any character)
17 | ///
18 | public string title;
19 | ///
20 | /// Date the collection was created
21 | ///
22 | public DateTime createdAt;
23 | ///
24 | /// Date this collection was last updated at
25 | ///
26 | public DateTime updatedAt;
27 | ///
28 | /// Count of the games in this collection
29 | ///
30 | public long gamesCount;
31 | ///
32 | /// Identifier of the itch.io user to which this collection belongs
33 | ///
34 | public long userId;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/FetchCaves.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class FetchCaves
10 | {
11 | public List items;
12 | public string nextCursor;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/FetchCollections.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class FetchCollections
10 | {
11 | ///
12 | /// Requested collections.
13 | ///
14 | public List items;
15 | ///
16 | /// True if the info was from local DB and it should be re-queried using “Fresh”.
17 | ///
18 | public bool stale;
19 | }
20 |
21 | public static class GameRecordsSource
22 | {
23 | public const string Owned = "owned";
24 | public const string Installed = "installed";
25 | public const string Profile = "profile";
26 | public const string Collection = "collection";
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/FetchGame.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class FetchGame
10 | {
11 | public ItchioGame game;
12 | public bool stale;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/FetchGameRecords.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace ItchioLibrary.Models
5 | {
6 | public class FetchGameRecords
7 | {
8 | ///
9 | /// Requested game records.
10 | ///
11 | public List records;
12 | ///
13 | /// True if the info was from local DB and it should be re-queried using “Fresh”.
14 | ///
15 | public bool stale;
16 | }
17 | }
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/GameRecord.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ItchioLibrary.Models
4 | {
5 | public class GameRecord
6 | {
7 | ///
8 | /// Site-wide unique identifier generated by itch.io
9 | ///
10 | public int id;
11 |
12 | ///
13 | /// Human-friendly title (may contain any character)
14 | ///
15 | public string title;
16 |
17 | ///
18 | /// Url of the game cover
19 | ///
20 | public string cover;
21 | }
22 | }
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/HTMLLaunch.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | ///
10 | /// Ask the client to perform an HTML launch, ie. open an HTML5 game, ideally in an embedded browser.
11 | /// Sent during Launch.
12 | ///
13 | public class HTMLLaunch
14 | {
15 | ///
16 | /// Absolute path on disk to serve
17 | ///
18 | public string rootFolder;
19 |
20 |
21 | ///
22 | /// Path of index file, relative to root folder
23 | ///
24 | public string indexPath;
25 |
26 | ///
27 | /// args string[]
28 | ///
29 | public string[] args;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/ItchInstallState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class ItchInstallState
10 | {
11 | public string current;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/LaunchManifest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public class LaunchManifest
10 | {
11 | public class Action
12 | {
13 | public string name { get; set; }
14 | public string path { get; set; }
15 | public string platform { get; set; }
16 | public List args { get; set; }
17 | }
18 |
19 | public class Prerequisite
20 | {
21 | public string name { get; set; }
22 | }
23 |
24 | public List actions { get; set; }
25 | public List prereqs { get; set; }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/LogMessage.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | public enum LogLevel
10 | {
11 | debug,
12 | info,
13 | warning,
14 | error
15 | }
16 |
17 | public class LogMessage
18 | {
19 | public LogLevel level;
20 | public string message;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/PrereqsFailed.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | ///
10 | /// Sent during Launch, when one or more prerequisites have failed to install.
11 | /// The user may choose to proceed with the launch anyway.
12 | ///
13 | public class PrereqsFailed
14 | {
15 | ///
16 | /// Short error
17 | ///
18 | public string error;
19 |
20 | ///
21 | /// Longer error(to include in logs)
22 | ///
23 | public string errorStack;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/ProfileList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | ///
10 | /// Represents a user for which we have profile information, ie. that we can connect as, etc.
11 | ///
12 | public class Profile
13 | {
14 | ///
15 | /// itch.io user ID, doubling as profile ID
16 | ///
17 | public long id;
18 |
19 | ///
20 | /// Timestamp the user last connected at(to the client)
21 | ///
22 | public DateTime? lastConnected;
23 |
24 | //User information
25 | public User user;
26 | }
27 |
28 | public class ProfileList
29 | {
30 | public List profiles;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/ShellLaunch.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | ///
10 | /// Ask the client to perform a shell launch, ie. open an item with the operating system’s default handler (File explorer).
11 | /// Sent during Launch.
12 | ///
13 | public class ShellLaunch
14 | {
15 | ///
16 | /// Absolute path of item to open, e.g. D:\\Games\\Itch\\garden\\README.txt
17 | ///
18 | public string itemPath;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Models/URLLaunch.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ItchioLibrary.Models
8 | {
9 | ///
10 | /// Ask the client to perform an URL launch, ie. open an address with the system browser or appropriate.
11 | /// Sent during Launch.
12 | ///
13 | public class URLLaunch
14 | {
15 | ///
16 | /// URL to open, e.g. https://itch.io/community
17 | ///
18 | public string url;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/Resources/itchioicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/ItchioLibrary/Resources/itchioicon.png
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/StartupSelectionView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace ItchioLibrary
17 | {
18 | ///
19 | /// Interaction logic for StartupSelectionView.xaml
20 | ///
21 | public partial class StartupSelectionView : UserControl
22 | {
23 | public StartupSelectionView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/StartupSelectionViewModel.cs:
--------------------------------------------------------------------------------
1 | using ItchioLibrary.Models;
2 | using Playnite.SDK;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 | using System.Windows;
9 |
10 | namespace ItchioLibrary
11 | {
12 | public class StartupSelectionViewModel
13 | {
14 | private readonly Window window;
15 |
16 | public List Actions { get; set; }
17 | public int SelectedActionIndex { get; private set; } = -1;
18 |
19 | public RelayCommand SelectCommand
20 | {
21 | get => new RelayCommand((a) =>
22 | {
23 | SelectedActionIndex = a.actionIndex;
24 | window.Close();
25 | });
26 | }
27 |
28 | public RelayCommand CancelCommand
29 | {
30 | get => new RelayCommand(() =>
31 | {
32 | window.Close();
33 | });
34 | }
35 |
36 | public StartupSelectionViewModel(Window window, List actions)
37 | {
38 | this.window = window;
39 | Actions = actions;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: ItchioLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/ItchioLibrary/Resources/itchioicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/ItchioLibrary_Builtin.yaml
5 | ShortDescription: Imports games from itch.io store library.
6 | Name: itch.io library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: ItchioLibrary_Builtin
2 | Name: itch.io library integration
3 | Author: Playnite
4 | Version: 2.7
5 | Module: ItchioLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\itchioicon.png
--------------------------------------------------------------------------------
/source/Libraries/ItchioLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/EAC.cs:
--------------------------------------------------------------------------------
1 | using Playnite.Common;
2 | using Playnite.SDK.Data;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace OriginLibrary
11 | {
12 | public class EasyAntiCheatLauncherSettings
13 | {
14 | public string title { get; set; }
15 | public string executable { get; set; }
16 | public string parameters { get; set; }
17 | public string use_cmdline_parameters { get; set; }
18 | public string working_directory { get; set; }
19 | }
20 |
21 | public class EasyAntiCheat
22 | {
23 | public static EasyAntiCheatLauncherSettings GetLauncherSettings(string gameDirectory)
24 | {
25 | var settingsPath = Path.Combine(gameDirectory, "EasyAntiCheat", "Launcher", "Settings.json");
26 | if (!File.Exists(settingsPath))
27 | {
28 | throw new FileNotFoundException($"EAC launcher settings not found: {settingsPath}");
29 | }
30 |
31 | return Serialization.FromJson(File.ReadAllText(settingsPath));
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Environment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace OriginLibrary
8 | {
9 | public class Environment
10 | {
11 | public static bool IsDebugBuild
12 | {
13 | get
14 | {
15 | #if DEBUG
16 | return true;
17 | #else
18 | return false;
19 | #endif
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/AccountEntitlementsResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace OriginLibrary.Models
8 | {
9 | public class AccountEntitlementsResponse
10 | {
11 | public class Entitlement
12 | {
13 | public long entitlementId;
14 | public string offerId;
15 | public string offerPath;
16 | public string status;
17 | public string offerType;
18 | public string originDisplayType;
19 | public string masterTitleId;
20 | public string gameDistributionSubType;
21 | }
22 |
23 | public string error;
24 | public List entitlements;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/AccountInfoResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace OriginLibrary.Models
8 | {
9 | public class AccountInfoResponse
10 | {
11 | public class AcccountInfoData
12 | {
13 | public long pidId;
14 | }
15 |
16 | public string error;
17 | public AcccountInfoData pid;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/AuthTokenResponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace OriginLibrary.Models
8 | {
9 | public class AuthTokenResponse
10 | {
11 | public string error;
12 | public string expires_in;
13 | public string token_type;
14 | public string access_token;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/GameInstallerData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Xml.Serialization;
7 |
8 | namespace OriginLibrary.Models
9 | {
10 | [XmlRoot("DiPManifest")]
11 | public class GameInstallerData
12 | {
13 | public class Launcher
14 | {
15 | public string filePath { get; set; }
16 | public string parameters { get; set; }
17 | public bool executeElevated { get; set; }
18 | public bool requires64BitOS { get; set; }
19 | public bool trial { get; set; }
20 | }
21 |
22 | public class Runtime
23 | {
24 | [XmlElement("launcher")]
25 | public List launchers { get; set; }
26 | }
27 |
28 | [XmlElement("runtime")]
29 | public Runtime runtime { get; set; }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/OriginGameMetadata.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Models;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace OriginLibrary.Models
9 | {
10 | public class OriginGameMetadata : GameMetadata
11 | {
12 | public GameStoreDataResponse StoreDetails { get; set; }
13 | public StorePageMetadata StoreMetadata { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/StorePageMetadata.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace OriginLibrary.Models
8 | {
9 | public class StorePageMetadata
10 | {
11 | public class Components
12 | {
13 | public List> items;
14 | }
15 |
16 | public class GameHub
17 | {
18 | public string name;
19 | public string type;
20 | public string locale;
21 | public string country;
22 | public Components components;
23 | }
24 |
25 | public GameHub gamehub;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Models/UsageReponse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Xml.Linq;
7 |
8 | namespace OriginLibrary.Models
9 | {
10 | public class UsageResponse
11 | {
12 | public UsageResponse(string xml)
13 | {
14 | this.total = 0;
15 | this.lastSessionEndTimeStamp = null;
16 |
17 | var usage = XElement.Parse(xml);
18 |
19 | string value = usage?.Element("total")?.Value;
20 | if (!string.IsNullOrEmpty(value))
21 | {
22 | long.TryParse(value, out this.total);
23 | }
24 |
25 | value = usage?.Element("lastSessionEndTimeStamp")?.Value;
26 | if (!string.IsNullOrEmpty(value))
27 | {
28 | long time = 0;
29 | if (long.TryParse(value, out time) && time > 0)
30 | {
31 | this.lastSessionEndTimeStamp = DateTimeOffset.FromUnixTimeMilliseconds(time).DateTime;
32 | }
33 | }
34 | }
35 |
36 | public long total;
37 | public DateTime? lastSessionEndTimeStamp;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/OriginLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace OriginLibrary
17 | {
18 | ///
19 | /// Interaction logic for OriginLibrarySettingsView.xaml
20 | ///
21 | public partial class OriginLibrarySettingsView : UserControl
22 | {
23 | public OriginLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/Resources/originicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/OriginLibrary/Resources/originicon.png
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: OriginLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/OriginLibrary/Resources/originicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/OriginLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Origin game library.
6 | Name: Origin library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: OriginLibrary_Builtin
2 | Name: EA app library integration
3 | Author: Playnite
4 | Version: 2.13
5 | Module: OriginLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\originicon.png
--------------------------------------------------------------------------------
/source/Libraries/OriginLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/RockstarGamesLibrary.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 15
4 | VisualStudioVersion = 15.0.28307.1062
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RockstarGamesLibrary", "RockstarGamesLibrary.csproj", "{2351B5C1-6E28-4B79-A1D9-90FDA53B5417}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {2351B5C1-6E28-4B79-A1D9-90FDA53B5417}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {2351B5C1-6E28-4B79-A1D9-90FDA53B5417}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {2351B5C1-6E28-4B79-A1D9-90FDA53B5417}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {2351B5C1-6E28-4B79-A1D9-90FDA53B5417}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(ExtensibilityGlobals) = postSolution
23 | SolutionGuid = {873269A8-6DB8-4AF1-BB80-2D55EB4DDC04}
24 | EndGlobalSection
25 | EndGlobal
26 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/RockstarGamesLibrarySettingsView.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/RockstarGamesLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace RockstarGamesLibrary
17 | {
18 | public partial class RockstarGamesLibrarySettingsView : UserControl
19 | {
20 | public RockstarGamesLibrarySettingsView()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/RockstarGamesLibrarySettingsViewModel.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace RockstarGamesLibrary
9 | {
10 | public class RockstarGamesLibrarySettings
11 | {
12 | }
13 |
14 | public class RockstarGamesLibrarySettingsViewModel : PluginSettingsViewModel
15 | {
16 | public RockstarGamesLibrarySettingsViewModel(RockstarGamesLibrary library, IPlayniteAPI api) : base(library, api)
17 | {
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Rockstar_Games_Library
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/RockstarLibrary/icon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/Rockstar_Games_Library.yaml
5 | ShortDescription: Imports games from Rockstar Games launcher.
6 | Description: Only imports installed games.
7 | Name: Rockstar Games library integration
8 | Author: Playnite
9 | Links:
10 | Website: https://github.com/JosefNemec/PlayniteExtensions
11 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
12 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: Rockstar_Games_Library
2 | Name: Rockstar Games library integration
3 | Author: Josef Nemec
4 | Version: 2.10
5 | Module: RockstarGamesLibrary.dll
6 | Type: GameLibrary
7 | Icon: icon.png
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/RockstarLibrary/icon.png
--------------------------------------------------------------------------------
/source/Libraries/RockstarLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/AppState.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SteamLibrary
8 | {
9 | ///
10 | /// Represents overall game installation and running state.
11 | ///
12 | public class AppState
13 | {
14 | public bool Installed
15 | {
16 | get; set;
17 | }
18 |
19 | public bool Launching
20 | {
21 | get; set;
22 | }
23 |
24 | public bool Running
25 | {
26 | get; set;
27 | }
28 |
29 | public bool Installing
30 | {
31 | get; set;
32 | }
33 |
34 | public bool Uninstalling
35 | {
36 | get; set;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Configuration.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SteamLibrary
8 | {
9 | public class Configuration
10 | {
11 | public string ServicesEndpoint { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Environment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SteamLibrary
8 | {
9 | public class Environment
10 | {
11 | public static bool IsDebugBuild
12 | {
13 | get
14 | {
15 | #if DEBUG
16 | return true;
17 | #else
18 | return false;
19 | #endif
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/GameExtension.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Models;
2 | using SteamKit2;
3 |
4 | namespace SteamLibrary
5 | {
6 | internal static class GameExtension
7 | {
8 | public static GameID ToSteamGameID(this Game game)
9 | {
10 | return new GameID(ulong.Parse(game.GameId));
11 | }
12 |
13 | public static GameID ToSteamGameID(this GameMetadata game)
14 | {
15 | return new GameID(ulong.Parse(game.GameId));
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Gidse
5 | Werkswinkel
6 | Stoor Agtergrond
7 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Prikaži tipku Prijatelji na gornjoj ploči
5 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Models/LocalSteamUser.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SteamLibrary.Models
8 | {
9 | public class LocalSteamUser
10 | {
11 | public ulong Id
12 | {
13 | get; set;
14 | }
15 |
16 | public string AccountName
17 | {
18 | get; set;
19 | }
20 |
21 | public string PersonaName
22 | {
23 | get; set;
24 | }
25 |
26 | public bool Recent
27 | {
28 | get; set;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Models/ResolveVanityResult.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace SteamLibrary.Models
8 | {
9 | public class ResolveVanityResult
10 | {
11 | public class Response
12 | {
13 | public int success;
14 | public string steamid;
15 | public string message;
16 | }
17 |
18 | public Response response;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Resources/steamicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/SteamLibrary/Resources/steamicon.png
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/Services/SteamServicesClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using Playnite.Services;
3 | using SteamLibrary.Models;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Net.Http;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace SteamLibrary.Services
12 | {
13 | public class SteamServicesClient : BaseServicesClient
14 | {
15 | private readonly ILogger logger = LogManager.GetLogger();
16 |
17 | public SteamServicesClient(string endpoint, Version playniteVersion) : base(endpoint, playniteVersion)
18 | {
19 | }
20 |
21 | public List GetSteamLibrary(ulong userName, bool freeSub = false)
22 | {
23 | var url = "/steam/library/" + userName;
24 | if (freeSub)
25 | {
26 | url += "?freeSub=true";
27 | }
28 |
29 | return ExecuteGetRequest>(url);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/SteamClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.Common;
2 | using Playnite.SDK;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Diagnostics;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace SteamLibrary
11 | {
12 | public class SteamClient : LibraryClient
13 | {
14 | private static readonly ILogger logger = LogManager.GetLogger();
15 |
16 | public override string Icon => Steam.Icon;
17 |
18 | public override bool IsInstalled => Steam.IsInstalled;
19 |
20 | public override void Open()
21 | {
22 | ProcessStarter.StartProcess(Steam.ClientExecPath, string.Empty);
23 | }
24 |
25 | public override void Shutdown()
26 | {
27 | var mainProc = Process.GetProcessesByName("Steam").FirstOrDefault();
28 | if (mainProc == null)
29 | {
30 | logger.Info("Steam client is no longer running, no need to shut it down.");
31 | return;
32 | }
33 |
34 | ProcessStarter.StartProcessWait(Steam.ClientExecPath, "-shutdown", null);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/SteamShared/SteamGameMetadata.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Models;
2 | using SteamKit2;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Steam.Models
10 | {
11 | public class SteamGameMetadata : GameMetadata
12 | {
13 | public KeyValue ProductDetails { get; set; }
14 | public StoreAppDetailsResult.AppDetails StoreDetails { get; set; }
15 | public AppReviewsResult.QuerySummary UserReviewDetails { get; set; }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/SteamShared/TagCategories/TagIdCategory.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace SteamLibrary.SteamShared
9 | {
10 | public class TagIdCategory
11 | {
12 | [SerializationPropertyName("Id")]
13 | public int Id { get; set; }
14 |
15 | [SerializationPropertyName("Category")]
16 | public TagCategory Category { get; set; }
17 | }
18 |
19 | public enum TagCategory
20 | {
21 | Assessments,
22 | Features,
23 | FundingEtc,
24 | Genres,
25 | HardwareInput,
26 | OtherTags,
27 | Players,
28 | RatingsEtc,
29 | Software,
30 | SubGenres,
31 | ThemesMoods,
32 | TopLevelGenres,
33 | VisualsViewpoint
34 | };
35 | }
36 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: SteamLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/SteamLibrary/Resources/steamicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/SteamLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Steam library.
6 | Name: Steam library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: SteamLibrary_Builtin
2 | Name: Steam library integration
3 | Author: Playnite
4 | Version: 2.28
5 | Module: SteamLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\steamicon.png
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/source/Libraries/SteamLibrary/plugin.cfg:
--------------------------------------------------------------------------------
1 | {
2 | "ServicesEndpoint": "http://api.playnite.link/api/"
3 | }
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/mr_IN.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 | स्थापित असलेले गेम आयात करा
4 | स्थापित नसलेले गेम आयात करा
5 | खाते कनेक्ट करा
6 | प्रयोक्ता प्रमाणित झाला आहे
7 | प्रयोक्ता प्रमाणित करता आला नाही.
8 | सर्व गेम आयात करा
9 | खाजगी खाते
10 | सार्वजनिक खाते
11 | API की
12 | {0} क्लाएंट वापरून सुरू करा
13 | खेळलेल्याची कालावधी आयात करा
14 | मेटाडेटा भाषा:
15 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Models/LocalCache.cs:
--------------------------------------------------------------------------------
1 | using ProtoBuf;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace UplayLibrary.Models
9 | {
10 | [ProtoContract]
11 | public class UplayCacheGame
12 | {
13 | [ProtoMember(1)]
14 | public uint UplayId { get; set; }
15 | [ProtoMember(2)]
16 | public uint InstallId { get; set; }
17 | [ProtoMember(3)]
18 | public string GameInfo { get; set; }
19 | }
20 |
21 | [ProtoContract]
22 | public class UplayCacheGameCollection
23 | {
24 | [ProtoMember(1)]
25 | public List Games { get; set; }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/Resources/uplayicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/UplayLibrary/Resources/uplayicon.png
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/UplayLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace UplayLibrary
17 | {
18 | ///
19 | /// Interaction logic for UplayLibrarySettingsView.xaml
20 | ///
21 | public partial class UplayLibrarySettingsView : UserControl
22 | {
23 | public UplayLibrarySettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/UplayLibrarySettingsViewModel.cs:
--------------------------------------------------------------------------------
1 | using Playnite;
2 | using Playnite.SDK;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace UplayLibrary
10 | {
11 | public class UplayLibrarySettings
12 | {
13 | public bool ImportInstalledGames { get; set; } = true;
14 | public bool ImportUninstalledGames { get; set; } = Uplay.IsInstalled;
15 | }
16 |
17 | public class UplayLibrarySettingsViewModel : PluginSettingsViewModel
18 | {
19 | public UplayLibrarySettingsViewModel(UplayLibrary library, IPlayniteAPI api) : base(library, api)
20 | {
21 | var savedSettings = LoadSavedSettings();
22 | if (savedSettings != null)
23 | {
24 | Settings = savedSettings;
25 | }
26 | else
27 | {
28 | Settings = new UplayLibrarySettings();
29 | }
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: UplayLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/UplayLibrary/Resources/uplayicon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/UplayLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Ubisoft Connect game library.
6 | Name: Ubisoft Connect library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: UplayLibrary_Builtin
2 | Name: Ubisoft Connect library integration
3 | Author: Playnite
4 | Version: 2.7
5 | Module: UplayLibrary.dll
6 | Type: GameLibrary
7 | Icon: Resources\uplayicon.png
--------------------------------------------------------------------------------
/source/Libraries/UplayLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/XboxLibraryClient.cs:
--------------------------------------------------------------------------------
1 | using Playnite.Common;
2 | using Playnite.SDK;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace XboxLibrary
10 | {
11 | public class XboxLibraryClient : LibraryClient
12 | {
13 | private readonly XboxLibrarySettingsViewModel settings;
14 |
15 | public override bool IsInstalled => true;
16 |
17 | public override string Icon => Xbox.Icon;
18 |
19 | public XboxLibraryClient(XboxLibrarySettingsViewModel settings)
20 | {
21 | this.settings = settings;
22 | }
23 |
24 | public override void Open()
25 | {
26 | if (Computer.WindowsVersion < WindowsVersion.Win10)
27 | {
28 | throw new Exception("Xbox game library is only supported on Windows 10 and newer.");
29 | }
30 |
31 | if (settings.Settings.XboxAppClientPriorityLaunch && Xbox.IsXboxPassAppInstalled)
32 | {
33 | Xbox.OpenXboxPassApp();
34 | }
35 | else
36 | {
37 | ProcessStarter.StartUrl("ms-windows-store://");
38 | }
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/XboxLibrarySettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace XboxLibrary
17 | {
18 | public partial class XboxLibrarySettingsView : UserControl
19 | {
20 | public XboxLibrarySettingsView()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: XboxLibrary_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Libraries/XboxLibrary/icon.png
3 | Type: GameLibrary
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/XboxLibrary_Builtin.yaml
5 | ShortDescription: Imports games from Xbox Live account.
6 | Name: Xbox library integration
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: XboxLibrary_Builtin
2 | Name: Xbox library integration
3 | Author: Playnite
4 | Version: 2.15
5 | Module: XboxLibrary.dll
6 | Type: GameLibrary
7 | Icon: icon.png
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Libraries/XboxLibrary/icon.png
--------------------------------------------------------------------------------
/source/Libraries/XboxLibrary/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/IgdbMetadataSettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace IGDBMetadata
17 | {
18 | ///
19 | /// Interaction logic for IgdbMetadataSettingsView.xaml
20 | ///
21 | public partial class IgdbMetadataSettingsView : UserControl
22 | {
23 | public IgdbMetadataSettingsView()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Kies agtergrond prent vir {0}
5 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Models/Models.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using Playnite.Backend.IGDB;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 |
8 | namespace IGDBMetadata
9 | {
10 | public class IgdbImageSlectItem : ImageFileOption
11 | {
12 | public readonly IIgdbItem Image;
13 |
14 | public IgdbImageSlectItem(Artwork artwork)
15 | {
16 | Image = artwork;
17 | Path = IgdbMetadataPlugin.GetImageUrl(artwork.url, ImageSizes.screenshot_med);
18 | }
19 |
20 | public IgdbImageSlectItem(Screenshot screenshot)
21 | {
22 | Image = screenshot;
23 | Path = IgdbMetadataPlugin.GetImageUrl(screenshot.url, ImageSizes.screenshot_med);
24 | }
25 | }
26 |
27 | public class IgdbGameSelectItem : GenericItemOption
28 | {
29 | public readonly Game Game;
30 |
31 | public IgdbGameSelectItem(Game game)
32 | {
33 | Game = game;
34 | Name = IgdbSearchContext.GetSearchItemName(game);
35 | Description = IgdbSearchContext.GetSearchItemDescription(game);
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/Resources/igdbicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Metadata/IGDBMetadata/Resources/igdbicon.png
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: IGDBMetadata_Builtin
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Metadata/IGDBMetadata/Resources/igdbicon.png
3 | Type: MetadataProvider
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/IGDBMetadata_Builtin.yaml
5 | ShortDescription: Imports game metadata from IGDB.com game database.
6 | Name: IGDB metadata provider
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: IGDBMetadata_Builtin
2 | Name: IGDB metadata provider
3 | Author: Playnite
4 | Version: 2.11
5 | Module: IGDBMetadata.dll
6 | Type: MetadataProvider
7 | Icon: Resources\igdbicon.png
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/IGDBMetadata/plugin.cfg:
--------------------------------------------------------------------------------
1 | {
2 | "BackendEndpoint": "https://api2.playnite.link/api/"
3 | }
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/App.xaml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/af_ZA.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Gidse
5 | Werkswinkel
6 | Stoor Agtergrond
7 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/eo_UY.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/fi_FI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/hr_HR.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Prikaži tipku Prijatelji na gornjoj ploči
5 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/si_LK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/sk_SK.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/sl_SI.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/Localization/sv_SE.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/UniversalSteamMetadataSettingsView.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace UniversalSteamMetadata
17 | {
18 | public partial class UniversalSteamMetadataSettingsView : UserControl
19 | {
20 | public UniversalSteamMetadataSettingsView()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/UniversalSteamMetadataSettingsViewModel.cs:
--------------------------------------------------------------------------------
1 | using Playnite.SDK;
2 | using Steam;
3 | using SteamLibrary.SteamShared;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace UniversalSteamMetadata
11 | {
12 | public class UniversalSteamMetadataSettings : SharedSteamSettings
13 | {
14 | }
15 |
16 |
17 | public class UniversalSteamMetadataSettingsViewModel : SharedSteamSettingsViewModel
18 | {
19 | public UniversalSteamMetadataSettingsViewModel(UniversalSteamMetadata plugin, IPlayniteAPI api) : base(plugin, api)
20 | {
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/addon.yaml:
--------------------------------------------------------------------------------
1 | AddonId: Universal_Steam_Metadata
2 | IconUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/source/Metadata/UniversalSteamMetadata/icon.png
3 | Type: MetadataProvider
4 | InstallerManifestUrl: https://github.com/JosefNemec/PlayniteExtensions/raw/master/manifests/Universal_Steam_Metadata.yaml
5 | ShortDescription: Imports game metadata from Steam store.
6 | Name: Universal Steam Metadata
7 | Author: Playnite
8 | Links:
9 | Website: https://github.com/JosefNemec/PlayniteExtensions
10 | Support: https://github.com/JosefNemec/PlayniteExtensions/wiki
11 | SourceUrl: https://github.com/JosefNemec/PlayniteExtensions
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/extension.yaml:
--------------------------------------------------------------------------------
1 | Id: Universal_Steam_Metadata
2 | Name: Universal Steam Metadata
3 | Author: Josef Nemec
4 | Version: 2.17
5 | Module: UniversalSteamMetadata.dll
6 | Type: MetadataProvider
7 | Icon: icon.png
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/JosefNemec/PlayniteExtensions/9e398e7874ffc505d6c2102c260c33c4ea36484f/source/Metadata/UniversalSteamMetadata/icon.png
--------------------------------------------------------------------------------
/source/Metadata/UniversalSteamMetadata/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/BattleNetLibraryTests.cs:
--------------------------------------------------------------------------------
1 | using Moq;
2 | using NUnit.Framework;
3 | using Playnite.SDK;
4 | using Playnite.Tests;
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace BattleNetLibrary.Tests
12 | {
13 | [TestFixture]
14 | public class BattleNetLibraryTests
15 | {
16 | public static BattleNetLibrary CreateLibrary()
17 | {
18 | return new BattleNetLibrary(PlayniteTests.GetTestingApi().Object);
19 | }
20 |
21 | [Test]
22 | public void GetInstalledGamesTest()
23 | {
24 | var library = CreateLibrary();
25 | var games = library.GetInstalledGames();
26 | CollectionAssert.IsNotEmpty(games);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/BattleNetMetadataProviderTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.SDK.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace BattleNetLibrary.Tests
10 | {
11 | [TestFixture]
12 | public class BattleNetMetadataProviderTests
13 | {
14 | [Test]
15 | public void StandardDownloadTest()
16 | {
17 | var provider = new BattleNetMetadataProvider();
18 | var data = provider.GetMetadata(new Game() { GameId = "D3" });
19 | Assert.IsNotNull(data.GameInfo);
20 | Assert.IsNotNull(data.Icon);
21 | Assert.IsNotNull(data.CoverImage);
22 | Assert.IsNotNull(data.BackgroundImage);
23 | CollectionAssert.IsNotEmpty(data.GameInfo.Links);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("BattleNetLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("BattleNetLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("80987402-3d46-444e-8290-505b10d6bb14")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/Services/BattleNetAccountClientTests.cs:
--------------------------------------------------------------------------------
1 | using BattleNetLibrary.Services;
2 | using NUnit.Framework;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace BattleNetLibrary.Tests.Services
10 | {
11 | [TestFixture]
12 | public class BattleNetAccountClientTests
13 | {
14 | [Test]
15 | public void GetLoginUrlTest()
16 | {
17 | Assert.IsNotNull(BattleNetAccountClient.GetDefaultApiStatus());
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/BattleNetLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Tests/Common.Tests/EncryptionTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Security.Principal;
4 | using System.Text;
5 | using NUnit.Framework;
6 | using PlayniteExtensions.Common;
7 |
8 | namespace Common.Tests
9 | {
10 | [TestFixture]
11 | public class EncryptionTests
12 | {
13 | [Test]
14 | public void TestMethod1()
15 | {
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/source/Tests/Common.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("Common.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("Common.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2021")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("17784809-c96d-473e-8d99-3a543bf5e375")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/Common.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/source/Tests/EpicLibrary.Tests/EpicLibraryTests.cs:
--------------------------------------------------------------------------------
1 | using Moq;
2 | using NUnit.Framework;
3 | using Playnite.SDK;
4 | using Playnite.SDK.Plugins;
5 | using Playnite.Tests;
6 | using System;
7 | using System.Collections.Generic;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 |
12 | namespace EpicLibrary.Tests
13 | {
14 | [TestFixture]
15 | public class EpicLibraryTests
16 | {
17 | public static EpicLibrary CreateLibrary()
18 | {
19 | return new EpicLibrary(PlayniteTests.GetTestingApi().Object);
20 | }
21 |
22 | [Test]
23 | public void GetInstalledGamesTest()
24 | {
25 | var library = CreateLibrary();
26 | var games = library.GetInstalledGames();
27 | CollectionAssert.IsNotEmpty(games);
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/source/Tests/EpicLibrary.Tests/EpicTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace EpicLibrary.Tests
9 | {
10 | public class EpicTests
11 | {
12 | public static string TempPath
13 | {
14 | get
15 | {
16 | var path = Path.Combine(Path.GetTempPath(), "playnite_epic_unittests");
17 | if (!Directory.Exists(path))
18 | {
19 | Directory.CreateDirectory(path);
20 | }
21 |
22 | return path;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Tests/EpicLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("EpicLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("EpicLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2019")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("dd58a297-6c39-4f47-b3fe-f04b307420fa")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/EpicLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Tests/GogLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("GogLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("GogLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("a850a236-0216-4b31-879a-33556b952336")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/GogLibrary.Tests/Services/WebApiClientTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using GogLibrary.Services;
7 | using NUnit.Framework;
8 |
9 | namespace GogLibrary.Tests.Services
10 | {
11 | [TestFixture]
12 | public class WebApiClientTests
13 | {
14 | [Test]
15 | public void GetGameDetailsTest()
16 | {
17 | var client = new GogApiClient();
18 | var existingDetails = client.GetGameDetails("2");
19 | Assert.IsNotNull(existingDetails);
20 |
21 | var nonexistingDetails = client.GetGameDetails("99999999");
22 | Assert.IsNull(nonexistingDetails);
23 | }
24 |
25 | [Test]
26 | public void GetGameStoreDataTest()
27 | {
28 | var client = new GogApiClient();
29 | var existingStore = client.GetGameStoreData(@"https://www.gog.com/game/vampire_the_masquerade_bloodlines");
30 | Assert.IsNotNull(existingStore);
31 |
32 | var noneexistingStore = client.GetGameDetails("https://www.gog.com/game/vampire");
33 | Assert.IsNull(noneexistingStore);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/source/Tests/GogLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/GogLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Tests/HumbleLibrary.Tests/HumbleLibraryTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using NUnit.Framework;
7 | using System.IO;
8 | using Playnite;
9 | using Playnite.Tests;
10 |
11 | namespace HumbleLibrary.Tests
12 | {
13 | [TestFixture]
14 | public class HumbleLibraryTests
15 | {
16 | public static HumbleLibrary CreateLibrary()
17 | {
18 | return new HumbleLibrary(PlayniteTests.GetTestingApi().Object);
19 | }
20 |
21 | [Test]
22 | public void GetTroveGamesTest()
23 | {
24 | var games = HumbleLibrary.GetTroveGames();
25 | CollectionAssert.IsNotEmpty(games);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Tests/HumbleLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("HumbleLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("HumbleLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2020")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("ad86aabc-0f57-4fcd-a3d9-b124c7b18a44")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/HumbleLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Tests/IGDBMetadata.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("IGDBMetadata.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("IGDBMetadata.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2019")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("f96a8cca-8f8a-497f-bab1-8a93b4b174ed")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/IGDBMetadata.Tests/TestSetup.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.Common;
3 | using Playnite.SDK;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace ItchioLibrary.Tests
11 | {
12 | [SetUpFixture]
13 | public class TestSetup
14 | {
15 | [OneTimeSetUp]
16 | public void GlobalSetup()
17 | {
18 | LogManager.Init(new NLogLogProvider());
19 |
20 | }
21 |
22 | [OneTimeTearDown]
23 | public void GlobalTeardown()
24 | {
25 |
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Tests/IGDBMetadata.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/ButlerTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading;
7 | using System.Threading.Tasks;
8 |
9 | namespace ItchioLibrary.Tests
10 | {
11 | [TestFixture]
12 | public class ButlerTests
13 | {
14 | [Test]
15 | public void InstallationPathsTest()
16 | {
17 | FileAssert.Exists(Butler.ExecutablePath);
18 | FileAssert.Exists(Butler.DatabasePath);
19 | }
20 |
21 | [Test]
22 | public void StartupTest()
23 | {
24 | using (var butler = new Butler())
25 | {
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/ItchTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ItchioLibrary.Tests
10 | {
11 | [TestFixture]
12 | public class ItchTests
13 | {
14 | [Test]
15 | public void InstallationPathsTest()
16 | {
17 | DirectoryAssert.Exists(Itch.InstallationPath);
18 | FileAssert.Exists(Itch.ClientExecPath);
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/ItchioLibraryTests.cs:
--------------------------------------------------------------------------------
1 | using Moq;
2 | using NUnit.Framework;
3 | using Playnite.SDK;
4 | using Playnite.Tests;
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 |
11 | namespace ItchioLibrary.Tests
12 | {
13 | [TestFixture]
14 | public class ItchioLibraryTets
15 | {
16 | public static ItchioLibrary CreateLibrary()
17 | {
18 | return new ItchioLibrary(PlayniteTests.GetTestingApi().Object);
19 | }
20 |
21 | [Test]
22 | public void GetInstalledGamesTest()
23 | {
24 | var library = CreateLibrary();
25 | var games = library.GetInstalledGames();
26 | CollectionAssert.IsNotEmpty(games);
27 | }
28 |
29 | [Test]
30 | public void GetLibraryGamesTest()
31 | {
32 | var library = CreateLibrary();
33 | var games = library.GetLibraryGames();
34 | CollectionAssert.IsNotEmpty(games);
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/ItchioMetadataProviderTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.SDK.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ItchioLibrary.Tests
10 | {
11 | [TestFixture]
12 | public class ItchioMetadataProviderTests
13 | {
14 | [Test]
15 | public void GetMetadataTest()
16 | {
17 | var provider = new ItchioMetadataProvider(ItchioLibraryTets.CreateLibrary());
18 | var metadata = provider.GetMetadata(new Game { GameId = "356189" });
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("ItchioLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("ItchioLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2019")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("8611e15b-4efb-4a2c-b7a9-f88aea9720a0")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/TestSetup.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.Common;
3 | using Playnite.SDK;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace ItchioLibrary.Tests
11 | {
12 | [SetUpFixture]
13 | public class TestSetup
14 | {
15 | [OneTimeSetUp]
16 | public void GlobalSetup()
17 | {
18 | LogManager.Init(new NLogLogProvider());
19 |
20 | }
21 |
22 | [OneTimeTearDown]
23 | public void GlobalTeardown()
24 | {
25 |
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/source/Tests/ItchioLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/ModelsTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using OriginLibrary.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.IO;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Xml;
10 | using System.Xml.Serialization;
11 |
12 | namespace OriginLibrary.Tests
13 | {
14 | [TestFixture]
15 | public class ModelsTests
16 | {
17 | [Test]
18 | public void InstallerDataDeserialization()
19 | {
20 | var data = OriginLibrary.GetGameInstallerData(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources"));
21 | Assert.AreEqual(2, data.runtime.launchers.Count);
22 | Assert.AreEqual(true, data.runtime.launchers[1].requires64BitOS);
23 |
24 | data = OriginLibrary.GetGameInstallerData(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "sub", "sub2"));
25 | Assert.AreEqual(2, data.runtime.launchers.Count);
26 | Assert.AreEqual(true, data.runtime.launchers[1].requires64BitOS);
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/OriginMetadataProviderTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.API;
3 | using Playnite.SDK.Models;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace OriginLibrary.Tests
11 | {
12 | [TestFixture]
13 | public class OriginMetadataProviderTests
14 | {
15 | [Test]
16 | public void StandardDownloadTest()
17 | {
18 | var provider = new OriginMetadataProvider(OriginLibraryTests.CreateLibrary());
19 | var data = provider.GetMetadata(new Game() { GameId = "Origin.OFR.50.0000557" });
20 | Assert.IsNotNull(data.GameInfo);
21 | Assert.IsNotNull(data.CoverImage);
22 | Assert.IsNotNull(data.BackgroundImage);
23 | Assert.IsNotNull(data.GameInfo.ReleaseDate);
24 | Assert.IsFalse(string.IsNullOrEmpty(data.GameInfo.Description));
25 | CollectionAssert.IsNotEmpty(data.GameInfo.Publishers);
26 | CollectionAssert.IsNotEmpty(data.GameInfo.Developers);
27 | CollectionAssert.IsNotEmpty(data.GameInfo.Genres);
28 | CollectionAssert.IsNotEmpty(data.GameInfo.Links);
29 | CollectionAssert.IsNotEmpty(data.GameInfo.Publishers);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/OriginTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace OriginLibrary.Tests
9 | {
10 | public class OriginTests
11 | {
12 | public static string TempPath
13 | {
14 | get
15 | {
16 | var path = Path.Combine(Path.GetTempPath(), "playnite_origin_unittests");
17 | if (!Directory.Exists(path))
18 | {
19 | Directory.CreateDirectory(path);
20 | }
21 |
22 | return path;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("OriginLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("OriginLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("cc048b24-8130-4194-adb4-8983e18acff2")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/OriginLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("Playnite.SteamLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("Playnite.SteamLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("d43257a7-488f-471a-83d1-bd5f9fd0e8de")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/Services/SteamApiClientTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Steam;
3 | using SteamLibrary.Services;
4 | using System;
5 | using System.Collections.Generic;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 |
10 | namespace SteamLibrary.Tests.Services
11 | {
12 | [TestFixture]
13 | public class SteamApiClientTests
14 | {
15 | [Test]
16 | public void GetProductInfoTest()
17 | {
18 | var client = new SteamApiClient();
19 | var data = client.GetProductInfo(214490).GetAwaiter().GetResult();
20 | Assert.IsTrue(!string.IsNullOrEmpty(data["common"]["name"].Value));
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/Services/WebApiClientTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Steam;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace SteamLibrary.Tests.Services
10 | {
11 | [TestFixture]
12 | public class WebApiClientTests
13 | {
14 | [Test]
15 | public void GetStoreAppDetailTest()
16 | {
17 | var data = WebApiClient.GetStoreAppDetail(214490);
18 | Assert.IsTrue(!string.IsNullOrEmpty(data.name));
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/SteamTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace SteamLibrary.Tests
9 | {
10 | public class SteamTests
11 | {
12 | public static string TempPath
13 | {
14 | get
15 | {
16 | var path = Path.Combine(Path.GetTempPath(), "playnite_steam_unittests");
17 | if (!Directory.Exists(path))
18 | {
19 | Directory.CreateDirectory(path);
20 | }
21 |
22 | return path;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/SteamLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/source/Tests/TwitchLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("TwitchLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("TwitchLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("148ef9fb-1414-461c-96af-1299afc5e5a4")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/TwitchLibrary.Tests/TwitchTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace TwitchLibrary.Tests
9 | {
10 | public class TwitchTests
11 | {
12 | public static string TempPath
13 | {
14 | get
15 | {
16 | var path = Path.Combine(Path.GetTempPath(), "playnite_twitch_unittests");
17 | if (!Directory.Exists(path))
18 | {
19 | Directory.CreateDirectory(path);
20 | }
21 |
22 | return path;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/source/Tests/TwitchLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/TwitchLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/source/Tests/UniversalSteamMetadata.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("UniversalSteamMetadata.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("UniversalSteamMetadata.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2020")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("e97c01ec-e4e8-429c-a9b9-73a3bd87c1e1")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/UniversalSteamMetadata.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/source/Tests/UplayLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("UplayLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("UplayLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2018")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("af1c50cd-8868-4155-b4cf-ee37824a63c0")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/UplayLibrary.Tests/UplayMetadataProviderTests.cs:
--------------------------------------------------------------------------------
1 | using NUnit.Framework;
2 | using Playnite.SDK.Models;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace UplayLibrary.Tests
10 | {
11 | [TestFixture]
12 | public class UplayMetadataProviderTests
13 | {
14 | [Test]
15 | public void UpdateGameWithMetadataTest()
16 | {
17 | var library = UplayLibraryTests.CreateLibrary();
18 | var provider = new UplayMetadataProvider();
19 | var games = library.GetInstalledGames();
20 | var metadata = provider.GetMetadata(new Game() { GameId = games.First().GameId });
21 | Assert.IsNotNull(metadata.Icon);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/source/Tests/UplayLibrary.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/source/Tests/UplayLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/source/Tests/XboxLibrary.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | [assembly: AssemblyTitle("XboxLibrary.Tests")]
6 | [assembly: AssemblyDescription("")]
7 | [assembly: AssemblyConfiguration("")]
8 | [assembly: AssemblyCompany("")]
9 | [assembly: AssemblyProduct("XboxLibrary.Tests")]
10 | [assembly: AssemblyCopyright("Copyright © 2020")]
11 | [assembly: AssemblyTrademark("")]
12 | [assembly: AssemblyCulture("")]
13 |
14 | [assembly: ComVisible(false)]
15 |
16 | [assembly: Guid("16d306fd-8158-41ad-9adb-765f8f6d3a3b")]
17 |
18 | // [assembly: AssemblyVersion("1.0.*")]
19 | [assembly: AssemblyVersion("1.0.0.0")]
20 | [assembly: AssemblyFileVersion("1.0.0.0")]
21 |
--------------------------------------------------------------------------------
/source/Tests/XboxLibrary.Tests/XboxLibraryTests.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using NUnit.Framework;
7 | using System.IO;
8 | using Playnite;
9 | using Playnite.Tests;
10 | using System.Web;
11 | using XboxLibrary.Models;
12 | using Playnite.Common;
13 | using System.Net.Http;
14 | using Playnite.SDK.Models;
15 | using XboxLibrary.Services;
16 |
17 | namespace XboxLibrary.Tests
18 | {
19 | [TestFixture]
20 | public class HumbleLibraryTests
21 | {
22 | public static XboxLibrary CreateLibrary()
23 | {
24 | return new XboxLibrary(PlayniteTests.GetTestingApi().Object);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/source/Tests/XboxLibrary.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/source/Themes/Desktop/Classic/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_ClassicDesktop
2 | Name: Classic
3 | Author: Playnite
4 | Version: 2.0
5 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------
/source/Themes/Desktop/ClassicBlue/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_ClassicDesktopBlue
2 | Name: Classic Blue
3 | Author: Playnite
4 | Version: 2.0
5 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------
/source/Themes/Desktop/ClassicGreen/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_ClassicDesktopGreen
2 | Name: Classic Green
3 | Author: Playnite
4 | Version: 2.0
5 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------
/source/Themes/Desktop/ClassicPlain/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_ClassicDesktopPlain
2 | Name: Classic Plain
3 | Author: Playnite
4 | Version: 2.0
5 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------
/source/Themes/Desktop/DefaultRed/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_DefaultDesktopRed
2 | Name: Default Red
3 | Author: Playnite
4 | Version: 2.0
5 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------
/source/Themes/Fullscreen/DefaultLime/Constants.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 | Lime
10 | Green
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/source/Themes/Fullscreen/DefaultLime/theme.yaml:
--------------------------------------------------------------------------------
1 | Id: Playnite_builtin_DefaultFullscreenLime
2 | Name: Default Lime
3 | Author: Playnite
4 | Version: 2.0
5 | Mode: Fullscreen
6 | ThemeApiVersion: 2.0.0
--------------------------------------------------------------------------------