GithubHelp home page GithubHelp logo

playnite-oculuslibrary's People

Contributors

shaw-system1 avatar shawson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mr-ransel

playnite-oculuslibrary's Issues

Enhancement: Import performance

Importing 37 titles is taking almost 90 seconds, and repeats every time Playnite is launched. It works, but because there is no on-screen update during that process it appears that the import has hung.

Suggestions:

  • improve import performance (multithread the import?)
  • some sort of screen update during the import process so the user doesn't think it has hung
  • some sort of optimization on subsequent import checks

playnite.log

Failure to import due to JSON Regex error

Hi there. Just installed your extension a few minutes ago, and looking forward to getting my Oculus games imported into Playnite. I did however run into the issue of my games (except for Minecraft Win10 Edition for some reason) failing to import.
Below I have attached the relevant section of my log.
Minecraft Windows 10 Edition also didn't have any meta data, and displayed the executable name instead of the actual game title, but this may be a separate issue.

2020-07-09 17:14:01.6281|INFO:Executing Oculus GetGames
2020-07-09 17:14:01.6281|DEBUG:Trying to get Oculus base path (REG64)
2020-07-09 17:14:01.6281|DEBUG:Getting Oculus library locations from registry (Registry64)
2020-07-09 17:14:01.6281|DEBUG:Found library: E:\Oculus Apps
2020-07-09 17:14:01.6281|DEBUG:Libraries located: 1
2020-07-09 17:14:01.6281|INFO:Processing Oculus library location E:\Oculus Apps
2020-07-09 17:14:01.6391|DEBUG:Listing Oculus manifests
2020-07-09 17:14:01.6801|INFO:Processing manifest b4t-games-epic-roller-coaster 1477883658957255
2020-07-09 17:14:01.6801|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:01.6801|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:01.6801|DEBUG:Trying to scrape 1477883658957255
2020-07-09 17:14:03.5071|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:03.5071|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:03.5071|INFO:Executable E:\Oculus Apps\Software\b4t-games-epic-roller-coaster\Epic Roller Coasters.exe
2020-07-09 17:14:03.5071|INFO:Completed manifest b4t-games-epic-roller-coaster 1477883658957255
2020-07-09 17:14:03.5071|INFO:Processing manifest bbc-media-applications-technologies-ltd-home 1246744618768922
2020-07-09 17:14:03.5071|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:03.5071|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:03.5131|DEBUG:Trying to scrape 1246744618768922
2020-07-09 17:14:05.8801|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:05.8801|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:05.8801|INFO:Executable E:\Oculus Apps\Software\bbc-media-applications-technologies-ltd-home\RWD_BBC010_HOME_Oculus_171207\BBC_VRSpacewalk.exe
2020-07-09 17:14:05.8801|INFO:Completed manifest bbc-media-applications-technologies-ltd-home 1246744618768922
2020-07-09 17:14:05.8801|INFO:Processing manifest disney-online-disney-movies-vr 1437254706307136
2020-07-09 17:14:05.8801|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:05.8881|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:05.8881|DEBUG:Trying to scrape 1437254706307136
2020-07-09 17:14:06.9920|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:06.9920|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:06.9920|INFO:Executable E:\Oculus Apps\Software\disney-online-disney-movies-vr\windows-x64-rift-dcpi\DisneyMoviesVR.exe
2020-07-09 17:14:06.9920|INFO:Completed manifest disney-online-disney-movies-vr 1437254706307136
2020-07-09 17:14:06.9980|INFO:Processing manifest dt-studio-wingsuitvr 1318924341508173
2020-07-09 17:14:06.9980|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:06.9980|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:06.9980|DEBUG:Trying to scrape 1318924341508173
2020-07-09 17:14:09.2620|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:09.2640|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:09.2640|INFO:Executable E:\Oculus Apps\Software\dt-studio-wingsuitvr\WingsuitVR.exe
2020-07-09 17:14:09.2640|INFO:Completed manifest dt-studio-wingsuitvr 1318924341508173
2020-07-09 17:14:09.2640|INFO:Processing manifest epic-games-odin 1081190428622821
2020-07-09 17:14:09.2640|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:09.2640|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:09.2640|DEBUG:Trying to scrape 1081190428622821
2020-07-09 17:14:13.0140|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:13.0140|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:13.0140|INFO:Executable E:\Oculus Apps\Software\epic-games-odin\RoboRecall\Binaries\Win64\RoboRecall-Win64-Shipping.exe
2020-07-09 17:14:13.0140|INFO:Completed manifest epic-games-odin 1081190428622821
2020-07-09 17:14:13.0140|INFO:Processing manifest google-inc-poly 1320373124698683
2020-07-09 17:14:13.0140|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:13.0140|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:13.0140|DEBUG:Trying to scrape 1320373124698683
2020-07-09 17:14:13.8790|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:13.8790|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:13.8790|INFO:Executable E:\Oculus Apps\Software\google-inc-poly\Blocks\Blocks.exe
2020-07-09 17:14:13.8790|INFO:Completed manifest google-inc-poly 1320373124698683
2020-07-09 17:14:13.8790|INFO:Processing manifest h2k-studios-sensor-bounds 1682666568488584
2020-07-09 17:14:13.8790|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:13.8790|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:13.8790|DEBUG:Trying to scrape 1682666568488584
2020-07-09 17:14:16.7189|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:16.7189|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:16.7189|INFO:Executable E:\Oculus Apps\Software\h2k-studios-sensor-bounds\SensorBounds.exe
2020-07-09 17:14:16.7189|INFO:Completed manifest h2k-studios-sensor-bounds 1682666568488584
2020-07-09 17:14:16.7189|INFO:Processing manifest mojang-ab-minecraft-oculus-rift 741306562635466
2020-07-09 17:14:16.7189|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:16.7189|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:16.7189|DEBUG:Trying to scrape 741306562635466
2020-07-09 17:14:19.6100|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:19.6100|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:19.6100|INFO:Executable E:\Oculus Apps\Software\mojang-ab-minecraft-oculus-rift\MinecraftWindows10EditionLauncher.exe
2020-07-09 17:14:19.6100|INFO:Completed manifest mojang-ab-minecraft-oculus-rift 741306562635466
2020-07-09 17:14:19.6100|INFO:Processing manifest oculus-dead-and-buried 1198491230176054
2020-07-09 17:14:19.6100|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:19.6100|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:19.6100|DEBUG:Trying to scrape 1198491230176054
2020-07-09 17:14:22.2084|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:22.2084|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:22.2084|INFO:Executable E:\Oculus Apps\Software\oculus-dead-and-buried\DeadAndBuried\DeadAndBuried.exe
2020-07-09 17:14:22.2084|INFO:Completed manifest oculus-dead-and-buried 1198491230176054
2020-07-09 17:14:22.2084|INFO:Processing manifest play-nicely-ltd-room-202 1074845635897855
2020-07-09 17:14:22.2084|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:22.2084|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:22.2084|DEBUG:Trying to scrape 1074845635897855
2020-07-09 17:14:24.4995|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:24.4995|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:24.4995|INFO:Executable E:\Oculus Apps\Software\play-nicely-ltd-room-202\Room 202\Room 202.exe
2020-07-09 17:14:24.4995|INFO:Completed manifest play-nicely-ltd-room-202 1074845635897855
2020-07-09 17:14:24.4995|INFO:Processing manifest playful-luckys-tale 909129545868758
2020-07-09 17:14:24.4995|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:24.4995|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:24.4995|DEBUG:Trying to scrape 909129545868758
2020-07-09 17:14:26.8164|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:26.8164|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:26.8164|INFO:Executable E:\Oculus Apps\Software\playful-luckys-tale\LT.exe
2020-07-09 17:14:26.8164|INFO:Completed manifest playful-luckys-tale 909129545868758
2020-07-09 17:14:26.8164|INFO:Processing manifest turtle-rock-studios-face-your-fears-rift 1364532560285203
2020-07-09 17:14:26.8164|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:26.8164|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:26.8244|DEBUG:Trying to scrape 1364532560285203
2020-07-09 17:14:28.1204|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:28.1224|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:28.1224|INFO:Executable E:\Oculus Apps\Software\turtle-rock-studios-face-your-fears-rift\Fears\Binaries\Win64\Fears-Win64-Shipping.exe
2020-07-09 17:14:28.1224|INFO:Completed manifest turtle-rock-studios-face-your-fears-rift 1364532560285203
2020-07-09 17:14:28.1224|INFO:Processing manifest vrchat-vrchat 997678176960598
2020-07-09 17:14:28.1224|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:28.1224|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:28.1224|DEBUG:Trying to scrape 997678176960598
2020-07-09 17:14:30.0524|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:30.0524|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:30.0524|INFO:Executable E:\Oculus Apps\Software\vrchat-vrchat\VRChat.exe
2020-07-09 17:14:30.0524|INFO:Completed manifest vrchat-vrchat 997678176960598
2020-07-09 17:14:30.0524|INFO:Processing manifest zatun-sniper-rust-vr 1678109402221519
2020-07-09 17:14:30.0524|DEBUG:Oculus store icon missing from file system- reverting to executable icon
2020-07-09 17:14:30.0594|DEBUG:Oculus store background missing from file system- selecting no background
2020-07-09 17:14:30.0594|DEBUG:Trying to scrape 1678109402221519
2020-07-09 17:14:30.8914|ERROR:json had 1 regex match groups- was expecting 2 or more
2020-07-09 17:14:30.8914|DEBUG:Failed to retrieve scraped data for game
2020-07-09 17:14:30.8914|INFO:Executable E:\Oculus Apps\Software\zatun-sniper-rust-vr\SniperRustVR -Trial Version\SniperRustVR - Trial.exe
2020-07-09 17:14:30.8914|INFO:Completed manifest zatun-sniper-rust-vr 1678109402221519
2020-07-09 17:14:30.8914|INFO:Oculus GetGames Completing

