Skip to content

v0.8.0

Pre-release
Pre-release

Choose a tag to compare

@svioletg svioletg released this 05 Jun 23:53
· 168 commits to main since this release

v0.7.0...v0.8.0

Overview

Breaking changes:

  • Some TOML configuration keys are now properly nullable, using the 'n/a' value to indicate
    such.
    • Config keys max_duration, media_dir_warn_threshold, inactivity_timeout, and
      lonely_timeout now use 'n/a' instead of -1 or 0 to indicate they should be disabled

  • Lydian can now optionally check for new releases at startup, toggled with the check_for_updates
    configuration key (or LYDIAN_CHECK_UPDATES environment variable).
    • You can check for updates manually by running lydian-update.
    • By default, pre-releases are skipped during this check. Set the check_for_stable_only config
      key to false to include pre-releases.
  • The media queue now has a shuffle mode, use -shuffle <on|off> to enable or disable it.
  • Lydian now includes exception arguments in "unexpected error" messages.
    • Full tracebacks are still only available in Lydian's logs.
  • A temporary (deletes after 10 seconds) message is now sent when skipping a track

Added

  • Added config key bot_console (boolean)
    • env: LYDIAN_BOT_CONSOLE
  • Added config key check_for_updates (boolean)
    • env: LYDIAN_CHECK_UPDATES
  • Added config key check_for_stable_only (boolean)
    • env: LYDIAN_CHECK_STABLE_ONLY
  • Added console commands version and updates
  • Added module update
  • Added debug bot commands -argstr and -argint
  • Added bot commands:
    • -issues
    • -repo
    • -shuffle
  • Added attribute cogs.voice.VoiceCog.shuffle
  • Added attributes converter_env and converter_toml to config.ConfigFieldMeta
  • Added command methods cogs.debug.DebugCog.argstr() and cogs.debug.DebugCog.argint()
  • Added command methods cogs.general.GeneralCog.repo() and cogs.general.GeneralCog.issues()
  • Added command method cogs.voice.VoiceCog.toggle_shuffle()
  • Added method console.LydianConsole.version()
  • Added classmethod tools.todos.Todo.parse_todos()
    • Parses Todo objects directly from a string without needing file paths
  • Added method tools.todos.Todo.with_file()
  • Added function util.exc_str()

Changed

  • Package version is now set dynamically using __version__ from __init__.py
  • Bot command -hello now accepts aliases
  • The discord.py exceptions BadArgument and MissingRequiredArgument are now properly handled
  • Logging methods in cogs.voice.YTDLLogHandler now log with depth=2 for more accuracy
  • Renamed in const:
    • COLOR_INFOEMBED_COLOR_INFO
    • COLOR_OKEMBED_COLOR_OK
    • COLOR_WARNEMBED_COLOR_WARN
    • COLOR_ERROREMBED_COLOR_ERROR
  • A status message is now sent when retrieving info for a track before downloading begins (#30)
  • Tool todos now accepts multiple directories to search
  • In tools.todos:
    • Todo.content is now an attribute and not a method
    • Todo.header is now a cached property and no longer accepted as a constructor argument
    • Todo.file is now an optional attribute
    • find_todos() now takes a variable positional argument paths instead of the single
      positional argument source_dir, still str | Path
  • Moved function config.env_to_bool() to util.FromStr.to_bool()
  • Renamed classmethod util.FromStr.filesize() to util.FromStr.to_filesize()
  • Unexpected errors caught in bot.on_command_error now have their exception args sent along with
    the bot's message instead of only saying to check the logs

Fixed

  • Fixed util.tabulate() raising an error for empty data (#32)
  • Fixed todos dev tool skipping # TODO lines with no author (#33)