Commit Graph

5 Commits

Author SHA1 Message Date
Teacup
70249ea790 feat: Add new request types, world param, better error handling, various fixes (#558)
* feat: Add option for worlds to get data from other worlds

* docs: Add docs to new methods

* refactor: Add more error handling for potential edge cases

* fix: Catch exception for http listener start

* fix: Maybe stop throwing js exceptions at start from process check

* fix: Stop VRCX from dying if monitored processes are elevated

* fix: If auto close is turned off, update process states properly

* refactor: Limit db key length to 255, limit /getall to 10000 entries
2023-06-07 01:00:42 +12:00
Teacup
7e17af8c7a feat: Add request types to delete data/change external reads setting 2023-06-04 11:07:48 +12:00
Teacup
ada39a05a7 Add /settings endpoint, clean up README, make WorldDB U# impl easier/faster (#556)
* docs: Change readme

* feat: New /settings endpoint; Make U# implementation easier

To further avoid the 5 second string loading delay, developers are no longer required to use /init before getting data; Every data request endpoint will now initialize the world automatically and include a connection key in the response.

Changed the way debug init works; It should now work for all endpoints without extra checks by just returning the current world as wrld_12345.

New /settings endpoint allows the change of the allow_external_reads column in the database, but getting data is currently unimplemented.

Fix store request logging being... completely wrong.

* Update README.md

Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>

---------

Co-authored-by: Tayou <31988415+TayouVR@users.noreply.github.com>
2023-06-03 07:23:32 +12:00
Teacup
7d6ca28f86 feat: Add /getall, logging to .NET, fix manager not getting traveling world (#554)
* 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>
2023-06-02 12:59:31 +12:00
Teacup
0101f3474f Add systems for local world persistence (#553)
* 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>
2023-06-01 10:34:50 +12:00