Enhancement: apply additonal metadata

During the import process the launch path executable is found and recorded, but the installation directory is left blank. Should be able to infer the installation directory by trimming the executable name from the launch path executable.

It's a minor issue, and I only noticed because I was trying to clean up duplicate entries from earlier versions of the library. Trying to use the filtering to find the duplicates was problematic due to a bug in Playnite (clicking Playnite for the library returns no items) and one option I tried was to sort on installation directory since I couldn't sort on the executable path.

I finally managed to find the duplicates by doing a Group by library, and then deleting all items in the Playnite library. Apparently Playnite will assign any item in the library to the Playnite library if the original importing library extension is disabled. In other words, Oculus extension imports to Oculus library. Disable the Oculus extension and now all the items that were in the Oculus library are now considered to be in the Playnite library, although only when using Group by library; the filter by library option returns no items when the Playnite library is selected.

Failed to import anything with multiple libraries

The plugin is able to get one of two library locations, but due to the failure getting the location of the second (default) library the extension errors out without importing anything.

From log:
2019-12-21 00:24:13.8537|INFO:Executing Oculus GetGames
2019-12-21 00:24:13.8537|DEBUG:Trying to get Oculus base path (REG64)
2019-12-21 00:24:13.8537|DEBUG:Getting Oculus library locations from registry (Registry64)
2019-12-21 00:24:13.8537|DEBUG:Found library: D:\Oculus
2019-12-21 00:24:13.8537|ERROR:Exception opening registry keys: System.NullReferenceException: Object reference not set to an instance of an object.
at OculusLibrary.OculusLibraryPlugin.GetOculusLibraryLocations(RegistryView platformView) in d:\a\Playnite-OculusLibrary\Playnite-OculusLibrary\OculusLibrary\OculusLibraryPlugin.cs:line 191
2019-12-21 00:24:13.8537|DEBUG:Trying to get Oculus base path (REG32)
2019-12-21 00:24:13.8537|DEBUG:Getting Oculus library locations from registry (Registry32)
2019-12-21 00:24:13.8537|DEBUG:Found library: D:\Oculus
2019-12-21 00:24:13.8537|ERROR:Exception opening registry keys: System.NullReferenceException: Object reference not set to an instance of an object.
at OculusLibrary.OculusLibraryPlugin.GetOculusLibraryLocations(RegistryView platformView) in d:\a\Playnite-OculusLibrary\Playnite-OculusLibrary\OculusLibrary\OculusLibraryPlugin.cs:line 191
2019-12-21 00:24:13.8537|ERROR:Cannot ascertain Oculus library locations

