Release 0.5.0
Significant update with a new command, better scrobbling, and more under-the-hood integrations
# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.0
# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.0
For users
- New command
/search
- Search Spotify's catalog for stuff to play
- Spotify dropdowns (
/playlists
,/search
) now show rich information- Info includes artists, release dates, and album names
- Card view changes
Added to queue
andDisconnected from voice
views now show the running Blanco release for easier debugging and bug reporting- Now Playing view now shows the correct track index when shuffling, along with new volume, shuffle, and repeat indicators
- Now Playing view now shows the complete list of artists for a Spotify track
- Better, more accurate scrobbling
- Tracks are now checked against MusicBrainz's database if possible before scrobbling
- Matching tracks will now be scrobbled using their MusicBrainz IDs for better Last.fm match accuracy
For admins and developers
Breaking changes
- Ahead-of-time track matching
- When a track starts playing, Blanco now attempts to find a playable Lavalink track for the next track in queue
- This is done in a background
asyncio.Task
for minimal performance impact - Configurable using
BLANCO_MATCH_AHEAD
(orbot.match_ahead
)
- Cache support using Redis
- Blanco can now cache Lavalink tracks, Spotify tracks, ISRCs, and MusicBrainz IDs to lessen API requests
- Configurable using new Redis connection details in the configuration (see wiki)
- New Sentry integration
- Blanco can now forward errors and critical errors to Sentry
- Configurable using new Sentry DSN details in the configuration (see wiki)
- Database schema changes
- Added
loop_all
column toplayer_settings
to persist whole-queue looping for guilds
- Added
Other changes
- Bugfixes
- Fixed a bug where Blanco would fail to connect to a Lavalink node it doesn't have an existing session ID for
- Fixed a bug where the previously set volume wouldn't persist across play sessions
- Code cleanup
- Linting passes
- Moved fuzzy string matchers to
utils/fuzzy.py
PlayerCog:jockey_helpers.py
: Removed unused importutils/blanco.py
: Removed unused ThreadPoolExecutorutils/config.py
: Removed unused convenience get_debug_* functions
- Dedicated queueing module
- The queueing logic in the
Jockey
class has now been mostly moved into a newQueueManager
class - There should be no changes in functionality, but I'll issue a hotfix in case of a bug
- The queueing logic in the