Skip to content

Releases: deckardsworkspace/blanco-bot

Release 0.5.7

13 Apr 07:50
86b0bb7
Compare
Choose a tag to compare

New command from Blanco's first external contributor!

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.7

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.7

For users

  • New /bump command (#56, thanks to @holedaemon for this!)
    • When enabled, Blanco will insert interstitial tracks called bumps in between queue items
    • These tracks are user-specified and can be set to play after a specific amount of time has passed since the last bump
    • Disabled by default in every guild

For admins and developers

Breaking changes

None.

Other changes

None.

Release 0.5.6

23 Feb 10:26
d307415
Compare
Choose a tag to compare

Bugfix release

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.6

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.6

For users

  • Region-locked tracks will no longer cause Blanco to fall into an infinite loop (#53)

For admins and developers

Breaking changes

None.

Other changes

None.

Release 0.5.5

19 Jan 07:23
470f952
Compare
Choose a tag to compare

Bugfixes

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.5

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.5

For users

  • Fixed playback failures on Google Cloud caused by Spotify API timeouts
    • Should result in way less RemoteDisconnected errors
  • Applied Lavalink YT result blacklisting logic to Spotify results
    • Should prevent Blanco playing remixes, covers, etc if you didn't specifically ask for that version

For admins and developers

Breaking changes

None.

Other changes

  • 404 message not found errors when trying to edit the Now Playing view are now ignored
  • Spotify API calls are now logged in debug mode

Release 0.5.4

12 Jan 10:41
a27d636
Compare
Choose a tag to compare

Happy new year!

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.4

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.4

For users

  • Blanco will now tell you when a track fails to load instead of silently skipping to the next one
  • /stats is no longer a restricted command (#49)
  • Fixed a bug where Blanco might fail to look up tracks by ISRCs (#50)

For admins and developers

Breaking changes

None.

Other changes

  • Updated dependencies

Release 0.5.3

28 Oct 13:58
f2d12d5
Compare
Choose a tag to compare

Workaround for resuming stale paused tracks

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.3

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.3

For users

None.

For admins and developers

Breaking changes

This release includes a workaround for Blanco prematurely ending unpaused tracks.

  • When a track is unpaused after having been paused for a few minutes, Blanco receives an early FINISHED event from Lavalink after a while and therefore skips to the next track.
  • Blanco now has the ability to re-enqueue unpaused tracks after a minute of pause, so that Lavalink starts working from a fresh state.
  • Although the track is re-enqueued at the same playback position, audible skipping may be heard due to processing and network delays.

Because of the last point above, this workaround is opt-in. To enable, set bot.reenqueue_paused in config.yml or the env variable BLANCO_REENQUEUE_PAUSED to true.

Other changes

  • Updated dependencies (5d541ff)
  • Suppressed lint warning for undocumented @silent flag (0d31748)

Known bugs

None so far, but I'll keep looking.

Release 0.5.2

18 Oct 05:05
6e1c152
Compare
Choose a tag to compare

Bugfixes.

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.2

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.2

For users

  • Now Playing views are now sent @silently

For admins and developers

Breaking changes

  • Blanco will now check if the given Redis server is pingable before continuing with boot
  • Cached Lavalink tracks are now invalidated in the case of a PlayerNotConnected error encountered during playback
    • This is sometimes caused by player connected states not being updated in time for the play method to work (#45)

Other changes

None.

Known bugs

  • #39 (seems to be an upstream Lavalink bug, as Blanco receives a normal FINISHED event instead of an error when this occurs

Release 0.5.1

24 Sep 12:16
8c0095a
Compare
Choose a tag to compare

Bugfixes. Full changelog: 0.5.0...0.5.1

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.1

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.1

For users

  • Blanco will now update the Now Playing view with the latest info after using the following commands (Implements #43)
    • /play
    • /remove
    • /shuffle and /unshuffle
    • /loop and /unloop
    • /loopall and /unloopall
    • /volume

For admins and developers

Breaking changes

  • Fixed a bug where the webserver would get loaded regardless of whether it's enabled or not
    • server.enabled and BLANCO_ENABLE_SERVER now do exactly as named
    • If a base URL is set while the server is disabled, Blanco will still print it to console (useful for multi-instance deployments)

Other changes

  • Added a webserver route for robots.txt
  • Updated Nextcord to 2.6.0

Release 0.5.0-1

21 Sep 15:38
7d27b21
Compare
Choose a tag to compare

Bugfixes

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.5.0-1

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.5.0-1

For users

  • Fixed a bug where Blanco would pick sped up versions of tracks for playback (#40)
  • Fixed a bug where Blanco wouldn't play new tracks after finishing an existing queue (#41)

For admins and developers

Breaking changes

None.

Other changes

None.

Known bugs

Release 0.5.0

20 Sep 16:29
4308f1a
Compare
Choose a tag to compare

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 and Disconnected 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 (or bot.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 to player_settings to persist whole-queue looping for guilds

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 import
    • utils/blanco.py: Removed unused ThreadPoolExecutor
    • utils/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 new QueueManager class
    • There should be no changes in functionality, but I'll issue a hotfix in case of a bug

Release 0.4.7

18 Sep 05:35
91a21eb
Compare
Choose a tag to compare

Bugfixes and code cleanup

# Docker Hub
$ docker pull jareddantis/blanco-bot:0.4.7

# GHCR
$ docker pull ghcr.io/jareddantis-bots/blanco-bot:0.4.7

For users

  • Blanco will try to fall back to Deezer first before YouTube when ISRC matching fails, if the Lavalink server supports it
    • This should address some instances where Blanco chooses a suboptimal match just because the ISRC isn't matched, like some tracks from Genshin Impact's OST
  • The enhanced track-query matching logic now also applies to metadata fallbacks for tracks with non-matching ISRCs, not just direct /play invocations
    • This should address some instances where tracks from enqueued Spotify playlists are matched against the wrong YouTube versions
  • Fixed a bug where long queue item names exceed 50 characters
  • Fixed a bug where Blanco would scrobble tracks that weren't playing for long enough

For admins and developers

Breaking changes

  • Changes to the track-query matching weights
    • The naïve weight (i.e., difflib.get_close_matches) now uses a threshold of 90% (from 80%)
    • Blanco now turns Spotify ranks into exponential weights with a factor of 0.8
      • Instead of [100, 90, 80, ...] Blanco now uses [100, 80, 64, ...]
      • This gives better priority to Spotify's search ranking and lessens the number of ties in confidence values
  • The staging image is now built on pushes to the next branch, not pull requests
    • Images are still published for pull requests under the tag format pr-N
    • The next branch will now be restricted to collaborators

Other changes

  • Linting is now performed automatically on pull requests
  • Some pylint checks are disabled (too-few/too-many)
  • Blanco's release version is now inserted on build and displayed in the logs