This is the registry snippet that is being walked:

[HKEY_CURRENT_USER\Software\Oculus VR, LLC\Oculus\Libraries\83279bce-ed22-4ce9-a83a-937418c50fef]
"Path"="\\?\Volume{7c0c84e2-1679-44a4-b92d-bfb4d15bf489}\Oculus"
"OriginalPath"="D:\Oculus"

[HKEY_CURRENT_USER\Software\Oculus VR, LLC\Oculus\Libraries\ee032afa-e311-4065-979c-60043c21899c]
"Path"="\\?\Volume{2f6e92db-3ae4-40f7-93cc-4b51047c98c5}\Program Files\Oculus\Software"

It appears that the registry key that is being looked for, OriginalPath, may not exist. Instead, it seems that the guaranteed key is actually Path, which uses the volume identifier rather than a drive letter. In the above registry snippet, my secondary library that lives on the D: drive has both Path and OriginalPath while the default library location that lives on the C: drive only has Path.

And this is the list of volume identifiers & corresponding drive letters gathered via powershell:
GWMI -namespace root\cimv2 -class win32_volume | FL -property DriveLetter, DeviceID

DriveLetter : D:
DeviceID : \?\Volume{7c0c84e2-1679-44a4-b92d-bfb4d15bf489}\

DriveLetter : C:
DeviceID : \?\Volume{2f6e92db-3ae4-40f7-93cc-4b51047c98c5}\

