aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | | | | | * | | | | | | Cancel the periodic ping task when the verification cog is unloadedGravatar MarkKoz2019-10-11-0/+4
| | | | | | | | | | | | |
| | | | | | * | | | | | | Better check way of checking timelapsGravatar kraktus2019-10-11-11/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a coroutine instead of a list.
| | | | | | * | | | | | | Requested changesGravatar kraktus2019-10-05-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changed `PERIODIC_PING` from 2 f-string to one normal and one f-string. The bot now checks in the lasts 5 messages (why 5? Admins/mods could have add some notes, and/or users could have wrong taped the command, which lead the bot to send a message) the time of his last ping. If there is not historic ping, will send one (initialization and make the command more robust). If there is one previous `PERIODIC_PING` message, checks if it older than one week. I also set the countdown from 1 to 12 hours. Why not more? Because each time the bot is restarted the countdown is reset to 0, and I don't know how often it is restarted.
| | | | | | * | | | | | | Added a new `periodic_ping` to fix #320Gravatar kraktus2019-10-05-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Created a new function named `periodic_ping` in `verification.py`, using `discord.ext.tasks` and `datetime` module. Every hour the function checks if the last message in the channel (ie last message of the bot) is older than a week. If so, it deletes this message and post a new one.
| | | | | | * | | | | | | Added to the .gitignore file a new file to be ignored, .DS_Store (only on ↵Gravatar kraktus2019-10-05-0/+3
| | | |_|_|/ / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mac OS), that stores custom attributes of its containing folder. New contributors on Mac OS won't have to bother anymore about this mysterious file that create when you fork the project.
* | | | | | | | | | | | Expand spoilers to match multiple interpretationsGravatar Jeremiah Boby2019-11-28-1/+11
| | | | | | | | | | | |
* | | | | | | | | | | | Update spoiler regex to support multi-line spoilersGravatar Jeremiah Boby2019-10-21-1/+1
| | | | | | | | | | | |
* | | | | | | | | | | | Check partially hidden words against the wordlistGravatar Jeremiah Boby2019-10-13-1/+2
|/ / / / / / / / / / /
* | | | | | | | | | | Merge pull request #505 from python-discord/user-log-display-name-changesGravatar Mark2019-10-09-1/+6
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / / |/| | | | | | | | | | Ensure display name changes are logged to the user-log
| * | | | | | | | | | Merge branch 'master' into user-log-display-name-changesGravatar Mark2019-10-09-2/+8
| |\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | |
* | | | | | | | | | | Merge pull request #504 from python-discord/show-reason-bot-actor-infractionsGravatar Mark2019-10-08-2/+8
|\ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / / / |/| | | | | | | | | | Show the reason in infraction confirmation message if the actor is the bot
| * | | | | | | | | | Show infraction reason when the bot is the actorGravatar Sebastiaan Zeeff2019-10-08-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/python-discord/bot/issues/476 We recently decided to hide the reason in the confirmation message the bot sends after applying an infraction. In most situations, this makes sense, since the message containing the invocation command already contains the reason. However, if the infraction was triggered by the bot itself (e.g., an antispam trigger), this means that we're missing information that provides context to the infraction. This commit adds the reason back to the confirmation message, but only if the actor of the infraction was the bot itself. Closes #476
| * | | | | | | | | | Set bot as actor of antispam infractionsGravatar Sebastiaan Zeeff2019-10-08-1/+3
|/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mentioned in #476, the bot currently sets the actor of infractions applied due to an antispam rule trigger to the offending member. The reason is that we get a `Context` object from the message that triggered the antispam rule, which was sent by the offender. I've changed it by patching both available author attributes, `Context.author` and `Context.message.author` with the bot user.
| * / / / / / / / / Ensure display name changes are loggedGravatar Sebastiaan Zeeff2019-10-08-1/+6
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/python-discord/bot/issues/489 Recently, we discovered that not all display name changes were logged to the #user-log channel. This problem was caused by the `old_value` or the `new_value` showing up as `None` when a user sets or removes a guild-specific nickname. Since we ignore changes where one of the two values is `None`, we did not log these `None->nick` or `nick->None` events. Since we are mainly interested in the display name of the user, and the display name is equal to the user's guild-specific nickname if they have set one and otherwise their username, I made the following changes: - Add logging of changes in the display names of members. - Ignore nick-specific changes completely, since these changes are already captured by the changes in the display name we now log. This closes #489
* | | | | | | | | Merge pull request #462 from python-discord/moderation-cleanupGravatar Sebastiaan Zeeff2019-10-08-1558/+1306
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Refactors the moderation utilities.
| * \ \ \ \ \ \ \ \ Merge branch 'master' into moderation-cleanupGravatar Sebastiaan Zeeff2019-10-08-19/+286
| |\ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | |
* | | | | | | | | | Merge pull request #498 from fiskenslakt/feat/attachment-spam-thresholdGravatar S. Co12019-10-06-1/+1
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Feat/attachment spam threshold
| * | | | | | | | | | Update max threshold for attachmentsGravatar Derek2019-10-06-1/+1
|/ / / / / / / / / /
* | | | | | | | | | Merge pull request #492 from python-discord/doc-fixGravatar S. Co12019-10-06-0/+3
|\ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / / |/| | | | | | | | | Fix error when symbol_id cannot be found in doc HTML
| * | | | | | | | | Merge branch 'master' into doc-fixGravatar Chris G2019-10-04-3/+258
| |\ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | |
* | | | | | | | | | Merge pull request #441 from python-discord/add-role-info-commandGravatar Chris G2019-10-04-1/+97
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Add role info command
| * \ \ \ \ \ \ \ \ \ Merge branch 'master' into add-role-info-commandGravatar Chris G2019-10-04-37/+288
| |\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | |
* | | | | | | | | | | Merge pull request #490 from python-discord/bb-previous-reasonGravatar Chris G2019-10-04-2/+39
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Show previous watch reason and total after invoking watch command
| * \ \ \ \ \ \ \ \ \ \ Merge branch 'master' into bb-previous-reasonGravatar Chris G2019-10-04-0/+122
| |\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / |/| | | | | | | | | | |
* | | | | | | | | | | | Merge pull request #473 from python-discord/ISODate-converterGravatar Mark2019-10-04-0/+122
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|/ / / / / / / |/| | | | | | | | | | | Add converter for ISO-formatted datetime strings
| * | | | | | | | | | | Merge branch 'master' into ISODate-converterGravatar Mark2019-10-04-38/+130
| |\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / |/| | | | | | | | | | |
| * | | | | | | | | | | Check if tzinfo is None in ISODateTime testGravatar Sebastiaan Zeeff2019-10-03-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we have decided that the converter should return naive datetime objects, we should explicitly test that datetime strings with a timezone offset are still converted to a naive datetime object. I have done this by adding a `tzinfo is None` assertion.
| * | | | | | | | | | | Make ISODateTime return tz-unaware datetimeGravatar Sebastiaan Zeeff2019-10-02-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parser we use, `dateutil.parsers.isoparse` returns a timezone- aware or timezone-unaware `datetime` object depending on whether or not the datetime string included a timezone offset specification. Since we can't compare tz-aware objects to tz-unaware objects it's better to make sure our converter is consistent in the type it will return. For now, I've chosen to return tz-unaware datetime objects, since `discord.py` also returns tz-unaware datetime objects when accessing datetime-related attributes of objects. Since we're likely to compare "our" datetime objects to discord.py-provided datetime objects, I think that's the most parsimonious option for now. Note: It's probably a good idea to open a larger discussion about using timezone-aware datetime objects throughout the library to avoid a UTC-time being interpreted as localtime. This will require a broader discussion than this commit/PR allows, though.
| * | | | | | | | | | | Remove angle brackets from ISODateTime docstringGravatar Sebastiaan Zeeff2019-10-02-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes the angle brackets from the url in the docstring of `ISODateTime.convert`. The reason: it's ugly.
| * | | | | | | | | | | Apply docstring review suggestionGravatar Sebastiaan Zeeff2019-10-02-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Mark <[email protected]>
| * | | | | | | | | | | Remove surplus quotation mark in class docstringGravatar Sebastiaan Zeeff2019-10-01-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: S. Co1 <[email protected]>
| * | | | | | | | | | | Add converter for ISO-formatted datetime stringsGravatar Sebastiaan Zeeff2019-10-01-0/+88
| | |_|_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to https://github.com/python-discord/bot/issues/458 This commit adds a converter that automatically parses ISO-formatted datetime strings and returns a `datetime.datetime` object. It uses `dateutil.parser.isoparse` to do the heavy lifting, so it supports the same formats as this method. In addition, I have added tests that ensure that it accepts certain formats and added a description of these 'guaranteed' formats to the `ISODate.convert` docstring. This commit should make it easy to implement #485
| | * | | | | | | | | Adjust verbiage of totals for watch commandsGravatar MarkKoz2019-10-04-2/+2
| | | | | | | | | | |
| | * | | | | | | | | Show previous watch reason and total after invoking watch commandGravatar MarkKoz2019-10-04-2/+39
| |/ / / / / / / / / |/| | | | | | | | |
| | * | | | | | | | Merge branch 'add-role-info-command' of github.com:python-discord/bot into ↵Gravatar Joseph Banks2019-10-01-2347/+1646
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add-role-info-command
| | | * \ \ \ \ \ \ \ Merge branch 'master' into add-role-info-commandGravatar S. Co12019-10-01-2347/+1646
| | | |\ \ \ \ \ \ \ \ | | | | | |_|/ / / / / | | | | |/| | | | | |
| | * | / | | | | | | Make tests work with Union converterGravatar Joseph Banks2019-10-01-3/+4
| | |/ / / / / / / /
| | * | | | | | | | linter is the bane of my existenceGravatar Joseph Banks2019-10-01-1/+0
| | | | | | | | | |
| | * | | | | | | | Implement review comments and stop using a greedy converterGravatar Joseph Banks2019-10-01-4/+22
| | | | | | | | | |
| | * | | | | | | | Add unit tests for role info commandGravatar Joseph Banks2019-09-21-1/+48
| | | | | | | | | |
| | * | | | | | | | Add role info commandGravatar Joseph Banks2019-09-21-2/+33
| | | |_|_|/ / / / | | |/| | | | | |
| | | | * | | | | Fix error when symbol_id cannot be found in doc HTMLGravatar MarkKoz2019-10-04-0/+3
| |_|_|/ / / / / |/| | | | | | |
* | | | | | | | Merge pull request #481 from bendiller/fetch_posts_retriesGravatar S. Co12019-10-03-15/+24
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Add checks for valid response and retries to fetch_posts()
| * \ \ \ \ \ \ \ Merge branch 'master' into fetch_posts_retriesGravatar Mark2019-10-03-23/+106
| |\ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
| * | | | | | | | Improve readabilityGravatar Ben Diller2019-10-03-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Mark <[email protected]>
| * | | | | | | | Move asyncio.sleep() to avoid disturbing function signatures.Gravatar bendiller2019-10-03-16/+13
| | | | | | | | |
| * | | | | | | | Add sleep(3) between retries, with bot indicating typing during sleepGravatar bendiller2019-10-02-4/+9
| | | | | | | | |
| * | | | | | | | Add logging for invalid response (after all retries are exhausted)Gravatar bendiller2019-10-02-1/+3
| | | | | | | | |
| * | | | | | | | Add checks for valid response and retries to fetch_posts()Gravatar bendiller2019-10-01-9/+13
| |/ / / / / / /
| | | | * | | | Only allow members currently in the guild to be warnedGravatar MarkKoz2019-10-07-1/+1
| | | | | | | |