Skip to content

Releases: esmBot/esmBot

2024.5.2

30 May 15:39
9ba64f3
Compare
Choose a tag to compare

This release fixes more issues, mostly in regards to sound playback.

Changes

  • Added some more playing messages
  • Changed source for bird images from shibe.online to files.projectlounge.pw
  • Fixed soundplayer error messages
  • Fixed host not properly getting user to switch to
  • Fixed audio players not being removed after inactivity
  • Fixed checking if the bot is in a voice channel
  • Fixed YouTube links being added to the queue when YouTube support is disabled
  • Fixed broken Tenor URLs being used for API requests
  • Changed players to be deleted before leaving voice channels, preventing some weird behavior
  • Updated Lavalink plugins

2024.5.1

26 May 23:26
cce5bcc
Compare
Choose a tag to compare

This release fixes a few issues.

The minimum required Node.js version is now 18.20.0 due to a change that's necessary to keep the bot working on Node.js v22 and above. Bun is unaffected.

Changes

  • Added a this.memberPermissions command parameter for getting the permissions of the user who ran the command
  • Replaced import assertions with the with keyword (this breaks Node.js version 18.19.1 and below, hence the minimum version bump)
  • The minor Node.js version number is now checked during the startup version check
  • Guild threads are no longer cached when classic commands are disabled
  • Guild emojis are no longer cached
  • Fixed Prometheus metrics

2024.5.0

01 May 23:09
f7a3918
Compare
Choose a tag to compare

This release mainly fixes a few issues and refactors some things.

Changes

  • Added an image command argument to send the output as an ephemeral message
  • Simplified embed image detection
  • Bun's bun:sqlite module is now used on the SQLite backend when available
  • Fixed issue where the SQLite backend could get stuck inside a transaction forever
  • A dedicated YouTube source plugin is now used in the default Lavalink config
  • Fixed uncaption's tolerance argument and snapchat's pos argument by forcing them to floats
  • Fixed some issues resulting from attempting to run in PM2 without the manager process
  • Removed special Imgur image handling

2024.4.0

22 Apr 03:45
f19ef08
Compare
Choose a tag to compare

This release features multiple large changes to the bot behind the scenes, introduces some new features/tweaks, and attempts to fix some bugs.

You might notice the different version number format. From now on, esmBot will use a versioning scheme based on the year/month of release rather than strictly adhering to SemVer, which (hopefully) should help lessen the load regarding delivering something major on every new release and result in more rapid releases.

esmBot has dropped support for Node.js v16 and now requires v18 or above. In addition, support has been introduced for Bun (v1.1 or above), offering an alternative to Node.js for those who are chasing performance.

esmBot has also dropped support for Lavalink v3 and now requires v4.

Changes

  • Added vignette
  • Added volume
  • Added initial beta support for user installations
  • Added support for the Bun runtime
  • Added "bottom" and "scale" arguments to speechbubble
  • Added "spoiler" argument to all image commands
  • Added shard/process info endpoints to PM2 manager
  • Output images are now returned with a spoiler if the original image has one
  • Slash command flags are now used to generate help page params
  • Heavily refactored natives (thanks @Vultumast!)
  • Moved qrcreate and qrrread to natives
  • The emote command can now return multiple emotes in a message
  • The emote command can be used on other messages via replies
  • The Bun version is now shown in stats instead of the Node.js version when running under Bun
  • Fonts are now loaded using a custom fontconfig
  • Requests now use global fetch instead of undici
  • The flag command now uses a different method of getting the flag
  • JSON files are now read using imports
  • Changed criteria for caption easter egg
  • Properly handle ratelimits when getting an image
  • Properly check if the bot can view a channel before attempting to get images from it
  • Check if content contains only empty characters before attempting to generate an image
  • Rewrote the Dockerfile to use multiple build stages for decreasing size
  • The natives can now be built as a standalone library (largely untested and WIP, please report any issues you may come across with this)
  • Fixed swirl using sequential reads
  • Command count is now incremented after the command is run
  • Added some new playing messages
  • Started using JSDoc to help with linting
  • Lots of general code cleanup
  • Update packages
  • Many more fixes too small to mention here
  • Removed Adminer from Docker compose config
  • Remove all soundboard commands

