Skip to content

Releases: Sonnet-Discord/sonnet-py

Sonnet V1.2.12-1

24 Mar 22:34
748780a
Compare
Choose a tag to compare

Bugs:

  • Patch(map): Fatal error on passing -s/-e flags to map without a command

Sonnet V1.2.12 "Feature Together"

27 Feb 08:04
5e5ef70
Compare
Choose a tag to compare

Sonnet V1.2.12

Frontend:

  • Add(infraction modifiers): Modifiers that add fields to logging embeds
  • Add(mutelength): Option for mute command to display mute length to users
  • Add(logging): Message content to file logging to capture arbitrary text
  • Change(search-infractions): Per Page limit changed to 1-40 from 5-40
  • Add(map): Add -s flag to map and amap
  • Add(role-info): Command to return permission and usercount info of roles (extends Sonnet's "Deal With Discord" policy)

Under the Hood:

  • Change(autotest): Make autotest use a typesafe wrapper around processes
  • Add(unisafe): Unicode safety checker (disallows arbitrary unicode in codebase)
  • Add(paginate_noexcept): Complex pagination library that attempts to fit all content within a limited space
  • Add(reactionroles): Sanity limit of 750 reactionroles per guild
  • Change(coinflip): Command now checks if it is a subcommand, and runs a faster loop if it is
  • Add(constants): Self defined permission constants (dpy1.7.3 is out of date in this area)
  • Change(urlb): Account for multiline url embeds (this is a discord "feature")
  • Change(parse_channel_message): Add reply capture feature
  • Add(cache_sweep): commands cache control behavior has been moved to lib_sonnetcommands
  • Add(SonnetCommand.sweep_cache): Convenience method to sweep cache after a SonnetCommand runs
  • Add(SonnetCommand(aliasmap)): Pass command hashmap directly to automatically reroute aliases
  • Change(starboard): Add image url grabbing from message content
  • Add(LeXdPyK): V1.4.10: add --version flag and user mentions now work for debug commands

Runtime Environment:

  • Add(sonnetconfig): Warning about using re instead of re2

Sonnet V1.2.11-1

08 Feb 18:08
309f4a4
Compare
Choose a tag to compare

Sonnet V1.2.11-1

Bugs:

  • Fix(search-infractions): Fatal error would raise instead of erroring normally on a shlex parse failure

Sonnet V1.2.11 "PythonicT"

09 Jan 01:23
94eb0e7
Compare
Choose a tag to compare

Sonnet V1.2.11

Frontend:

  • Change(infractions): infraction perm failure messages will now refer to the bot using the bots name
  • Add(ban): -d parameter to specify amount of days to delete messages for
  • Add(search-infractions): -f parameter to filter with regex
  • Change(search-infractions): arguments are now split using shlex, meaning quotations may be used
  • Add(grab-message): -r flag to send the message contents as a file, bypassing discord rendering bugs
  • Add(help): help now says when you have the permission listed in per command help
  • Add(help): -c flag to only scan for a command, previously if a category and command had the same name it would jump to the category
  • Change(version-info): now prints what implementation of python is being used

Under the Hood:

  • Add(cmds_to_html): now test for correct permspec on custom permissions
  • Add(lib_tparse): typesafe argument parsing library for commands
  • Add(CommandCtx): a typesafe ctx object that may be passed to commands instead of kwargs, new api has been implemented without breaking old commands
  • Improve(infractions): a "failed to dm" info message will not halt processing of the ban success message anymore
  • Refactor: a test set of commands have implemented commandctx with no issues and are more easily typesafe
  • Change(cmd_scripting): commands have been reworked to use CommandCtx, making them more readable
  • Change(help): split into smaller subcommands to improve readability
  • Add(help): ability for modules to supply their own help page, allowing for guild level custom help
  • Add(CommandError): a special exception that will print to the user and exit normally instead of raising to the kernel from a command context
  • Add(enum_context): nested context manager for a specific dbenum, allowing more concise and less error prone code for accessing said enum
  • Add(parse_user_member_noexcept): concept function that raises a commanderror on failure, nominally lowering boilerplate at the call site
  • Add(parse_channe_message_noexcept): concept function that raises a commanderror on failure, nominally lowering boilerplate at the call site
  • Add(CallCtx,CallKwargs): call modifier functions for easily adapting to new CommandCtx based api
  • Change(grab_filter_infractions): now accepts true/false/None for automod, allowing filtering both ways or neither ways
  • Change(LeXdPyK): V1.4.8: argparse is now used to aide in commandline arguments, file uses main function instead of segmented startup

Runtime Environment:

  • Upgrade(libraries): sonnet has upgraded library versions and added a new library (typing-extensions), you may need to install these to update properly

Sonnet V1.2.10 "Hardened Steel"

23 Nov 00:00
aefd167
Compare
Choose a tag to compare

Sonnet V1.2.10

Frontend

  • Add(list-mutes): Command to list all muted users in mutedb
  • Add(remove-mute): Command to remove userid from mutedb
  • Change(on_message): Bot will only say its prefix if being mentioned is the entire message
  • Add(rejoin-mute): Muted users will be remuted on rejoin

Under the Hood

  • Add(classes): Empty __slots__ to all classes to lower memory footprint
  • Change(commandapi): Commands no longer need to specify a cache or permission behavior
  • Add(db_hlapi.fetch_guild_mutes): Function to grab a guilds mute table
  • Add(has_default_avatar): Helper function to check if a user has a default avatar
  • Change(lib_compatibility): Version checks now happen at init time, not runtime
  • Add(lib_sonnetcommands): Helper to wrap and type a sonnet command

Runtime Environmnet

  • Add(BOT_NAME): Config to set the name of the bot
  • Add(confcheck): Most string configs are now validated at init time
  • Upgrade(dependencies): Sonnet now builds and tests with latest libraries, be sure to update sometime!

Bugs

  • Patch(mute-recovery): Make mute recovery only print users to unmute that are not no unmute users
  • Patch(user_avatar_url): Would not grab default avatar in 2.0

Sonnet V1.2.9 "Real Users"

06 Nov 20:38
7258a60
Compare
Choose a tag to compare

Sonnet V1.2.9

Frontend:

  • Add(remove-regexblacklist): Remove a regex by its index
  • Change(search-infractions): Only specifying a uid will default to user infractions
  • Change(help): Typing help 2 etc for a second help page will prompt the user the correct syntax

Under the Hood:

  • Add(clang-format): C formatter
  • Change(cloader): Make cloader use long in place of int for arbitrary temp numbers
  • Add(slots): Add dunder slots to many classes, lowering class overhead
  • Add(format_duration): End user duration formatting for arbitrary seconds (used in mute)
  • Change(lib_db_handler): Libraries are now more memory efficient by replacing list comprehensions with generators
  • Add(db_hlapi.list_enum): list_enum call to list all primary keys in an enum
  • Add(LeXdPyK): 1.4.6: Previously mentioned dunder slots and encoding specifiers

Bugs:

  • Patch(encoding): Make all file opens specify utf8 encoding

Sonnet V1.2.8-1

19 Oct 07:16
231d184
Compare
Choose a tag to compare

Sonnet V1.2.8-1

Bugs:

  • Patch((un)ban|kick): reasons over 512 would error on discords reason end

Sonnet V1.2.8 "Chronos Across Worlds"

27 Sep 18:24
8f9cc48
Compare
Choose a tag to compare

Sonnet V1.2.8

Frontend:

  • Change(set-viewinfractions): Improved grammar substantially
  • Add(url-blacklist): Add url blacklist system
  • Add(list-automod): --raw flag to dump to file
  • Change(version-info): Discord.py renamed to Wrapper to support pycord going forwards

Under the Hood:

  • Change(cloader): Refactored to use memory safe string header implementation
  • Change(cloader): Now compiles with -Wall -Wextra -Werror -O3
  • Add(LeXdPyK): Testing for ramfs functionality in CI
  • Add(csv blacklists): Add validation of characters inputted to prevent user errors, add - rm flag to clear
  • Add(csv blacklists): Overall cleanup on system
  • Add(lib_compatibility): compat system to allow the bot to run on dpy/pycord 2.0
  • Add(lib_loaders): datetime_unix call to make a datetime from a unix timestamp
  • Add(lib_starboard): Starboard deduplication library to prevent non uniform functionality
  • Add(LeXdPyK): LeXdPyK 1.4.4, faster and more flexible than 1.4
  • Change(db_hlapi): Values that take a sentinel None now check for None, type checks now use isinstance

Runtime Environment:

  • If you used LeXdPyK 1.4.1 or 1.4.2 during the development of 1.2.8, you must swap to >=1.4.3 as there is a ramfs bug causing caching errors

Bugs:

  • Patch(RegEx blacklist): Multi capture group regex would error the automod parser, it no longer does

Sonnet V1.2.7-2

08 Sep 19:49
46b2b99
Compare
Choose a tag to compare

Sonnet V1.2.7-2

Bugs:

  • Patch(antispam): if a user was muted indefinitely and antispam was triggered and antispam was set to auto unmute (non 0 mutetime) the user could escape the indefinite mute via antispam remuting them, this is patched by adding indefinite mutes as a 0 in the mute database, ensuring antispam doesnt clobber it.

Sonnet V1.2.7-1

05 Sep 01:43
c11b757
Compare
Choose a tag to compare

Sonnet V1.2.7-1

Bugs:

  • Patch(search-infractions) Improper bounds check on page index caused fatal error if page queried was one above limit