* lets reduce config calls here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Lets normalize how we name config attributes across the bot.
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ....
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* stop using `bot.guilds` in `on_command_add`
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* missed this one
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* nothing to see here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* lets reduce config calls here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* stop using `bot.guilds` in `on_command_add`
* missed this one
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Update redbot/cogs/mod/kickban.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/cogs/filter/filter.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* make all large loops async to avoid blocking larger bots
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ...
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* okay now working AsyncGen
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* may or may not have forgotten black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack's review
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DOCS
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DOCS
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/core/utils/__init__.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/core/utils/__init__.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* avoid loop if possible and if not only iterate once
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* Fix invite_url_re
Found that the regex used previously could falsely catch strings such as discord member and discord gggggg which aren't invites and shouldn't be caught, testing with this regex string still catches all invite url variations while allowing these other previously caught strings to keep working
* Update redbot/core/utils/common_filters.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* fix stacklevels of warnings
* stop using loop arg when calling start_adding_reactions
* [Audio] Stop using loop arg when calling start_adding_reactions
* use correct prefixes when sending messages to owners
* make internal util for this instead
* oops
* fix circular import
* let's add back the actual fix I made this PR for...
* fix wrong logger name
* improve log message
* passing loop to certain things was deprecated. additionally, `asyncio.get_event_loop()` is being deprecated
* awesome, checks are functioning as intended
* fun with fixtures
* we can just stop misuing that anyhow
* Update redbot/pytest/downloader.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* [Commands Module] Better Typehint Support
We now do a lot more with type hints
- No more rexporting d.py commands submodules
- New type aliases for GuildContext & DMContext
- More things are typehinted
Note: Some things are still not typed, others are still incorrectly
typed, This is progress.
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* Migrate Playlist to DB 3 TODO
1 Migrate Config to Schema 3 without playlists
and update get_playlist methods
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Revert "Migrate Playlist to DB 3 TODO 1 Migrate Config to Schema 3 without playlists and update get_playlist methods"
This reverts commit 4af33cff
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Allow removing tracks from queue by URL
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Words matter
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh*
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* chore
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Fix an attribute error that can be raised here is seconds = 0
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Fix an attribute error that can be raised here is seconds = 0
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* go away
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh*
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Rename `bot.db` as `bot._config`
- Continues work towards strong version guarantees
- Added methods for cog use for a few things which were previously
only accessible via direct access.
- Retained private use in a few internal use locations, though most
methods were updated away from this.
- Updated documentation for shared api token users
* changelog
* more detail
* docstring fixes
* Apparently, I forgot to commit something I had locally
- + a copy/paste failue in the changelog
* *sigh*:
* *sigh*
* PostgreSQL driver and general drivers cleanup
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Make tests pass
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Add black --target-version flag in make.bat
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Rewrite postgres driver
Most of the logic is now in PL/pgSQL.
This completely avoids the use of Python f-strings to format identifiers into queries. Although an SQL-injection attack would have been impossible anyway (only the owner would have ever had the ability to do that), using PostgreSQL's format() is more reliable for unusual identifiers. Performance-wise, I'm not sure whether this is an improvement, but I highly doubt that it's worse.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Reformat
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Fix PostgresDriver.delete_all_data()
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Clean up PL/pgSQL code
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* More PL/pgSQL cleanup
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* PL/pgSQL function optimisations
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Ensure compatibility with PostgreSQL 10 and below
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* More/better docstrings for PG functions
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Fix typo in docstring
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Return correct value on toggle()
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Use composite type for PG function parameters
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Fix JSON driver's Config.clear_all()
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Correct description for Mongo tox recipe
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Fix linting errors
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Update dep specification after merging bumpdeps
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Add towncrier entries
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Update from merge
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Mention [postgres] extra in install docs
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Support more connection options and use better defaults
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Actually pass PG env vars in tox
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Replace event trigger with manual DELETE queries
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* [i18n] Update translation catalogs
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Install redgettext 3.1 in travis crowdin deployment
Last time the catalog templates were updated, redgettext 3.0 was used. I'd rather Travis didn't upload them after extracting with an older version.
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Fix duplicate commands in fuzzy help
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Use help command's filter for all fuzzy
Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
* Adds Schema versioning
- Adds Migration tool
- Adds tool to migrate to allow multiple admin and mod roles
- Supports Multiple mod and admin roles
* Ensures migration is run prior to cog load and connection to discord
* Updates to not rely on singular mod/admin role id
* Update requires logic for multiple mod/admin roles
* Add new commands for managing mod/admin roles
* Feedback
Update strings
Update docstrings
Add aliases
* Use snowflakelist
* paginate
* Change variable name
* Fix mistake
* handle settings view fix
* Fix name error
* I'm bad at Ux
* style fix
* same stuff, but with some more spurious error supression
* fix issue in permissions found in this
* fix a few more spurious errors
* fix another issue
* semi-spurious error fixes
* .
* formatting
* move this to properly log
* distutils import + virtualenv
* more fixes
* Tools for marking things unsafe for general use
* I'm facepalming so much...
Actually, make the two do something different
instead of getting distracted writing different docs for both based on intended usage.
* local scopes mmkay + tests
* Move file to adress feedback
* typo fix
* Update __init__.py
* Fix issue with exported names in __init__
* changelog
* [Bot] Support new design
* [Context] use the new help in `ctx.send_help`
* [Commands] Update Cog and Group for help compat
- Removes a trap with all_commands, this isn't a good way to check this
- Adds a help property
- Fixes command parsing in invoke
* Redesigns red's help
* handle fuzzy help
* style
* handle a specific ugly hidden interaction
* fix bot-wide help grouping
* changelog
* remove no longer needed -