stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

[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

Open comments for this post

5h 22m 47s logged

  • Created the /help command: list all the commands of get info about a specific one
  • Temporarily took the old dashboard and adapted it to the new framework (the html side is gonna get remade by a friend, orangc)
  • Removed some unused envs
  • Added TailwindCSS compiling at startup soit can be used in the dashboard
0
0
18
Open comments for this post

5h 54m 40s logged

  • Created the /uptime command: display how long the bot has been online for
  • Created the /lyrics command: get the lyrics of a song (uses lrclib.net, lrcmux and lyricsOVH as sources)
  • Fixed /define command failing when there were too many definitions (was going over the 40 components limit)
  • Created the main README file
  • Added ownerOnly 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
  • Added attachment options to the /embed command (for some reasons they’re added correctly but image and thumbnail don’t display while footer and author do)
0
0
15
Open comments for this post

4h 17m 42s logged

  • Created the /ubdict command: get the definition of a term from the urban dictionary
  • Created the /wikipedia command: get an article from wikipedia
  • Created the /fact command: get a random fact
  • Created the /joke command: get a random joke
  • Added a util function to split strings in group of approximately X 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)
  • Added the User-Agent header to all the HTTP requests
  • Updated HttpLoggingInterceptor to use the correct logger class
0
0
38
Open comments for this post

2h 57m logged

  • Created the /define command: get the definition of a word
  • Updated the /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 fit
  • Switched some places from if (xxx) { ... } else { null } to xxx?.let { ... }
0
0
14
Open comments for this post

7h 46m 54s logged

  • Created the Get User Banner command (user): …what the name says
  • Created the /github command (slash): get info about a GH user, repo or issue/PR
  • Created the /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
0
0
11
Open comments for this post

6h 31m 32s logged

  • Created the /steam command (slash): get info about a Steam game (optional detailed mode) or user
  • Created the /translate command (slash): convert any text from a language to another (about 131 languages available)
  • Installed the MS Azure SDK for the /translate (slash) & Translate Message (message) commands
  • Updated file layout for the dashboard so it looks better
  • Updated API services file layout too
  • Updated Kotlin from 2.4.10 to 2.4.20 and other libs
0
0
21
Open comments for this post

4h 30m 59s logged

  • Running a command now increases its uses value is the anonymous analytics table
  • Added new env variables and improved the system used to throw errors so it always kills all the processes when calling require
  • Created the dashboard ratelimits, sessions, auth middlewares/systems
  • Created the Discord OAuth2 login
  • Moved kord into a Bot object so it can be used in the dashboard too if needed
  • Created a listener for the discord webhook (stuff like bot authorized, bot deauthorized etc.) [UNTESTED]
  • Created a util function to get the bot’s invite url
  • Created API services for the discord OAuth2 token requesting and apprise API

There’s not much frontend / UI change so ima show a pic of the dash module code ig

0
0
29
Open comments for this post

5h 49m 44s logged

  • Created the /export command (slash): send the file path and export it (as well as give the file’s github url (owner only)
  • Created the Save as Tag command (message): save a message as tag, both embeds & content
  • Created the Convert to QR Code command (message): convert a message’s content to a QR code (either as image or text)
  • Created the Download Voice Message command (message): as the name says, download as MP3 a user’s voice message
  • Created the Set as Reminder command (message): set a user’s message (either content or URL) as a reminder
  • Created the Get Message JSON command (message): get the JSON object of the message
  • Created the Get Member Avatar command (user): get the server specific avatar of the user
  • Created the Get User Avatar command (user): get the global avatar of the user
  • Created the Get User Avatar Decoration command (user): get the avatar decoration of the user
  • Created the Get Member JSON command (user): get the JSON object of the member
  • Created the Get User JSON command (user): get the JSON object of the user
  • Environment variables are now loaded at startup via a gradle task
  • Added a LOG_LEVEL env to choose the level of the console output to show
  • Created a util function for plurals
  • Set tag name limit to 255 chars
0
0
75
Open comments for this post

7h 8m logged

  • Added the /tag command: save preset messages that you can then send later (they can also contain embeds)
    it has the following subcommands:
  • content: set or remove the content of a tag
  • embed: add or remove an embed from a tag
  • delete: delete a tag
  • export: export all your tags as a JSON file
  • import: 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 subcommands
  • get: Get the content & embeds of a specific subcommand
  • Fixed/Impoved the /embed command button & modal handlers & added an ID to buttons & modals to avoid 2 diff commands handling the same interaction
0
0
72
Open comments for this post

5h 34m 59s logged

  • Created the /gary command: get random images of 4 cats: Gary, Goober, Gulliber (Gully) and Garfield
  • Created the /ping command: get the bot’s ping (pic has high ping cuz it’s running on my laptop, in Italy)
  • Created the /botavatar command: change the bot avatar, either from a file, URL, copy from an user or copy from the bot owner
  • Created the /colorpicker command: give an HEX, RGB or HSL color and it displays it as well as showing its HEX, RGB and HSL variants
  • Added the /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 :pf: )
  • Switched database initialization from 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
  • Made the dashboard disableable
0
0
17
Open comments for this post

6h 31m 19s logged

  • Created the /minecraft command: allows to fetch
  1. Java and Bedrock edition server data (with mcstatus.io API)
  2. Player info (with Starlight API by lunareclipse.studio)
  3. Player skin rendered as a 3D model in different poses (with Starlight API)
  • Created the /embed command: send anything as an embed
  • Created the /qr command: encode some text into a QR Code (output can be an image or an ASCII text)
  • Updated the dashboard to add a static resource /skinModels which is used for the /minecraft skin sub command to fetch custom made models
  • Added a regex for HEX colors (matches #ffffff, #fff, ffffff and fff)
  • created a Minecraft object to collect all minecraft related functions
  • Created the starlight and mcstatus.io API services & added them in the API client
  • Update main handleRequest function to add an optional error handler
0
0
15
Open comments for this post

3h 35m 34s logged

  • Added the /8ball command: ask a question and get a random answer
  • Added topic command: get a random topic to start a conversation
  • Added /qalc command: execute calculation using libqalculate
  • Added /console command: run any shell command
  • Added /animal command: get a random animal (cat, dog, fox, duck)
  • Added /ip command: get info about an IPv4 or IPv6 address
  • Installed the retrofit libs required to make HTTP requests
  • Added a regex to check if a IPv4 or IPv6 is valid (took from networkingtoolbox.net)
  • Created util function to get the country flag & name from its code (took from my Hackatime android app)
0
0
20
Open comments for this post

5h 57m 19s logged

  • Added /http command: get a HTTP status with the picture of an animal like cat, dog, goat, duck etc.
  • Added /perms command: add/remove/list the users allowed to use a specific command
  • Added /status command: enable/disable specific commands
  • Added /dig: perform a dig query on a domain
  • Added /whois: perform a WHOIS query on a domain/IP/ASN
  • Fixed database upsert function erroring because no column was being passed as keys (primary)
  • Moved command registration to the onReady event
  • Installed a lib for DNS queries and a lib to check other libs updates
  • Added a utility Domain object that contains the function to perform dig and whois queries
  • Added utility functions to convert a ISO string, epoch seconds or Instant to discord time format
0
0
19
Open comments for this post

3h 32m 5s logged

  • Created the /eval command
  • Added the registration & handling of the commands (also checks if the user can run the command and if the command is enabled, by checking the enabled status and allowedUsers list in the command_permissions table)
  • Installed some libs to run code at runtime (JavaScript, Python and Kotlin (used in /eval)
0
0
9
Open comments for this post

4h 51m 22s logged

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 :pf:

0
0
14

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…