* fix: Fix world-db not getting current world properly when traveling
* fix: Stop redundant and exception-prone funcResult definition
* Fix: fetching current location
* refactor: Move constructing responseData to its own functions
* Fix: ignore own string requests
* feat: Add NLog dependency, and add some logging to .NET, mostly worlddb
* fix: I missed a semicolon
* refactor: Add more debug logging, change log format, archive less
* feat: Add /getall endpoint
---------
Co-authored-by: Natsumi <cmcooper123@hotmail.com>
* chore: Change vscode workspace settings to work with omnisharp
* refactor(.NET): Use connection string builder to init sqlite database
* docs(.NET): Add method documentation to most things that matter
* docs(.NET): Add more docs I forgot to commit apparently
* feat: Add PoC world database structure ^& http listener
* fix: Send a response if VRCX isn't initialized rather than hanging
* feat: Initialize world db schema on startup
* feat: Allow worlds to store data in db through logfile
* use existing current location for worldDB
* Add tooltips
* chore: Make it so vscode can format C# files without prettier
* refactor: Add sqlite-net to (eventually) replace sqlite impl
* refactor: Make use of sqlite-net for world database
* docs: Add todo for fixing some random exception
* refactor: Remove now-unused SQLiteWorld
* refactor: Fix DB init query and change table structure again
* refactor: Add WorldDataRequest, add attributes for camelcase json keys
* Support current user location from API in addition to gameLog
* Change current location check for worldDB
* feat: Take store requests in JSON, identify worlds by GUID on store.
* refactor: Remove unused worldId param from connection key generator
* docs: Add more documentation to the methods for the world database
* fix: Hey wait that's not a primary key
* feat: Add a 10MB data cap for worlds shared across all of their rows.
* fix: Don't calculate size of world date twice when inserting
* refactor: Discard the guid variable since we only check for validity
* docs: Add docs/comments for new data cap functionality
* feat: Implement /getbulk API endpoint
* fix: Correct WorldDB init query typo
* fix: Update data entries properly instead of using 'OR REPLACE'
* refactor: Move endpoint processing to separate methods
* refactor: Add another check for error 503, remove old code
* feat: Add debug capability to /vrcx/getbulk
* fix: Correct the usage of getUser in actuallyGetCurrentLocation
* feat: Add store errors, implement external reading, stop 404ing
* docs: Add docs for new world db funcs
* refactor: Change world db server listen port to 22500
* fix: Use getUser correctly, dumb dumb
* fix: This error set shouldn't be here
* feat: Future-proof api endpoints. Add /status endpoint
---------
Co-authored-by: Natsumi <cmcooper123@hotmail.com>
* fix(.NET): Stop CheckGameRunning from force checking processes
I'm not really sure what I was thinking when I did that the way I did; They are not supposed to force check if they're closed after the first time...That's what the monitor is for.
* feat(.NET): Add optional child process culling, clean up applauncher
Add an AppApi method to set applauncher settings Enabled/KillChildrenOnExit
Refactor repeated applauncher event code, move into methods
* refactor: Move the pug code for every tab into its own file
* refactor: Add PoC mixins to settings.pug ^& add comments for navigation
Some proof of concept replacements of the categories, switches and a radio group in the General settings seection.
Also added comments for each header-separated section for marginally better navigation of the file.
* refactor: Move the login page to its own file
* fix(.NET): Correct wrong variable being set in SetAppLauncherSettings
* fix(.NET): Remove redundant/exception causing process refresh in monitor
* refactor(.NET): Allow launcher to be disabled; Disabled by default.
* refactor: Change screenshot helper default to true
* feat: Expose new app launcher settings, add new settings category
Translation keys added/removed:
+ view.settings.advanced.advanced.app_launcher.header
+ view.settings.advanced.advanced.app_launcher.folder_tooltip
+ view.settings.advanced.advanced.app_launcher.enable
+ view.settings.advanced.advanced.app_launcher.auto_close
- view.settings.advanced.advanced.auto_launch
- view.settings.advanced.advanced.auto_launch_tooltip
* Add GPU Fix and Udon Exception Logging options, unload favorites tab when not in use
* Fix GPUFix typo
* Fix GPUFix typo 1
* Add logging for AVPro streams without usharp videoplayer
* Lint
---------
Co-authored-by: Natsumi <cmcooper123@hotmail.com>
* Load GPUFix and LaunchDebug from config
* Fix GPUFix and LaunchDebug being set to false if not in config
---------
Co-authored-by: Nekromateion <43814053+Nekromateion@users.noreply.github.com>
* refactor: Change OpenImageFolder to use a winapi call
It will open the given file in any existing explorer instances instead of opening a new shell every time, handle longer paths, and work with third-party filesystem viewers with winapi hooks(well, this one).
* feat: Add an automatic app launcher
The launcer will automatically launch apps in the 'startup' folder under the VRCX appdata folder when VRChat has started, and close them when VRChat dies(or is closed).
* refactor: Add new class for monitoring VRC processes
This replaces the old AppApi functionality that would poll all processes twice to grab the status of both VRChat and vrserver.exe every... *checks app.js* 500ms.
It also raises events for when a monitored process is started/closed, mainly for the new AppLauncher feature, which is now using this class instead of monitoring vrchat itself.
* refactor: Add tooltip for launch folder button
* docs: Add some notes on potential issues with Process.HasExited
* Change CheckGameRunning from polling to events
---------
Co-authored-by: Teacup <git@teadev.xyz>