GET /api/email/request the token is now URL decoded before it’s usedPOST /api/login to return a 204 instead of redirectionPOST /api/verify-email endpoint to verify the mail (either at register or update mail)POST /api/account/update-email endpoint to let users change their mailGET /api/notes endpoint to let the user see the notes he has access toPOST /api/notes endpoint to let the user create a note under his userGET /api/notes/{noteId} endpoint to get the data of a specific note (if the user has access to it)DELETE /api/notes/{noteId} endpoint to let a user delete his own notes (not the ones made by other even if he has access to them)POST /api/notes/{noteId}/join endpoint to let a user join a note via its sharing codePOST /api/notes/{noteId}/share endpoint to create a sharing code for the note (each code is one-time use only)DELETE /api/notes/{noteId}/share endpoint to delete a sharing code for the note (note owner only)POST /api/notes/{noteId}/leave endpoint to let a user leave a note on its ownPOST /api/notes/{noteId}/kick endpoint to let the note owner kick someone from the noteroute("/...") { ... } i was using get("/") { ... } instead of get { ... } and this caused the base route to not exist (like /api/route) but only the one with trailing slash (like /api/route/)once again no frontend yet so here’s some of the code
routes folderPublicDatabaseUser data class that doesn’t contain sensitive info such as passwordCrypto object to hash & salt stringsEmail class not seeing the template fileNone of those changes have been tested yet
once again no frontend yet so just code screenshots
EnvVariable enum, Random object, build process w/ tailwind & envs setup, middlewares, AppDatabase object)Email class used to validate emails, check for duplicates and send the verification codethere’s no frontend yet so i’ll show some of the API routes skeletons
/status enable command/status command as owner onlyUpdated the main embed to add social links and page specific text/images too and also fix buttons’ urls
/help command: list all the commands of get info about a specific one/uptime command: display how long the bot has been online for/lyrics command: get the lyrics of a song (uses lrclib.net, lrcmux and lyricsOVH as sources)/define command failing when there were too many definitions (was going over the 40 components limit)README fileownerOnly property to commands, so when they’re first added to the db, it sets the list of owners in the OWNERS env as allowed users/embed command (for some reasons they’re added correctly but image and thumbnail don’t display while footer and author do)Added the new discord embed with components v2
/ubdict command: get the definition of a term from the urban dictionary/wikipedia command: get an article from wikipedia/fact command: get a random fact/joke command: get a random jokeX character, but instead of cutting the text at exactly X characters, it cuts at the next end of a sentence after X characters, this way a sentence is never cut in half during pagination (currently only place where it’s used, aka /wikipedia command)User-Agent header to all the HTTP requestsHttpLoggingInterceptor to use the correct logger class/define command: get the definition of a word/steam game command to use components v2, and also a button to show the full game description if the detailed mode is too long to fitif (xxx) { ... } else { null } to xxx?.let { ... }
Get User Banner command (user): …what the name says/github command (slash): get info about a GH user, repo or issue/PR/weather command (slash): get the current weather of a specific place/steam game now uses buildString {} instead of adding to a array, then joining and merging it with another string/steam command (slash): get info about a Steam game (optional detailed mode) or user/translate command (slash): convert any text from a language to another (about 131 languages available)/translate (slash) & Translate Message (message) commands2.4.10 to 2.4.20 and other libsuses value is the anonymous analytics tablerequire
kord into a Bot object so it can be used in the dashboard too if neededThere’s not much frontend / UI change so ima show a pic of the dash module code ig
/export command (slash): send the file path and export it (as well as give the file’s github url (owner only)Save as Tag command (message): save a message as tag, both embeds & contentConvert to QR Code command (message): convert a message’s content to a QR code (either as image or text)Download Voice Message command (message): as the name says, download as MP3 a user’s voice messageSet as Reminder command (message): set a user’s message (either content or URL) as a reminderGet Message JSON command (message): get the JSON object of the messageGet Member Avatar command (user): get the server specific avatar of the userGet User Avatar command (user): get the global avatar of the userGet User Avatar Decoration command (user): get the avatar decoration of the userGet Member JSON command (user): get the JSON object of the memberGet User JSON command (user): get the JSON object of the userLOG_LEVEL env to choose the level of the console output to show/tag command: save preset messages that you can then send later (they can also contain embeds)content: set or remove the content of a tagembed: add or remove an embed from a tagdelete: delete a tagexport: export all your tags as a JSON fileimport: import the JSON file obtained from the export subcommand (in case of conflicts, the old and new tag will be previeable in the bot dashboard if enabled)list: Display all your subcommandsget: Get the content & embeds of a specific subcommand/embed command button & modal handlers & added an ID to buttons & modals to avoid 2 diff commands handling the same interaction/gary command: get random images of 4 cats: Gary, Goober, Gulliber (Gully) and Garfield/ping command: get the bot’s ping (pic has high ping cuz it’s running on my laptop, in Italy)/botavatar command: change the bot avatar, either from a file, URL, copy from an user or copy from the bot owner/colorpicker command: give an HEX, RGB or HSL color and it displays it as well as showing its HEX, RGB and HSL variants/reminders command: set a reminder and the bot will send you a DM, reminder can either be single-run, multi-run and inifinitely run (the user defines an interval such as 30m, 2d15h etc., then the bot will send a DM with the reminder after this interval and will repeat it how many times the user defined it to, so if an user defines a reminder with 2h interval and 3 repeats, it will send the same reminder in 2h, 4h and 6h) (hope i explained well
)SchemaUtils to MigrationUtils this way if i edit a scheme, it’s also applied at startup instead of just creating new tables and never modifying them/minecraft command: allows to fetchmcstatus.io API)lunareclipse.studio)/embed command: send anything as an embed/qr command: encode some text into a QR Code (output can be an image or an ASCII text)/skinModels which is used for the /minecraft skin sub command to fetch custom made models#ffffff, #fff, ffffff and fff)Minecraft object to collect all minecraft related functionshandleRequest function to add an optional error handler