Releases: 499602D2/tg-launchbot
LaunchBot 3.2.10
LaunchBot 3.0.0
LaunchBot 3.0.0 is a complete rewrite of LaunchBot in Go. The main motivation behind this rewrite was improving the maintainability of the program, alongside with robustness of the backend, especially during API updates and while sending thousands of notifications.
Major new features include improved robustness of the backend, massively improved spam management, reduced susceptibility to rate-limits, improved project layout, a simplified caching system, and various other changes. A migration script is included under db/migration, which migrates the user- and statistics tables of a v2 database to a new v3 database.
The last commit hash for the Python release was 4925f32082ec443a8621a0d24794be07c72bc1b8
. The tree at this commit height can be explored here.
Changes
- Redis replaced with simple, in-memory structs
- SQLite3 database interfaced through Gorm
- Reduce notification size with an expansion command, improving send-rates dramatically
- Enforce a strict rate-limiter with user- and bot-specific token pools
- Support for chat-level settings, including allowing all users in a chat to send commands
- Dramatically simplified how subscriptions are handled
- Modularized the program a bit, so that adding e.g. Discord functionality is simpler in the future
Known issues and breaking changes
- Manual time zone information has not been migrated from v2, meaning that some users have lost their time zone information
- No support for booster information for e.g. Falcon Heavy launches
- Postpone notifications may not work: they have been unit-tested, but never integration-tested
- Probably a some odd, very edge-case bugs
- The concurrent update parsing may be causing less performant devices like Raspberry Pis to freeze completely
LaunchBot 2.1.16
Tweaked post-launch status API call timing to decrease the occurrence of postpone notifications being sent hours after the launch was postponed. This was caused by the post-launch check being only 60 seconds after the launch time, which is not suitable for most launches. This has been adjusted to 5 minutes, which should be more than adequate (while still a pretty tight timing).
Also:
-
Fix provider/country notification preference toggles directing user back to the main menu
-
Tweaked how some launch provider and launch vehicle names are displayed in /schedule. The status symbols for holding and currently in-flight launches were added as well.
-
Reduced logging dramatically, i.e. every single command/interaction is no longer logged.
-
Added Taiwan to the list of supported countries.
-
Fix enabled/disabled status not functioning in /notify, due to functionality being implemented wrongly in a weird way in get_user_notification_status.
-
Replace manually maintained flag_map with a combination of the iso3166 and flag modules. This works by translating the ISO 3166 alpha3 code provided by LL2, to the corresponding alpha2 code with the help of the iso3166 module. This alpha2 code is then converted to a corresponding country flag with the flag module.
-
added startup argument to disable api updates for debugging purposes (--disable-api-updates).
LaunchBot 2.1.15
Fix db connection not closing due to unhandled exception Also: fix version numbering.
LaunchBot 2.1.12
Bug fixes and improvements.
LaunchBot 2.1.9
1.7.0 added a bunch of stuff, including some caching using Redis. The minor numbers have worked their way up to 9, mainly thanks to various issues with postpone notifications after a slight rework.
This release:
-
Reworked postpone notifications, as they were previously sent to everyone, even chats that hadn't received a single notification about the launch yet. The new implementation mainly extends the old one, by checking if a user has been notified at least once before this postpone notification. The old notification system also, for whatever reason, only sent notifications if the postpone was longer than the notification window: e.g. if the 24 hour state was reset, it had to be postponed by more than 24 hours. Now a notification is sent if any state is reset.
-
/next now shows if a launch is holding or has launched already (only for people with all notifications enabled, might change soon)
-
reduced API update frequency even further
-
stopped using tbd_time and tbd_date as they have been deprecated and will be removed by LL2 soon-ish
-
remove launches from db that have fallen out of the API update range: these launches resulted in a bunch of them piling up, with a quickly approaching launch date
-
webcast URLs are pulled properly, according to their priority: the old implementation showed some dumb behaviour during the SN8 launch
-
fix odd edge case when parsing launch information text, resulting in uneven indentation levels
-
Added Blue Origin, thanks to some sharp Reddit user
-
Added support for local Telegram bot API servers
-
Improvements™, I can't bother to go through all the commits
-
A massive amount of bug fixes, mainly odd edge cases
LaunchBot 2.0.1
Fixes a few tiny, sometimes crash-causing issues, all related to sending notifications. This dot-release also fixes various issues in /schedule, all caused by changing the command to show dates relative to the user's time zone.
LaunchBot 2.0.0
LaunchBot 1.6 is a major release which touches effectively every single aspect of the program. The release started off as a result of LaunchLibrary being shut down and replaced with LaunchLibrary2. However, the amount of changes started to rapidly grow, mainly as a response to the API call limit, which was avoided by actually scheduling the API calls, instead of blindly calling every x minutes.
This isn't a feature release: aside from very tiny changes, this is more of a migration. Aside from doing API call and notification scheduling in a completely new way, the release also migrates from telepot to python-telegram-bot, as telepot has been sunsetted. This change in API wrapper also required some restructuring of the code, as command calls are handled in an entirely different way between the two programs.
The release also does a bunch of sorely needed changes to the database structure of the program. All databases have been merged into a single file with multiple tables, and some database tables have been merged into one, simplified, or otherwise adjusted.
Other changes include the splitting of the main launchbot.py
file into separate modules, such as api.py
, notifications.py
, and timezone.py
.
1.6.0 still includes very heavy logging to weed out possible edge-cases in the functionality of the program. These will be deleted later.