[MOVED] Discord User Apps Bot
- 17 Devlogs
- 85 Total hours
MOVED TO PIXL EVENT | A mainly utility Discord bot users can install on their user via OAuth2
MOVED TO PIXL EVENT | A mainly utility Discord bot users can install on their user via OAuth2
/status enable command/status command as owner only/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)/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/8ball command: ask a question and get a random answertopic command: get a random topic to start a conversation/qalc command: execute calculation using libqalculate
/console command: run any shell command/animal command: get a random animal (cat, dog, fox, duck)/ip command: get info about an IPv4 or IPv6 addressnetworkingtoolbox.net)/http command: get a HTTP status with the picture of an animal like cat, dog, goat, duck etc./perms command: add/remove/list the users allowed to use a specific command/status command: enable/disable specific commands/dig: perform a dig query on a domain/whois: perform a WHOIS query on a domain/IP/ASNupsert function erroring because no column was being passed as keys (primary)Domain object that contains the function to perform dig and whois queriesInstant to discord time format/eval commandenabled status and allowedUsers list in the command_permissions table)/eval)Created the base skeleton with the bot (w/ events), web dashboard (rn just shows “WIP” text) and database with the schemes & some helper functions
For the Discord bot i’m using the Kord library
For the web dashboard i’m using the Ktor library
This is the first time i use either of those 2 libs so my usage may not be the best 