1.10.3

05 Sep 05:10
3cc35a9
Compare
Choose a tag to compare

This release fixes a few issues.

Some of you may have noticed that there weren't any commits from me over the past few months until just now. Things have been a bit rough on my end, with many events heavily impacting my personal life as of late, and that combined with general burnout and focus on other projects (most of which are related to wetdry.world and lethallava.land, my Fediverse instances) has given me very little time to maintain and develop esmBot. I still hope to maintain this thing for a while, but it's becoming much more difficult to do so.

I know I don't tend to leave messages like this in release notes, but I'm still looking for a job since I had to leave my old job back in July (due to said personal events) and can not afford to sustain server and housing costs for more than a couple of months. I'd be willing to provide a resume or similar info on request.

Apologies for the long text, here are the changes in this release:

Changes

  • Backport spotify to vips 8.13
  • Fix globe output being static when used with static images
  • Fix channel being able to change channel permissions outside the current server
  • Fix image request timeouts not being properly handled
  • Update packages
  • Removed gfycat handling

1.10.2

14 Jun 19:39
9a4c7a5
Compare
Choose a tag to compare

This release fixes more bugs, brings the bot up to speed with Discord username changes, and adds a minor feature.

Changes

  • Add spotify (image command)
  • Add edit command option
  • Add message for missing commands in natives
  • Allow building natives without ImageMagick
  • Port tile to libvips
  • Change maximum upload file size to 25MB
  • Change maximum incoming image size to 40MB
  • Improve image request timeout handling
  • Replace timeout error throws in PM2 manager with more tame logs
  • Username discriminators are not displayed if their value is 0
  • Searx requests are now faster
  • Change image search embed format
  • Fix CPU pinning issue
  • Fix image command permissions check
  • Fix classic commands in DMs
  • Fix hooh not executing properly
  • Fix qrcreate not working with slash commands
  • Fix(?) Martinique flag
  • Update packages
  • Remove shardReady handler
  • Remove zamn

1.10.1

10 Apr 01:52
62f6082
Compare
Choose a tag to compare

This release fixes some bugs and attempts to slim things down a bit.

