aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/__main__.py2
-rw-r--r--bot/cogs/antispam.py2
-rw-r--r--bot/cogs/clean.py2
-rw-r--r--bot/cogs/defcon.py2
-rw-r--r--bot/cogs/filtering.py2
-rw-r--r--bot/cogs/moderation/__init__.py21
-rw-r--r--bot/cogs/moderation/infractions.py (renamed from bot/cogs/moderation.py)12
-rw-r--r--bot/cogs/moderation/management.py (renamed from bot/cogs/infractions.py)19
-rw-r--r--bot/cogs/moderation/modlog.py (renamed from bot/cogs/modlog.py)0
-rw-r--r--bot/cogs/moderation/utils.py (renamed from bot/utils/moderation.py)0
-rw-r--r--bot/cogs/superstarify/__init__.py15
-rw-r--r--bot/cogs/token_remover.py2
-rw-r--r--bot/cogs/verification.py2
-rw-r--r--bot/cogs/watchchannels/bigbrother.py2
-rw-r--r--bot/cogs/watchchannels/watchchannel.py2
15 files changed, 51 insertions, 34 deletions
diff --git a/bot/__main__.py b/bot/__main__.py
index 019550a89..7d8cf6d6d 100644
--- a/bot/__main__.py
+++ b/bot/__main__.py
@@ -36,7 +36,6 @@ log.addHandler(APILoggingHandler(bot.api_client))
bot.load_extension("bot.cogs.error_handler")
bot.load_extension("bot.cogs.filtering")
bot.load_extension("bot.cogs.logging")
-bot.load_extension("bot.cogs.modlog")
bot.load_extension("bot.cogs.security")
# Commands, etc
@@ -57,7 +56,6 @@ bot.load_extension("bot.cogs.defcon")
bot.load_extension("bot.cogs.eval")
bot.load_extension("bot.cogs.free")
bot.load_extension("bot.cogs.information")
-bot.load_extension("bot.cogs.infractions")
bot.load_extension("bot.cogs.jams")
bot.load_extension("bot.cogs.moderation")
bot.load_extension("bot.cogs.off_topic_names")
diff --git a/bot/cogs/antispam.py b/bot/cogs/antispam.py
index 8dfa0ad05..cd1940aaa 100644
--- a/bot/cogs/antispam.py
+++ b/bot/cogs/antispam.py
@@ -10,7 +10,7 @@ from discord import Colour, Member, Message, NotFound, Object, TextChannel
from discord.ext.commands import Bot, Cog
from bot import rules
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import (
AntiSpam as AntiSpamConfig, Channels,
Colours, DEBUG_MODE, Event, Filter,
diff --git a/bot/cogs/clean.py b/bot/cogs/clean.py
index 1c0c9a7a8..dca411d01 100644
--- a/bot/cogs/clean.py
+++ b/bot/cogs/clean.py
@@ -6,7 +6,7 @@ from typing import Optional
from discord import Colour, Embed, Message, User
from discord.ext.commands import Bot, Cog, Context, group
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import (
Channels, CleanMessages, Colours, Event,
Icons, MODERATION_ROLES, NEGATIVE_REPLIES
diff --git a/bot/cogs/defcon.py b/bot/cogs/defcon.py
index 048d8a683..ae0332688 100644
--- a/bot/cogs/defcon.py
+++ b/bot/cogs/defcon.py
@@ -4,7 +4,7 @@ from datetime import datetime, timedelta
from discord import Colour, Embed, Member
from discord.ext.commands import Bot, Cog, Context, group
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import Channels, Colours, Emojis, Event, Icons, Roles
from bot.decorators import with_role
diff --git a/bot/cogs/filtering.py b/bot/cogs/filtering.py
index bd8c6ed67..265ae5160 100644
--- a/bot/cogs/filtering.py
+++ b/bot/cogs/filtering.py
@@ -7,7 +7,7 @@ from dateutil.relativedelta import relativedelta
from discord import Colour, DMChannel, Member, Message, TextChannel
from discord.ext.commands import Bot, Cog
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import (
Channels, Colours, DEBUG_MODE,
Filter, Icons, URLs
diff --git a/bot/cogs/moderation/__init__.py b/bot/cogs/moderation/__init__.py
new file mode 100644
index 000000000..bf0a14c29
--- /dev/null
+++ b/bot/cogs/moderation/__init__.py
@@ -0,0 +1,21 @@
+import logging
+
+from discord.ext.commands import Bot
+
+from .infractions import Infractions
+from .management import ModManagement
+from .modlog import ModLog
+
+log = logging.getLogger(__name__)
+
+
+def setup(bot: Bot) -> None:
+ """Load the moderation extension with the Infractions, ModManagement, and ModLog cogs."""
+ bot.add_cog(Infractions(bot))
+ log.info("Cog loaded: Infractions")
+
+ bot.add_cog(ModLog(bot))
+ log.info("Cog loaded: ModLog")
+
+ bot.add_cog(ModManagement(bot))
+ log.info("Cog loaded: ModManagement")
diff --git a/bot/cogs/moderation.py b/bot/cogs/moderation/infractions.py
index 15eee397d..d36f147f7 100644
--- a/bot/cogs/moderation.py
+++ b/bot/cogs/moderation/infractions.py
@@ -9,14 +9,14 @@ from discord import (
from discord.ext.commands import BadUnionArgument, Bot, Cog, Context, command
from bot import constants
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
+from bot.cogs.moderation.utils import (
+ Infraction, MemberObject, already_has_active_infraction, post_infraction, proxy_user
+)
from bot.constants import Colours, Event, Icons
from bot.converters import Duration
from bot.decorators import respect_role_hierarchy
from bot.utils.checks import with_role_check
-from bot.utils.moderation import (
- Infraction, MemberObject, already_has_active_infraction, post_infraction, proxy_user
-)
from bot.utils.scheduling import Scheduler
from bot.utils.time import format_infraction, wait_until
@@ -36,7 +36,7 @@ APPEALABLE_INFRACTIONS = ("ban", "mute")
MemberConverter = Union[Member, User, proxy_user]
-class Moderation(Scheduler, Cog):
+class Infractions(Scheduler, Cog):
"""Server moderation tools."""
def __init__(self, bot: Bot):
@@ -558,5 +558,5 @@ class Moderation(Scheduler, Cog):
def setup(bot: Bot) -> None:
"""Moderation cog load."""
- bot.add_cog(Moderation(bot))
+ bot.add_cog(Infractions(bot))
log.info("Cog loaded: Moderation")
diff --git a/bot/cogs/infractions.py b/bot/cogs/moderation/management.py
index 709a42b6c..6bacab8ca 100644
--- a/bot/cogs/infractions.py
+++ b/bot/cogs/moderation/management.py
@@ -8,13 +8,12 @@ from discord.ext import commands
from discord.ext.commands import Context
from bot import constants
-from bot.cogs.moderation import Moderation
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import Infractions, ModLog
+from bot.cogs.moderation.utils import Infraction, proxy_user
from bot.converters import Duration, InfractionSearchQuery
from bot.pagination import LinePaginator
from bot.utils import time
from bot.utils.checks import with_role_check
-from bot.utils.moderation import Infraction, proxy_user
log = logging.getLogger(__name__)
@@ -30,7 +29,7 @@ def permanent_duration(expires_at: str) -> str:
return expires_at
-class Infractions(commands.Cog):
+class ModManagement(commands.Cog):
"""Management of infractions."""
def __init__(self, bot: commands.Bot):
@@ -42,9 +41,9 @@ class Infractions(commands.Cog):
return self.bot.get_cog("ModLog")
@property
- def mod_cog(self) -> Moderation:
- """Get currently loaded Moderation cog instance."""
- return self.bot.get_cog("Moderation")
+ def infractions_cog(self) -> Infractions:
+ """Get currently loaded Infractions cog instance."""
+ return self.bot.get_cog("Infractions")
# region: Edit infraction commands
@@ -109,9 +108,9 @@ class Infractions(commands.Cog):
# Re-schedule infraction if the expiration has been updated
if 'expires_at' in request_data:
- self.mod_cog.cancel_task(new_infraction['id'])
+ self.infractions_cog.cancel_task(new_infraction['id'])
loop = asyncio.get_event_loop()
- self.mod_cog.schedule_task(loop, new_infraction['id'], new_infraction)
+ self.infractions_cog.schedule_task(loop, new_infraction['id'], new_infraction)
log_text += f"""
Previous expiry: {old_infraction['expires_at'] or "Permanent"}
@@ -260,5 +259,5 @@ class Infractions(commands.Cog):
def setup(bot: commands.Bot) -> None:
"""Load the Infractions cog."""
- bot.add_cog(Infractions(bot))
+ bot.add_cog(ModManagement(bot))
log.info("Cog loaded: Infractions")
diff --git a/bot/cogs/modlog.py b/bot/cogs/moderation/modlog.py
index 50cb55e33..50cb55e33 100644
--- a/bot/cogs/modlog.py
+++ b/bot/cogs/moderation/modlog.py
diff --git a/bot/utils/moderation.py b/bot/cogs/moderation/utils.py
index 48ebe422c..48ebe422c 100644
--- a/bot/utils/moderation.py
+++ b/bot/cogs/moderation/utils.py
diff --git a/bot/cogs/superstarify/__init__.py b/bot/cogs/superstarify/__init__.py
index 87021eded..576de2d31 100644
--- a/bot/cogs/superstarify/__init__.py
+++ b/bot/cogs/superstarify/__init__.py
@@ -5,13 +5,12 @@ from discord import Colour, Embed, Member
from discord.errors import Forbidden
from discord.ext.commands import Bot, Cog, Context, command
-from bot.cogs.moderation import Moderation
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import Infractions, ModLog
+from bot.cogs.moderation.utils import post_infraction
from bot.cogs.superstarify.stars import get_nick
from bot.constants import Icons, MODERATION_ROLES, POSITIVE_REPLIES
from bot.converters import Duration
from bot.decorators import with_role
-from bot.utils.moderation import post_infraction
from bot.utils.time import format_infraction
log = logging.getLogger(__name__)
@@ -25,9 +24,9 @@ class Superstarify(Cog):
self.bot = bot
@property
- def moderation(self) -> Moderation:
- """Get currently loaded Moderation cog instance."""
- return self.bot.get_cog("Moderation")
+ def infractions_cog(self) -> Infractions:
+ """Get currently loaded Infractions cog instance."""
+ return self.bot.get_cog("Infractions")
@property
def modlog(self) -> ModLog:
@@ -206,7 +205,7 @@ class Superstarify(Cog):
thumbnail=member.avatar_url_as(static_format="png")
)
- await self.moderation.notify_infraction(
+ await self.infractions_cog.notify_infraction(
user=member,
infr_type="Superstarify",
expires_at=expiration,
@@ -249,7 +248,7 @@ class Superstarify(Cog):
embed.description = "User has been released from superstar-prison."
embed.title = random.choice(POSITIVE_REPLIES)
- await self.moderation.notify_pardon(
+ await self.infractions_cog.notify_pardon(
user=member,
title="You are no longer superstarified.",
content="You may now change your nickname on the server."
diff --git a/bot/cogs/token_remover.py b/bot/cogs/token_remover.py
index 7dd0afbbd..4a655d049 100644
--- a/bot/cogs/token_remover.py
+++ b/bot/cogs/token_remover.py
@@ -9,7 +9,7 @@ from discord import Colour, Message
from discord.ext.commands import Bot, Cog
from discord.utils import snowflake_time
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import Channels, Colours, Event, Icons
log = logging.getLogger(__name__)
diff --git a/bot/cogs/verification.py b/bot/cogs/verification.py
index f0a099f27..acd7a7865 100644
--- a/bot/cogs/verification.py
+++ b/bot/cogs/verification.py
@@ -3,7 +3,7 @@ import logging
from discord import Message, NotFound, Object
from discord.ext.commands import Bot, Cog, Context, command
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import Channels, Event, Roles
from bot.decorators import InChannelCheckFailure, in_channel, without_role
diff --git a/bot/cogs/watchchannels/bigbrother.py b/bot/cogs/watchchannels/bigbrother.py
index e191c2dbc..c332d80b9 100644
--- a/bot/cogs/watchchannels/bigbrother.py
+++ b/bot/cogs/watchchannels/bigbrother.py
@@ -5,9 +5,9 @@ from typing import Union
from discord import User
from discord.ext.commands import Bot, Cog, Context, group
+from bot.cogs.moderation.utils import post_infraction
from bot.constants import Channels, Roles, Webhooks
from bot.decorators import with_role
-from bot.utils.moderation import post_infraction
from .watchchannel import WatchChannel, proxy_user
log = logging.getLogger(__name__)
diff --git a/bot/cogs/watchchannels/watchchannel.py b/bot/cogs/watchchannels/watchchannel.py
index ce8014d69..e67f4674b 100644
--- a/bot/cogs/watchchannels/watchchannel.py
+++ b/bot/cogs/watchchannels/watchchannel.py
@@ -13,7 +13,7 @@ from discord import Color, Embed, HTTPException, Message, Object, errors
from discord.ext.commands import BadArgument, Bot, Cog, Context
from bot.api import ResponseCodeError
-from bot.cogs.modlog import ModLog
+from bot.cogs.moderation import ModLog
from bot.constants import BigBrother as BigBrotherConfig, Guild as GuildConfig, Icons
from bot.pagination import LinePaginator
from bot.utils import CogABCMeta, messages