diff options
| -rw-r--r-- | bot/__main__.py | 2 | ||||
| -rw-r--r-- | bot/cogs/antispam.py | 2 | ||||
| -rw-r--r-- | bot/cogs/clean.py | 2 | ||||
| -rw-r--r-- | bot/cogs/defcon.py | 2 | ||||
| -rw-r--r-- | bot/cogs/filtering.py | 2 | ||||
| -rw-r--r-- | bot/cogs/moderation/__init__.py | 21 | ||||
| -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__.py | 15 | ||||
| -rw-r--r-- | bot/cogs/token_remover.py | 2 | ||||
| -rw-r--r-- | bot/cogs/verification.py | 2 | ||||
| -rw-r--r-- | bot/cogs/watchchannels/bigbrother.py | 2 | ||||
| -rw-r--r-- | bot/cogs/watchchannels/watchchannel.py | 2 | 
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  |