I replaced the official SBS SiteJS with Snail's, which makes the plugin no longer silently fail on SB4 keys, and I also fixed the issue with a certain popular game's availability on SBAPI.
I've poked around at SB4 API things when I wasn't busy and it's looking close to impossible to add SB4 compatibility. I don't have a Switch to do any real reverse engineering work on it though, so if anyone with CFW and SB4 is interesting in working on support, message me on Discord (@MasterR3C0RD#7695).
Also, this project is serving a second function as a way to archive the entire SmileBASIC library. If anyone is interested in helping further this goal by providing a list of keys to back up, DM me on Discord.
A huge thanks to everyone for the support I've gotten for this project. I am accepting donations to keep the server running now. If you're interested you can check my profile to find my PayPal. All donations are appreciated, but are not required to use this service.
Announcement (10/06/2020):
I just wanted to let anyone who wanted to use this API know that this is pretty safe to use. All downloaded files are cached, and as such it avoids sending more than the required amount of requests to SmileBASIC servers. If you're doing a large amount of automated queries at one time, please check out the WebSocket Query API, as it provides less overhead on the server and adds additional features like queueing requests. Also, there might be a new feature soon :) Quick jump: News Introduction Usage Examples SiteJS plugin Credits WebSocket Query APINEWS:
- 03/26/2020: Fixed a bug that was causing long load times. I don't know if anyone noticed this, but it was taking like 3 seconds per request. Not any more!
- 03/16/2020: Added English tag support! When using the `info` endpoint, add ?en=1 for the official English tags. They haven't been updated but should give a better idea of what each tag is. This also works with ?json=1 and the WebSocket Query API!
- 02/29/2020: Added tags to the info page! Only Japanese tags for now because official tag data for English is not very good right now, but will be updated in the future!
- 02/04/2020: WebSocket query API implemented! Read more details below.
- 01/31/2020: SBAPI 4 has launched! If you're using the SBAPI SiteJS, please update it to support SB4 keys.
- info - all files, shows information about the file provided (use ?json=1 if you're writing a program to get information as JSON, add en=1 for English tags)
- list - only projects, lists all files (use ?json=1 if you're writing a program to get information as JSON)
- zip - only projects, download all files from the project as a ZIP file. If you want to convert files to their preferred format (ex, GRP -> PNG, TXT -> Text), add ?nice=1
- raw - all files, downloads the raw file.
- text - only TXTs, returns the text content of the file
- code - only TXTs, highlights code using 12Me21's SBHighlight library (use ?wrap=1 to enable word-wrapping)
- png - only GRPs, converts the GRP to a PNG
- json - only DATs, returns the DAT information as a JSON array of arrays.
- csv - only 2D DATs, converts the data to a CSV (comma-separated values) file
- icon - only META files, returns the icon as a PNG file.
- downloads - all files, returns a PNG with the download count (download count is only updated every 24 hours). You can also control the PNG using query parameters: ?color=#BADA55&stroke=#A55A55&strokewidth=3&padding=3&bgcolor=rgba(0,0,0,0.5)
- encodings - all files, returns JSON array with all possible encodings for the file given
- triangle - file format guru, wrote the file parser used for SB files and other parts of code, and most of reverse engineering of SmileBASIC's servers, donated 3DS information for the server
- MasterR3C0RD - hosting, wrote the server communication libraries and helped with reverse engineering of SmileBASIC's servers
- 12Me21 - wrote sbhighlight and rewrote the SiteJS plugin to work with more browsers
- snail_ - working on proper documentation for API
- Yttria - word of reason, helped with multiple things internally
- Jaku - helped with SB4 support