* more filters
* note to future people touching this
* chan mentions were almost missed...
* Swap strategies as the previous escaped the mention, while still pinging the user/role
* Add output sanitization defaults to context.send
Add some common regex filters in redbot.core.utils.common_filters
Add a wrapper for ease of use in bot.send_filtered
Sanitize ModLog Case's user field (other's considered trusted as moderator input)
Sanitize Usernames/Nicks in userinfo command.
Santize Usernames in closing of tunnels.
* Add documentation
* Handle missing cogs correctly, add some helpful algorithms
For cog loading, only show "cog not found" if the module in question was the one
that failed to import. ImportErrors within cogs will show an error as they should.
- deduplicator, benchmarked to be the fastest
- bounded gather and bounded async as_completed
- tests for all additions
* Requested changes + wrap as_completed instead
So I went source diving and realized as_completed works the way I want it to,
and I don't need to reinvent the wheel for cancelling tasks that remain
if the generator is `break`ed out of. So there's that.
* basic caching layer
* bit more work, now with an upper size to the cache
* cache fix
* smarter cache invalidation
* One more cache case
* Put in a bare skeleton of something else still needed
* more logic handling improvements
* more work, still not finished
* mass-resolve is done in theory, but needs testing
* small bugfixin + comments
* add note about before/after hooks
* LRU-dict fix
* when making comments about optimizations, provide historical context
* fmt pass
* [V3 Fuzzy search] fix several issues with this feature
* Make it check if parent commands are hidden
* Check if compiler available in setup.py
* Let's just compile a dummy C file to check compiler availability
* Add a missing import + remove unneeded code
* [V3] Start work on fuzzy command search
* Implement in command error handler
* Something isn't working here, try fixing
* Style compliance
* Add fuzzywuzzy to pipfile
* Dump the short doc part if there is no short doc
* Add fuzzy command search on command not found in help
* Move things around, implement for use of default d.py help formatter
* Formatting compliance
* Undo pipfile changes
* Update travis to not sip pipfile lock
update pipfile dependencies
additional black formatting pass to conform to black 18.5b
* .
* pin async timeout until further discussion of 3.5 support
* .
* Upgrade sphinx version to 1.7+
* Fix title overlines/underlines in autostart_systemd.rst
* Skip trying to document a method from discord.py
* Add escaped space after backtick
* Escape underscores (sphinx tries to interpret a hyperlink)
* Use fully qualified reference for class
* Fix reference in tunnel.py
* Remove python syntax highlighting in data_converter.py
For some reason sphinx couldn't lex these as python. Removing the highlighting seems like the logical solution for now, since if it wasn't being lexed, it wouldn't highlight anyway.
* Comment out static path since we're not using it right now
* Update sphinx version in docs requirements too
Would rather remove this duplication but RTD is a special snowflake
* Framework for internationalised command help
* Translator for class docstring of cog
* Remove references to old context module
* Use CogManagerUI as PoC
* Replace all references to RedContext
* Rename CogI18n object to avoid confusion
* Update docs
* Update i18n docs.
* Store translators in list instead of dict
* Change commands module to package, updated refs in cogs
* Updated docs and more references in cogs
* Resolve syntax error
* Update from merge
* [V3 Utils] start on a menu system
* Fix conflicting names
* [V3 Menus] change order of default controls
* [V3 Menus] add a message check to the react check
* Add a note about original source and who ported
* Compare message ids, not the objects themselves
* Okay, let's fix the issues here hopefully.
* This is working now
* Unfinished, and needs a lot of testing.
* more work
* working
* minor thing to remove
* improve i18n and usage feedback
* More docstrings
* still not ready...
* push this untested pile of code.
* working, menu needs cleaning up though, modlog converter not here yet
* menu cleanup
* add note about the fact that values are overwritten
* add i18n
* User friendlier quitting
* Better naming of a function
* setup automodule for dataconverter
* More documentation
* use Config.MEMBER (etc) instead of 'MEMBER' (etc)
* Fix#1326
Checks to see if `author` is a `valid_user` (of `Member` class) before checking to see if the bot `is_mod_or_superior` to the `author`.
* Fix#1202
Raises `TypeError` when `User` objects are passed into `is_mod_or_superior` or `is_admin_or_superior`, as only `Member` objects have a `guild` attribute.
* Fixes#1202
Checks to see if `author` is a `valid_user` (of `Member` class) before checking to see if the bot `is_mod_or_superior` to the `author`.
* [V3 Utils] add embed utils with a random_colour function
* [V3 Utils] random_colour -> randomize_colour + make it take an embed
* [V3 Utils] decomplicate the random color selection
* Docstrings for chat formatting
* Docstrings for mod utils
* Type checking
* Override CSS to highlight object name in definition
* More typing
* Utils docs pages
* Fix typo here
* Readd work due to redoing branch
* [modlog] Move to core and start work on separating it from cogs
* More work on modlog separation
* [Core] Finish logic for modlog, do docstrings, async getters
* [Core] Add stuff to dunder all
* [Docs] Add mod log docs
* [Core] Move away from dunder str for Case class
* [Docs] don't need to doc special members in modlog docs
* More on mod log to implement commands
* More work on Mod
* [Mod] compatibility with async getters
* [Tests] start tests for mod
* [Tests] attempted fix
* [Tests] mod tests passing now!
* [ModLog] update for i18n
* modlog.pot -> messages.pot
* [Mod] i18n
* fix getting admin/mod roles
* Fix doc building
* [Mod/Modlog] redo imports
* [Tests] fix imports in mod tests
* [Mod] fix logger problem
* [Mod] cleanup errors
* A couple of bug fixes
Async getters, some old `config.set` syntax
* Filter ignores private channels
* Fix softban
Was still relying on default channels
* Actually ignore private channels
* Add check for ignored channels
* Fix logic for ignore check
* Send confirm messages before making case
* Pass in guild when setting modlog
* Thanks autocomplete
* Maintain all data for case
* Properly ignore softbans in events
* [Mod] bugfixes
* [Mod] more changes
* [ModLog] timestamp change
* [Mod] split filter and cleanup to their own cogs + regen messages.pot
* [Cleanup] change logic
* [Cleanup] increase limit for channel.history
* [Mod] await getter in modset banmentionspam
* [Mod] attempt duplicate modlog message fix
* [Mod] get_user -> get_user_info
* [Modlog] change reason command so the case author can edit their cases (#806)
* [Modlog] make reason command guild only
* [Modlog] clarify the reason command's help
* [Mod] package path changes + numpy style docstrings for modlog
* [Mod] change ban and unban events to need view audit log perms to find/create a case
* [Modlog] refactoring
* [Filter] add autoban feature
* [Mod] update case types + event changes
* [Mod/Modlog] fix tests, fix permissions things
* [Docs] fix up modlog docs
* Regenerate messages.pot
* Added new start screen
* Added Bordered util
Bordered function required for boxes in start screen
* Update events.py
Added Color to the Title
Added Shard count
* Update events.py
Added Discord.py version
Added package checking for docs and tests
Added package checking for voice
* Update chat_formatting.py
Cleaned up the border function a bit.
Ya'll are gonna hate me.
* Initial modifications
* Add initial setup.py
* working setup py help
* Modify setup file to package stuff
* Move a bunch of shit and fix imports
* Fix or skip tests
* Must add init files for find_packages to work
* Move main to scripts folder and rename
* Add shebangs
* Copy over translation files
* WORKING PIP INSTALL
* add dependency information
* Hardcoded version for now, will need to figure out a better way to do this
* OKAY ITS FINALLY FUCKING WORKING
* Add this guy
* Fix stuff
* Change readme to rst
* Remove double sentry opt in
* Oopsie
* Fix this thing
* Aaaand fix test
* Aaaand fix test
* Fix core cog importing and default cog install path
* Adjust readme
* change instance name from optional to required
* Ayyy let's do more dependency injection