* Resolve dictionary changed size during iteration while converting levels mapping and remove non-converted entry to avoid duplicate entires (str and int index).
Add default for premium sub count.
* Update disco/bot/bot.py
Co-Authored-By: Andrei Zbikowski <[email protected]>
1. The shortest possible match for a single command was an empty string.
2. Group matching was overly greedy, and would allow extraneous
characters at the end of the group match.
- Remove the limitation that prevented us from surpassing 100 commands
- Fix CommandEvent.name being the full command string, and not just the
command name
- Fix the error thrown on mismatched args being utter trash
Its valid for a user mention to be sent and parsed when a nickname
mention is expected. As such we should filter both from the message
contents to avoid message processing issues.
* First pass at voice sending
* more voice
* Refactor playables a bit, general fixes n stuff
* Cleanup
* Voice encryption, dep version bump, etc fixes
* Remove debugging, don't open a pipe for stderr
* Refactor playables
This is still a very lose concept, need to think about what the actual
differences between encoders and playables are. Also some rough edges in
general with the frame/sample calculations.
However, this still feels miles ahead of the previous iteration.
* Properly reset state when resuming from a pause
* rework playables/encoding/etc a bit
* Add a proxy, allow for more pipin'
* Cleanup, etc
* Fix resuming from a pause lerping music timestamp
* Fix some incorrect bounds checks, add MemoryBufferedPlayable
- Bot.get_commands_for_message is now more composable/externally useable
- Command parser for 'user' type has been improved to allow
username/discrim combos
- Model loading can now be done outside of the model constructor, and
supports some utility arguments
- Fix sub-model fields not having their default value be the sub-model
constructor
- Fix Message.without_mentions
- Add Message.with_proper_mentions (e.g. humanifying the message)
- Cleanup Message.replace_mentions for the above two changes
- Fix some weird casting inside MessageTable
- Add support for attachments and message embeds
- Fix commands being weirdly stored by some key (which doesn't make
sense)
- Added CommandEvent.codeblock which represents the first codeblock in
the message (useful for eval like commands)
- Cleanup the spawn utilties on plugin a bit
- Fix GuildBanAdd/GuildBanRemove
- Unset model fields are now a special sentinel value
- etc stuff
- Add plugin context on load
- Allow providing additional kwargs to a command context
- Commands are now stored using their base trigger instead of function
name, which allows for multiple bindings on a single function
- Use argument passing for register_listener
- Fix RedisProvider.get_many failing when its passed an empty list of
keys
- Add some utility properties on MessageReactionAdd/Remove
- Support type conversion toggling in MessageTable
- Latest holster fixes
The biggest part of this commit is a plugin storage subsystem, which at
this point I'm fairly happy with. I've iterated on this a couple times,
and the final result has a very clean/simple interface, is easy to
extend to different data stores, and has a very few minimal number of
grokable edge cases.
- Storage subsytem
- Fix command group abbreviations
- Fix reconnecting in the GatewaySocket
- Add pickle support to serializer