aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| * | | | | | | | | | | Don't log exception traceback on Forbidden for welcomes.Gravatar scragly2020-02-23-12/+9
|/ / / / / / / / / / /
| * | | | | | | | | / Pagination migrations - Emoji Data Structure ModifiedGravatar F4zi2020-02-17-1/+1
| | |_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changed the pagination emoji collection from list to tuple This change was suggested since this collection is constant
| | * | | | | | | | Define `_count` in `__init__`.Gravatar scragly2020-02-23-0/+1
| | | | | | | | | |
| | * | | | | | | | Suppress NotFound on react clear, tidy imports.Gravatar scragly2020-02-23-18/+21
| | | | | | | | | |
| | | * | | | | | | Remove the space that makes the test failGravatar Deniz2020-02-21-1/+1
| | | | | | | | | |
| | | * | | | | | | Use the code provided by sco1 to fix the checks failing.Gravatar Deniz2020-02-21-5/+10
| | | | | | | | | |
| | | * | | | | | | Add thousand separators to Members count, closes #744Gravatar Deniz2020-02-13-4/+4
| | | | | | | | | |
| | | * | | | | | | Update the tests accordingly to reflect the new changesGravatar Deniz2020-02-13-3/+3
| | | | | | | | | |
| | | * | | | | | | Use collections.Counter properly. Use the ChannelType enum instead of the ↵Gravatar Deniz2020-02-12-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __class__ attribute, and re-add the None check for !user roles.
| | | * | | | | | | Use the enum itself instead of its string valueGravatar Deniz2020-02-08-6/+6
| | | | | | | | | |
| | | * | | | | | | Fix some of the testing for information.py; I think this should be it. ↵Gravatar Deniz2020-02-06-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (hopefully).
| | | * | | | | | | Change if statement to elif; if the first if statement returns true, the ↵Gravatar Deniz2020-02-06-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | second cannot be true making it unneccesary to check
| | | * | | | | | | Fix up imports a bit; there's no need to import all of discord and typing ↵Gravatar Deniz2020-02-06-10/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for just 1 or 2 uses (e.g. Union, and Message).
| | | * | | | | | | Instead of sending a message everytime a role can't be converted, append it ↵Gravatar Deniz2020-02-06-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to a list, and then send them it at once (less spammy)
| | | * | | | | | | Update tests to reflect status changesGravatar Deniz2020-02-06-4/+4
| | | | | | | | | |
| | | * | | | | | | Refactor how channels and statuses are counted; using Counter() - way cleaner.Gravatar Deniz2020-02-06-35/+17
| | | | | | | | | |
| | | * | | | | | | Remove some a lot of unneccesary newlines that arguably make it harder to readGravatar Deniz2020-02-06-9/+2
| | | | | | | | | |
| | | * | | | | | | Roles cannot return None because everyone has the Developer role by default, ↵Gravatar Deniz2020-02-06-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and non-verified users cannot use this command.
| | | * | | | | | | No longer check if every role is @everyone; just skip the first element in ↵Gravatar Deniz2020-02-06-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the list
| | | | | * | | | | Remove call to delete reminder, as ensure method already does it.Gravatar scragly2020-02-23-1/+0
| | | | | | | | | |
| | | | | * | | | | Check reminder user and channel before send and schedule.Gravatar scragly2020-02-23-17/+38
| |_|_|_|/ / / / / |/| | | | | | | |
* | | | | | | | | Don't set project log level so it uses root level.Gravatar scragly2020-02-23-1/+1
| |/ / / / / / / |/| | | | | | |
* | | | | | | | Change defcon log levels from warning to infoGravatar Joseph Banks2020-02-21-2/+2
| | | | | | | |
* | | | | | | | Enable logging warnings to SentryGravatar Joseph Banks2020-02-21-3/+12
| | | | | | | |
* | | | | | | | Merge pull request #733 from kwzrd/unittest-antispam-rulesGravatar Sebastiaan Zeeff2020-02-21-178/+634
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add test cases for antispam rules, fix bug in attachments rule & test
| * \ \ \ \ \ \ \ Merge branch 'master' into unittest-antispam-rulesGravatar Sebastiaan Zeeff2020-02-21-658/+494
| |\ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
* | | | | | | | | Merge pull request #762 from python-discord/setup-sentry-sdkGravatar Mark2020-02-21-145/+40
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Sentry SDK setup
| * | | | | | | | | Attach jump_to url to the eventGravatar Joseph Banks2020-02-21-0/+8
| | | | | | | | | |
| * | | | | | | | | Use push_scope instead of configure_scopeGravatar Joseph Banks2020-02-21-2/+2
| | | | | | | | | |
| * | | | | | | | | Use log.error instead of capture_exceptionGravatar Joseph Banks2020-02-21-2/+2
| | | | | | | | | |
| * | | | | | | | | Remove AIOHTTP integration from Sentry since it is intended for AIOHTTP servers.Gravatar Joseph Banks2020-02-21-3/+1
| | | | | | | | | |
| * | | | | | | | | Remove tests for custom bot logGravatar Joseph Banks2020-02-21-62/+2
| | | | | | | | | |
| * | | | | | | | | Add basic sentry usage for command errors giving user information and ↵Gravatar Joseph Banks2020-02-21-85/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | command context.
| * | | | | | | | | Attach extra information on a command errorGravatar Joseph Banks2020-02-21-1/+13
| | | | | | | | | |
| * | | | | | | | | Set BOT_SENTRY_DSN environment variable for testsGravatar Joseph Banks2020-02-21-1/+1
| | | | | | | | | |
| * | | | | | | | | Implement basic Sentry SDK usageGravatar Joseph Banks2020-02-21-2/+14
|/ / / / / / / / /
* | | | | | | | | Merge pull request #761 from python-discord/loggingGravatar Joseph2020-02-20-124/+81
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Refactor logging setup to be more explicit and cleaner.
| * | | | | | | | | Update flake8-annotations to v2.0.Gravatar scragly2020-02-20-10/+51
| | | | | | | | | |
| * | | | | | | | | Change to explicit logs, remove logmatic.Gravatar scragly2020-02-20-160/+76
|/ / / / / / / / /
* | | | | | | | | Merge pull request #753Gravatar S. Co12020-02-19-16/+38
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Show created date and duration in expired infraction log
| * | | | | | | | Merge branch 'master' into feat/frontend/b685/expired-infraction-log-durationGravatar S. Co12020-02-19-1/+1
| |\ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
* | | | | | | | | Change snekbox api url to internal docker domain.Gravatar scragly2020-02-17-1/+1
| |_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NGINX has been dockerised, and proxy passes now reference internal container domains rather than referencing host or external domains. This will have a few extra benefits: - Less external factors involved for resolving the service address - Can work with the same address on development envs - Snekbox can be closed down entirely so it's inaccessible from external networks.
| * | | | | | | Moderation: show avatar in infraction deactivation logGravatar MarkKoz2020-02-19-0/+5
| | | | | | | |
| * | | | | | | Moderation: show member as a mention in expired infraction logGravatar MarkKoz2020-02-15-1/+1
| | | | | | | |
| * | | | | | | Moderation: show correct actor in expired infraction logGravatar MarkKoz2020-02-15-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bot user was always being used instead of using the actor field of the infraction.
| * | | | | | | Moderation: add creation date & duration to expired infraction logGravatar MarkKoz2020-02-15-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #685
| * | | | | | | Utils: refactor format_infraction_with_duration and support absolute valGravatar MarkKoz2020-02-15-13/+23
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The absolute value is useful for preventing negative values in the case that date_to is in the past relative to date_from. * Add an absolute parameter to take the absolute value of the duration * Rename expiry to date_to * Rewrite the docstring
* | | | | | | Merge pull request #752 from python-discord/infr-edit-permanent-fixGravatar Mark2020-02-14-2/+5
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | Stop scheduling expiration of permanent infractions on edit
| * | | | | | Stop scheduling expiration of permanent infractions on editGravatar Sebastiaan Zeeff2020-02-14-2/+5
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/python-discord/bot/issues/751 The infraction edit command defined in `bot.cogs.moderation.management` contained a bug causing it to attempt to schedule an expiration task when turning a temporary infraction into a permanent infraction. Since the "expires_at" field of a permanent infractions is `None`, this caused an exception to occur in the scheduler: Traceback (most recent call last): File "/bot/bot/cogs/moderation/scheduler.py", line 415, in _scheduled_task expiry = dateutil.parser.isoparse(infraction["expires_at"]).replace(tzinfo=None) File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 37, in func return f(self, str_in, *args, **kwargs) File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 134, in isoparse components, pos = self._parse_isodate(dt_str) File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 208, in _parse_isodate return self._parse_isodate_common(dt_str) File "/usr/local/lib/python3.7/site-packages/dateutil/parser/isoparser.py", line 213, in _parse_isodate_common len_str = len(dt_str) TypeError: object of type 'NoneType' has no len() I have solved this by adding a check that makes sure we only schedule an expiration task when the `"expires_at"` field has a truthy value (which all valid datetime strings are) using `if request_data['expires_at']`. IMPORTANT NOTE: While it's tempting to just skip the entire scheduling block for permanent infractions, it's essential to unschedule existing expiration tasks for this infraction as we're changing a temporary infraction to a permanent infraction. This commit closes #751
| * | | | | Add unit test for newlines antispam ruleGravatar kwzrd2020-02-04-0/+105
| | | | | |