Changes

  • The bot no longer caches channels when classic commands are disabled
  • Changed meme and whisper to use a different, smaller, and more scalable outline method
  • Changed snapchat to use replicate instead of a loop
  • Changed pm2 manager to handle restarts more gracefully
  • Moved some common vectors to common.h
  • Fixed initial incompatibility with slash commands and image processing when upgrading
  • Fixed exec not properly returning large outputs (#367)
  • Fixed Select Image outputs not being ephemeral
  • Fixed error responses not sending an error file in some cases
  • Updated packages
  • Removed unused erlpack, bufferutil, and uuid dependencies

1.10.0

31 Mar 02:55
937d19d
Compare
Choose a tag to compare

This releases is mainly a bugfix release, but it introduces a couple of new features as well. This is a full release instead of a point release due to various incompatible backend changes.

Notably, the date of this release is March 30, 2023; five years since the esmBot project was born. This update is dedicated to everyone who has supported me and the project over the past 5 years.

I'm currently writing a pretty long retrospective post about the bot; however, it's not quite finished yet. I'll link to it in the usual places once it's finished.

Maybe I should take a break...

Changes

  • Add bounce
  • Add togif parameter to image commands
  • Port scott to vips
  • Port explode/implode to vips
  • Add client key to Tenor requests
  • Change no voice connection message
  • Properly acknowledge Select Image requests
  • Rework natives to allow for more portability
  • Make globe diffuse image slightly brighter
  • Overhaul and simplify database handling (#331, #333)
  • Change links to point to the new esmbot.net domain
  • Replace references to Twitter with Mastodon
  • Simplify flag code
  • Fix speechbubble
  • Fix sepia
  • Fix pagination jump setting a NaN page number
  • Fix typo in custom commands docs
  • Fix various issues with getting users over REST
  • Fix various issues with audio playback
  • Fix various issues with PM2 clustering
  • Fix macOS CI builds
  • Fix comma text escape
  • Add new playing messages
  • Update lavasrc-plugin
  • Update packages
  • Remove broken Windows CI builds
  • Remove Top.gg integration

1.9.0

31 Oct 17:03
5281cb1
Compare
Choose a tag to compare

This release makes various changes to the bot, mostly with a focus on the backend. Void dragons, sky towers, and sword blocking not included.

Eris (the library previously used by the bot for interacting with Discord) has been unmaintained for quite some time now, with many missing features and architectural issues that make it difficult to keep using and developing on. Some Eris community members have created a new library from scratch called Oceanic, which aims to solve these problems while retaining the Eris style and feel. esmBot has migrated to this new library and should hopefully run slightly better both at scale and on lower-end hardware.

Note that esmBot's SQLite backend is currently broken on Node.js 19 due to an upstream issue. If you use the SQLite database, please stay on versions 16-18 for now.

Changes

  • Migrated from Eris to the new Oceanic library
  • Replaced eris-fleet with a new custom, PM2-based clustering manager
  • Added squish
  • Added ability to limit owner-only commands to a specific server
  • Added channel name to the audio session end message
  • Added alias for swirl
  • Added debugging scripts to package.json
  • Added new, upscaled Twemoji glyphs as default emoji font
  • Added debug logs for the Lavalink connection
  • Added config option to disable YouTube playback
  • Added many new playing messages
  • Activity broadcasts now persist across restarts
  • Changed image endpoint for cat/ancient
  • Allow usage of classic commands in DMs even when disabled
  • Always request GUILDS intent
  • Fonts/emojis are now loaded directly from the assets directory
  • Overhauled image server connections to avoid IPC overhead
  • Overhauled Lavalink server connections
  • Replaced pg package with postgres
  • Changed sonic font
  • Improved audio command response/feedback messages
  • Audio commands now load even when Lavalink isn't connected
  • Made uncanny ignore hidden and non-PNG files
  • The help command is no longer appended to the playing messages if classic commands are disabled
  • Refactored command reloading
  • Refactored message prefix handling
  • Ported swirl to vips
  • Fixed Tenor GIF links when used inside a slash command
  • Fixed counts for message commands not being updated properly
  • Fixed out-of-order reads in flip/flop
  • Fixed imagedetect getting the wrong image in a reply
  • Fixed issue where the bot wouldn't reconnect to a voice channel after a shard disconnect
  • Updated packages
  • Updated Topi's Source Managers to LavaSrc
  • Removed "requires" field from commands
  • Removed Azure image generation support
  • Removed serverinfo
  • Removed userinfo

1.8.3

01 Sep 01:59
84eeb06
Compare
Choose a tag to compare

This release introduces fixes and features in preparation for Discord's message content intent enforcement.

Changes

  • Added support for message menu commands
  • Added Select Image message command (to select a specific image for other commands)
  • Added another uncanny image ("Uncle Jeremy")
  • Added a new alias for nowplaying
  • Added support for blacklisting certain commands from loading
  • Added the ability to toggle classic/application command types
  • seek now accepts proper timestamps
  • host now gets the current voice session host when run without arguments
  • Improved handling of users leaving voice channels
  • Error messages in slash commands are now ephemeral
  • Swapped an alias for skip/sticker
  • Cleaned up now playing embeds
  • Lowered default audio playback volume
  • Disabled eris-fleet concurrency in favor of the Eris implementation
  • Image natives are no longer loaded by the bot when using an external image server
  • Reimplemented cache limit for prefixes and disabled commands
  • Prometheus service is no longer started if metrics are disabled
  • Delay sound player disconnect to accommodate for the Lavalink audio buffer
  • Made broadcast more stable
  • Fixed Tenor error messages
  • Fixed handling of case-sensitive Gfycat links in slash commands
  • Fixed music command owner override
  • Removed file parameter from play slash command
  • Updated lava-xm-plugin
  • Update packages
  • Removed evalraw