[BUG] Crashing on import

hello, so I just installed this plugin, but on launch, when it import games, it crashes. I use the classic oculus client, there are 2 games from the official store on my account, 3 games added manually and 2 games taken from steam. Any idea of what could cause it?

Library not importing games

User has downloaded the zip from Github, extracted it to a folder he created in the Extension folder and reloaded Playnite. He can now see the option to update the Oculus Library but when he does so, nothing happens and there do not seem to be any settings. What am I doing wrong here?

[Enhancement] Import uninstalled games through account connection

Similar to most of the other library sources, it would be nice to be able to connect to my Oculus account and import games that aren't installed locally.

I don't know if this is feasible. Maybe this is out-of-scope. But I think this would be a nice add.

Thanks for making this extension!

JSON deserialization error due to maxJsonLength property being exceeded

ready-at-dawn-lone-echo.zip

2019-12-22 15:56:54.9366|DEBUG:Listing Oculus manifests
2019-12-22 15:56:55.2936|ERROR:Exception while processing manifest (C:\Program Files\Oculus\Software\Manifests\ready-at-dawn-lone-echo.json) : System.ArgumentException: Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.
Parameter name: input
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)
at OculusLibrary.OculusLibraryPlugin.GetOculusAppManifests(String oculusBasePath) in d:\a\Playnite-OculusLibrary\Playnite-OculusLibrary\OculusLibrary\OculusLibraryPlugin.cs:line 153

The manifest should be attached.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.