aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | * | | | | | | | | Test token remover takes action if a token is foundGravatar MarkKoz2020-05-11-1/+13
| | | | | | | | | | |
| | * | | | | | | | | Add a test helper function to patch multiple attributes with autospecsGravatar MarkKoz2020-05-11-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helper reduces redundancy/boilerplate by setting default values. It also has the consequence of shortening the length of the invocation, which makes it faster to use and easier to read.
| | * | | | | | | | | Test on_message_edit of token remover uses on_messageGravatar MarkKoz2020-05-11-2/+10
| | | | | | | | | | |
| | * | | | | | | | | Token remover: reduce duplicated code in `on_message_edit`Gravatar MarkKoz2020-05-11-3/+1
| | | | | | | | | | |
| | * | | | | | | | | Token remover: catch ValueError when non-ASCII chars are presentGravatar MarkKoz2020-05-11-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The token uses base64 and base64 only allows ASCII characters. Thus, if a match has non-ASCII characters, it's not a valid token. Catching the ValueError is simpler than trying to adjust the regex to only match valid base64. Fixes #928 Fixes BOT-3X
| * | | | | | | | | | Merge pull request #978 from ItsDrike/unsilence-schedulerGravatar Mark2020-06-12-10/+45
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Use Scheduler instead of asyncio.sleep on silence cog
| | * | | | | | | | | | Use class instead of NamedTupleGravatar ItsDrike2020-06-06-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Using a class is more readable than using a NamedTuple
| | * | | | | | | | | | Test for channel not silenced messageGravatar ItsDrike2020-06-06-4/+14
| | | | | | | | | | | |
| | * | | | | | | | | | Change `is` to `was` for unsilenced channel messageGravatar ItsDrike2020-06-06-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - As suggested, `was` is more fitting in the message than `is`
| | * | | | | | | | | | Move cancel_task before notifier.remove_channelGravatar ItsDrike2020-06-06-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - as sugested notifier.remove_channel and muted_channels.discard should be together
| | * | | | | | | | | | Do not await self.schedule_taskGravatar ItsDrike2020-06-06-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - self.schedule_task shouldn't be awaited as it isn't a coroutine
| | * | | | | | | | | | Remove unnecessary schedule_unsilenceGravatar ItsDrike2020-06-06-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - As suggested, this function is not necessary - Also fixed no longer valid`stop`in SilencedChannel NamedTuple
| | * | | | | | | | | | Fix import orderGravatar ItsDrike2020-06-06-1/+1
| | | | | | | | | | | |
| | * | | | | | | | | | Apply suggestions from reviewGravatar ItsDrike2020-06-06-15/+10
| | | | | | | | | | | |
| | * | | | | | | | | | Use Scheduler inside the cogGravatar ItsDrike2020-06-04-30/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - There shouldn't be another class only for Scheduler instead, we can implement it directly into Silence class
| | * | | | | | | | | | Optimize ImportsGravatar ItsDrike2020-06-01-4/+4
| | | | | | | | | | | |
| | * | | | | | | | | | Fix Formatting/StylingGravatar ItsDrike2020-06-01-8/+5
| | | | | | | | | | | |
| | * | | | | | | | | | Use Scheduler instead of asyncio.sleep on silence cogGravatar ItsDrike2020-06-01-10/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `asyncio.sleep` doesn't provide us with the ability to stop that timer, while in most of the cases, this is fine, there is a possibility that channel will be unsilenced manually and silenced again, but this sleep from the first silence will cancel the second (new) silence. This will replace this `asyncio.sleep` with Scheduler which provides the ability to cancel the unsilencing task when aborted manually. That means we also have the ability to send a response if the channel is not silenced and someone tries to unsilence it.
| * | | | | | | | | | | Merge pull request #997 from python-discord/bug/frontend/996/charinfo-md-escapeGravatar Joseph Banks2020-06-13-2/+2
| |\ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|/ / / / / | |/| | | | | | | | | | Escape markdown in charinfo embed
| | * | | | | | | | | | Escape markdown in charinfo embedGravatar MarkKoz2020-06-12-2/+2
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The embed displays the original character. If it's a markdown char, it would interfere with the embed's actual markdown. The backtick was especially troublesome. Fixes #996
| | | | | * | | | | | Revise inaccurate docstring in RedisCacheGravatar kosayoda2020-06-16-2/+2
| | | | | | | | | | |
| | | | | * | | | | | Refactor nested if-statementGravatar kosayoda2020-06-16-5/+4
| | | | | | | | | | |
| | | | | * | | | | | Help channels: revise inaccurate commentGravatar MarkKoz2020-06-08-1/+1
| | | | | | | | | | |
| | | | | * | | | | | Help channels: use cache to remove cooldowns or re-schedule themGravatar MarkKoz2020-06-08-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the cache is more efficient since it can check only the users it expects to have a cooldown rather than searching all guild members. Furthermore, re-scheduling the cooldowns ensures members experience the full duration of the cooldown. Previously, all cooldowns were removed, regardless of whether they were expired.
| | | | | * | | | | | Help channels: add a function to schedule cooldown expirationGravatar MarkKoz2020-06-08-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moving this code into a separate function reduces redundancy down the line. This will also get used to re-scheduled cooldowns after a restart.
| | | | | * | | | | | Help channels: add a function to get in use timeGravatar MarkKoz2020-06-08-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Future code will also need to get this time, so moving it out to a separate function reduces redundancy.
| | | | | * | | | | | Help channels: fix claim timestamp being localGravatar MarkKoz2020-06-08-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The datetime module returns a local timestamp for naïve datetimes. It has to be timezone-aware to ensure it will always be in UTC.
| | | | | * | | | | | Remove pointless suppress.Gravatar Leon Sandøy2020-06-07-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since help_channel_claimants.delete will never raise a KeyError, it's not necessary to suppress one.
| | | | | * | | | | | Merge branch 'master' into help_channel_rediscacheGravatar Leon Sandøy2020-06-06-1/+7
| | | | | |\| | | | |
| | | | | * | | | | | Merge branch 'master' into help_channel_rediscacheGravatar Leon Sandøy2020-06-06-84/+134
| | | | | |\ \ \ \ \ \
| | | | | * | | | | | | Fix potential race condition.Gravatar Leon Sandøy2020-06-06-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of first checking if the channel.id exists and then checking what it is, we just do a single API call, to prevent cases where something fucky might happen inbetween the first and the second call.
| | | | | * | | | | | | Store epoch timestamps instead of strings.Gravatar Leon Sandøy2020-06-06-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're also switching from datetime.now() to datetime.utcnow().
| | | | | * | | | | | | Store booleans as integers instead of strings.Gravatar Leon Sandøy2020-06-06-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means we don't need to rely on strtobool, and is a cleaner implementation overall. Thanks @MarkKoz.
| | | | | * | | | | | | Refactor help_channels.py to use RedisCache.Gravatar Leon Sandøy2020-06-06-28/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | More specifically, we're turning three dicts into RedisCaches: - help_channel_claimants - unanswered - claim_times These will still work the same way, but will now persist their contents across restarts.
| | | | | * | | | | | | Add support for bool values in RedisCacheGravatar Leon Sandøy2020-05-31-3/+15
| | | |_|/ / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're gonna need this for the help channel handling, and it seems like a reasonable type to support anyway. It requires a tiny bit of special handling, but nothing outrageous.
| | | | | | | * | | | Delete the loop argument from schedule_task callsGravatar Matteo Bertucci2020-03-02-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function doesn't take the loop as an argument anymore
| | | | | | | * | | | Remove task self cancel.Gravatar Matteo Bertucci2020-03-02-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent changes to the scheduler requires this line to be removed.
| | | | | | | * | | | Merge branch 'master' into #364-offensive-msg-autodeletionGravatar Matteo2020-03-01-1933/+4045
| | | | | | | |\ \ \ \
| | | | | | | * | | | | Make sure that the offensive message deletion date returned by the API is naive Gravatar Matteo Bertucci2020-02-29-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It could have caused an issue later with a mix of naive and aware datetime Co-Authored-By: Sebastiaan Zeeff <[email protected]>
| | | | | | | * | | | | Merge branch 'master' into #364-offensive-msg-autodeletionGravatar Joseph2020-02-02-508/+1333
| | | | | | | |\ \ \ \ \
| | | | | | | * | | | | | Filtering: fix missing deletion date in scheduled task dataGravatar MarkKoz2019-12-15-11/+8
| | | | | | | | | | | | |
| | | | | | | * | | | | | Filtering: fix comparison between tz naïve and aware datetimesGravatar MarkKoz2019-12-15-1/+1
| | | | | | | | | | | | |
| | | | | | | * | | | | | Filtering: refactor scheduling of deletion taskGravatar MarkKoz2019-12-15-13/+9
| | | | | | | | | | | | |
| | | | | | | * | | | | | Filtering: log the status code of caught HTTPExceptionGravatar MarkKoz2019-12-15-4/+2
| | | | | | | | | | | | |
| | | | | | | * | | | | | Make setting filter.offensive_msg_delete_days pluralGravatar Akarys422019-12-14-2/+2
| | | | | | | | | | | | |
| | | | | | | * | | | | | Rename route /bot/offensive-message to /bot/offensive-messagesGravatar Akarys422019-12-14-3/+3
| | | | | | | | | | | | |
| | | | | | | * | | | | | Fix docstring typoGravatar Akarys422019-12-14-1/+1
| | | | | | | | | | | | |
| | | | | | | * | | | | | Actually schedule message for deletionGravatar Akarys422019-12-14-0/+2
| | | | | | | | | | | | |
| | | | | | | * | | | | | Catch all HTTPExecptionGravatar Akarys422019-12-14-1/+5
| | | | | | | | | | | | |
| | | | | | | * | | | | | Rename config entry to offensive_msg_delete_daysGravatar Akarys422019-12-14-3/+3
| | | | | | | | | | | | |