aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | * | | | | | | 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
| | | | | | | | | |
| | | | | | | * | | Make use of dateutil.parser.isoparseGravatar Akarys422019-12-14-2/+3
| | | | | | | | | |
| | | | | | | * | | Filtering cog clean upGravatar Akarys422019-12-14-9/+10
| | | | | | | | | |
| | | | | | | * | | Make use of the Bot subclassGravatar Matteo Bertucci2019-12-12-1/+1
| | | | | | | | | |
| | | | | | | * | | Merge branch 'master' into #364-offensive-msg-autodeletionGravatar Matteo Bertucci2019-12-12-413/+1442
| | | | | | | |\ \ \
| | | | | | | * | | | Add space for readabilityGravatar Matteo Bertucci2019-12-12-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Mark <[email protected]>
| | | | | | | * | | | Merge branch 'master' into #364-offensive-msg-autodeletionGravatar Matteo Bertucci2019-11-16-975/+1910
| | | | | | | |\ \ \ \
| | | | | | | * | | | | Switch to datetime.datetimeGravatar Akarys422019-10-26-6/+6
| | | | | | | | | | | |
| | | | | | | * | | | | Merge branch 'master' into #364-offensive-msg-autodeletionGravatar Akarys422019-10-25-191/+182
| | | | | | | |\ \ \ \ \
| | | | | | | * | | | | | Use Scheduler instead of a custom async loopGravatar Akarys422019-10-25-41/+43
| | | | | | | | | | | | |
| | | | | | | * | | | | | Rename offensive_msg flag to schedule_deletion.Gravatar Akarys422019-10-25-7/+7
| | | | | | | | | | | | |
| | | | | | | * | | | | | Remove the possibility that we send a message to the API that the filter has ↵Gravatar Akarys422019-10-25-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | already deleted.
| | | | | | | * | | | | | Move offensive message delete time to config file.Gravatar Akarys422019-10-25-2/+4
| | | | | | | | | | | | |