| Commit message (Collapse) | Author | Lines |
|
|
|
|
|
reapply_infraction() is a generic function which reapplies a given
infraction if it is still active or deactivates it if less than 60
seconds remain. Most of the code from Infractions.on_member_joined now
lives in this new function.
This simplifies the "fancier" DM and mod log that were previously sent
for superstar in on_member_join.
|
|
* Edit the nickname and schedule the infraction before sending messages
* Reformat mod log description to be consistent with other infractions
* Use INFRACTION_ICONS constant
|
|
|
|
|
|
|
|
* Create an abstract method for performing type-specific infraction
deactivation
* Move infraction-specific pardon code to separate functions
|
|
The class handles application, pardoning, and expiration of infractions.
This will allow other cogs, such as superstarify, to later subclass it
to receive the same functionality that the infractions cog had.
|
|
|
|
|
|
|
|
|
|
The old method filtered only in #dev-test but this channel
no longer exists
|
|
Avoid aving `Your reminder will arrive in 59 minutes and 59 seconds!`
instead of `Your reminder will arrive in 1 hour!`
|
|
|
|
- Update test cases for in_channel_check
|
|
|
|
|
|
It is now truly backward compatible and use a more DRY method
|
|
|
|
- Change doc string for cog_check method
|
|
|
|
- Now it will only show the amount of days.
- Quality of Life: Also show `day` instead of `days` when it's just 1 day.
|
|
- Update docstrings for `build_defcon_msg()` and `send_defcon_log()` - It is now taking in an `Action` directly instead of a string.
|
|
- Remove the unneccessary `get_info()` method of Enum `Action`.
- Pass Enum `Action` directly to `build_defcon_msg()` and `send_defcon_log()` - Right now, only `_defcon_action()` is using them.
|
|
- Renamed `DefconInfoLog` to `Action`
- Added `ActionInfo` namedtuple.
- Use `Action` consistently for `_defcon_action()` and `send_defcon_log()`
|
|
- More informative docstrings for `Reddit.channel` and `get_top_posts`
- Add the `amount` parameter, defaulting to 5.
- Pin a max of 12 weeks worth of top posts.
|
|
|
|
|
|
|
|
|
|
- Further unify defcon actions in `_defcon_action` - Thanks to Mark's suggestions.
- Changed from a Dict to an Enum for defcon log info.
|
|
|
|
|
|
#### Closes #539
This pull request fixes the issue for wrong status in the embed, as well as unifying certains if else to prevent similar future errors.
Most notable code is here:
```python
log_msg = f"**Staffer:** {actor} (`{actor.id}`)\n"
if change.lower() == "enabled":
icon = Icons.defcon_enabled
color = Colours.soft_green
status_msg = "DEFCON enabled"
log_msg += f"**Days:** {self.days.days}\n\n"
elif change.lower() == "disabled":
icon = Icons.defcon_disabled
color = Colours.soft_red
status_msg = "DEFCON enabled"
elif change.lower() == "updated":
icon = Icons.defcon_updated
color = Colour.blurple()
status_msg = "DEFCON updated"
log_msg += f"**Days:** {self.days.days}\n\n"
```
To remedy this issue, the class will now have a private class variable
```py
_defcon_log_info: Dict[str, Tuple] = {
'enabled': (Icons.defcon_enabled, Colours.soft_green, "**Days:** {days}\n\n"),
'disabled': (Icons.defcon_disabled, Colours.soft_red, ""),
'updated': (Icons.defcon_updated, Colour.blurple(), "**Days:** {days}\n\n"),
}
```
Another big change is the introduction of `_defcon_action` to unify the process all defcon actions has to go through:
- Try to do the action.
- Log error if there is any.
- Send log message.
|
|
|
|
Allow rule alias to take rule numbers, passes them to the `site rules`
command. Rules are now 1-indexed to conform with the representation on
the website.
|
|
|
|
|
|
|
|
|
|
This commit replaces the standard MagicMocks by our specialized mocks
for discord.py objects. It also adds the missing `channel` attribute
to the `tests.helpers.MockMessage` mock and moves the file to the
correct folder.
|
|
|
|
|
|
This commit introduces some new Mock-types to the already existing
Mock-types for discord.py objects. The total list is now:
- MockGuild
- MockRole
- MockMember
- MockBot
- MockContext
- MockTextChannel
- MockMessage
In addition, I've added all coroutines in the documentation for these
discord.py objects as `AsyncMock` attributes to ease testing. Tests
ensure that the attributes set for the Mocks exist for the actual
discord.py objects as well.
|
|
|