Releases: wneessen/sotbot
v1.4.8: Maintenance release and minor fixes
This is a maintenance release. I mainly updates 3rd party packages to address security issues and fixes some issue with the SoT API, due to API changes that RARE introduces with the latest season.
Improvements
Fixes
v1.4.7: Embed all the things and new SoT RAT Cookie handling // BREAKING CHANGE
The v1.4.7 brings lots of improvements and fixes
Breaking changes
With this version, the SoT RAT cookie handling has completely been refactored. v1.4.7 introduces a completely new RAT cookie format for the bot. The two main reasons behind this are:
- Due to bugs in the Discord formating engine, a RAT cookie with too many _ characters in it, could crash your Discord client
- The bot had no idea about the validity of the cookie and therefore had to test and guess periodically if the cookie is still valid.
With the new format, the bot will also store the expiration date of the cookie in the database, which makes it easy for the bot to check if you cookie is still valid or not. It can also send you a DM, once the cookie expired. As the new format is a combination of JSON and Base64 encoding, the previous way to extract the cookie using Simon's RAT extractor will not work anymore. Instead there are two new tools that can help you to extract your cookie:
- The SoTBot-RAT-Chrome-Extension - a Chrome extension that allows you to simply copy&paste your currently active cookie
- SoTBot-Token-Extractor - a Docker container that works similar to Simon's solution but is compatible with the new format.
New features
- Optimized SoT RAT cookie handling (Commits: 5a3db5e, 68a974f, 0ce3a8e) - See also "Breaking changes"
- Instead of collecting the balance/stats in a local database table and constantly refreshing it, a daily summary will now be stored in the bot's local cache every 24h hours. The
/summary
command uses this for comparison. (Commits: 4364e52, 745c07d, f02f322, ccc7df8, cd8920e)
Improvements
- Remove branch information from
/version
command (Commits: e64e86d) - Better SoT auto-tracking activity handling (Commits: dcfd56c)
- Notify user if the bot wasn't able to fetch the user stats in auto-track mode #58 (Commits: bb6518c)
- Season progress has been converted to fancy embeded message #57 (Commits: 9206a04, f7ce040)
- Reputation summaries have been converted to fancy embeded message #59 (Commits: 9cf84d3)
- Ledger summaries have been converted to fancy embeded message #63 (Commits: cd72d3a, a986bd0)
- Embed-Thumbnail assets are stored in Github now (Commits: 38233cf, 5fe3945, 4605597, f334363)
- Check regularly if SoT RAT cookie is still valid (Commits: 79604d0)
/weather
has been converted to fancy embeded message (Commits: 82c9a1e)
Bug fixes
v1.4.6: Slash commands, fancy embeds, caching and more
The v1.4.6 is a major release with lots of great new features
Breaking change
This release is a breaking change release. All !
-commands (except of !setrat
- see #41) have been converted into so called slash commands. Additionally the /register
and /unregister
commands now do not admin access. A user who fancies to register can do so on their own. Also the permission schema of the bot needs to be changed. See the README.md for details. It is recommended to kick the bot and reconnect it with the newly generated OAuth2 URL.
New features
- All commands are now make use of Discord's "Slash command" capabilities, therefore every
!
-command has been converted. All changes have been updated in the README.md with corrsponding screenshots. #30 (Commits: 041b5e6, c713a63, 21e0997, 26f0ee1, a1e440a, 9078037, 08c685a, 0a2a1f6, 2fe2732, cbf3b46, 8535605, 80197ff, 5da1239, 58b2fd7, 23eaeed, 0464d43, 63306ec, 82e47d6, 4cc5913, f09fdf5, 893e8e2, a367470, e1a7b06, 9746b08)
Improvements
- Daily deeds are now cached, as they only change once a day #38 (relates to #33) (Commits: b9ecae8)
/balance
,/stats
and the SoT auto tracking no respond with fancy embed-messages #39 (Commits: a79a128, 6b8920d, 7c454ae, 87e7e12)- The SoT auto tracking now delays the response after gameplay to give the SoT API time to update (Commits: ffcdd5c, 8056cac)
Bug fixes
v1.4.5: Lots of improvements
The v1.4.5 release brings lots of small improvements and fixes to already present features.
Improvements and fixes
- Started improving the in-code documentation (Commits: ad26e12, 91c014f, 3f0c774, 3d87f84)
- Remove Must*() functions from the code. Must-functions are discouraged, as they panic (Commits: 54c602c)
- ioutil is deprecated. All ioutil functions have been replaced by their corresponding replacements (Commits: f1022f2)
- The http client has been improved to be more general and has been made the main function for all API calls (Commits: 55eaf9e, 2cb71e5, 5343a4b)
- Ambiguous commands now present a "usage" response instead of "command not found" (see #31) (Commits: 723494a)
- The SoT announcements now only happen if the balance actually change during game play (see #28) (Commits: 57632e7)
- Trading routes are now presented as nice Discord embeds. Thanks @silsha for the PR (see #35)
- The bot now has general caching to DB capabilities. First use of it has been introduced to the trading routes (see #34) (Commits: 2601538)
- More stats have been introduced for the "Now playing SoT" feature (see #29) (Commits: 8d97638)
v1.4.4: Encryption, Trade routes and Auth checks
This release brings several new features as well as improvements to some already present features.
New features
Trading routes
The bot is now able to fetch the currently active trade routes from https://maps.seaofthieves.rarethief.com/ (see #17). Thanks to @echox for the contribution!
Encryption
The bot is now able to encrypt user preferences (like the SoT RAT cookie) inside the database. For now only the cookie will be encrypted. Please refer to the README.md for details and security considerations
Improvements
RAT cookie handling
The check and notify user if RAT cookie failed logic has been removed from the updateBalance() method. Instead there is a hourly job (with a random up to 10 minute delay) that will check the validity of the RAT cookie. If it fails 4 times in a row with a HTTP 403, it is likely that the cookie is expired or invalid. In this case, a notification DM is sent to the user.
Daily deeds
The daily deeds command now fetches more information about the currently active deed. It can also check if the requested already completed the deed.
Highlighting for SoT commands
The SoT command now highlight the important parts of the message in the responses. Thanks to @silsha for the contribution (see #18).
Timestamps
The timestamps have been changes from the more computer-readable format to RFC1123 formating
v1.4.3: Bug fixes and daily deeds
This release fixes some bugs and brings the "Daily deeds" feature.
Bug fixes
There was a null-pointer-dereference in the !weather
feature that caused a crash, when no OWM-API key was configured. See #9
Documentation update
The documentation and !help
feature was lacking some details. See #11
Daily deeds
This release introduces the !deed
or !dd
command, which will fetch the currently active "daily deed" from the SoT event hub.
v1.4.2: Ledger stats, More TMDb and weather
This release brings, besides some code cleanup, 3 new major features:
Ledger stats
Using the !ledger
or !led
command followed by one of the main SoT factions, the bot will now fetch your ledger position and points.
TMDb TV show
With the !tv
command, you can now also fetch random or specific TV shows from TMDb
Weather information
The bot has been integrated with the OpenWeatherMap (OWM) API. Using the !weather
command followed by a location, it will fetch some current weather information of that location and present it to the user.
v1.4.1: Urban Dictionary and TMDb support
New features
This release brings two new major features:
Urban Dictionary
With the !ud
or !urban
command, the bot will query the urban dictionary API for specific search terms or for a random term
TMDb
The !movie
command can look up movies in themoviedb.org. If a query argument is given, the specific movie will be searched for, otherwise the bot will present a random movie
Uptime
With the !uptime
command, the bot will tell you, how long it's running
Memory usage
Admins can issue the !mem
command to get some memory usage information
Documentation update
The README and the !help
became a major update and do reflect most of the features now
Code cleanup
Some functions have received some cleanup and the code has been restructured a bit, to get rid of unnecessary complexity
v1.4.0: Major refactor and !stats
New features
The !stats
feature has been added. The SoT API will be requested to provide misc stats like kraken defeated, meg encouters, times vomited, chests handed in, etc.
For bot admins, the !mem
command has been added. It will show the memory allocations and GCs since start
Refactoring
Instead of sending every incoming message/event to their own handler (and therefore their own goroutine) we now have a single "command handler", which differentiates the incoming message in a switch statement. This helps reducing the memory footprint and the amount of GCs
Also the code was straightened a lot, so that duplicate code fragments have been removed.
v1.3.2: Code cleanup and binary release
We introduced Cirrus CI and together with that the GoLinter which showed some code smell, which has been fixed.
Also the permission schema has been change a bit to lower the amounts of events the bot has to process.
This is also the first binary release. We offer Linux/x86_64 and Darwin/arm64 (aka M1) at the moment