mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-07 11:48:55 -05:00
Add filterhit case type to Filter (#4739)
* Add `filterhit` case type to Filter * Wrong `__init__.py` :|
This commit is contained in:
parent
69c8781cec
commit
ad48ef6efd
@ -2,5 +2,7 @@ from .filter import Filter
|
|||||||
from redbot.core.bot import Red
|
from redbot.core.bot import Red
|
||||||
|
|
||||||
|
|
||||||
def setup(bot: Red):
|
async def setup(bot: Red) -> None:
|
||||||
bot.add_cog(Filter(bot))
|
cog = Filter(bot)
|
||||||
|
await cog.initialize()
|
||||||
|
bot.add_cog(cog)
|
||||||
|
|||||||
@ -37,7 +37,6 @@ class Filter(commands.Cog):
|
|||||||
self.config.register_guild(**default_guild_settings)
|
self.config.register_guild(**default_guild_settings)
|
||||||
self.config.register_member(**default_member_settings)
|
self.config.register_member(**default_member_settings)
|
||||||
self.config.register_channel(**default_channel_settings)
|
self.config.register_channel(**default_channel_settings)
|
||||||
self.register_task = self.bot.loop.create_task(self.register_filterban())
|
|
||||||
self.pattern_cache = {}
|
self.pattern_cache = {}
|
||||||
|
|
||||||
async def red_delete_data_for_user(
|
async def red_delete_data_for_user(
|
||||||
@ -55,17 +54,27 @@ class Filter(commands.Cog):
|
|||||||
if user_id in guild_data:
|
if user_id in guild_data:
|
||||||
await self.config.member_from_ids(guild_id, user_id).clear()
|
await self.config.member_from_ids(guild_id, user_id).clear()
|
||||||
|
|
||||||
def cog_unload(self):
|
async def initialize(self) -> None:
|
||||||
self.register_task.cancel()
|
await self.register_casetypes()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
async def register_filterban():
|
async def register_casetypes() -> None:
|
||||||
try:
|
await modlog.register_casetypes(
|
||||||
await modlog.register_casetype(
|
[
|
||||||
"filterban", False, ":filing_cabinet: :hammer:", "Filter ban"
|
{
|
||||||
)
|
"name": "filterban",
|
||||||
except RuntimeError:
|
"default_setting": False,
|
||||||
pass
|
"image": "\N{FILE CABINET}\N{VARIATION SELECTOR-16} \N{HAMMER}",
|
||||||
|
"case_str": "Filter ban",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "filterhit",
|
||||||
|
"default_setting": False,
|
||||||
|
"image": "\N{FILE CABINET}\N{VARIATION SELECTOR-16}",
|
||||||
|
"case_str": "Filter hit",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
@commands.group()
|
@commands.group()
|
||||||
@commands.guild_only()
|
@commands.guild_only()
|
||||||
@ -391,6 +400,20 @@ class Filter(commands.Cog):
|
|||||||
hits = await self.filter_hits(message.content, message.channel)
|
hits = await self.filter_hits(message.content, message.channel)
|
||||||
|
|
||||||
if hits:
|
if hits:
|
||||||
|
await modlog.create_case(
|
||||||
|
bot=self.bot,
|
||||||
|
guild=guild,
|
||||||
|
created_at=message.created_at.replace(tzinfo=timezone.utc),
|
||||||
|
action_type="filterhit",
|
||||||
|
user=author,
|
||||||
|
moderator=guild.me,
|
||||||
|
reason=(
|
||||||
|
_("Filtered words used: {words}").format(words=humanize_list(list(hits)))
|
||||||
|
if len(hits) > 1
|
||||||
|
else _("Filtered word used: {word}").format(word=list(hits)[0])
|
||||||
|
),
|
||||||
|
channel=message.channel,
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
await message.delete()
|
await message.delete()
|
||||||
except discord.HTTPException:
|
except discord.HTTPException:
|
||||||
@ -471,7 +494,6 @@ class Filter(commands.Cog):
|
|||||||
await set_contextual_locales_from_guild(self.bot, guild)
|
await set_contextual_locales_from_guild(self.bot, guild)
|
||||||
|
|
||||||
if await self.filter_hits(member.display_name, member.guild):
|
if await self.filter_hits(member.display_name, member.guild):
|
||||||
|
|
||||||
name_to_use = guild_data["filter_default_name"]
|
name_to_use = guild_data["filter_default_name"]
|
||||||
reason = _("Filtered nickname") if member.nick else _("Filtered name")
|
reason = _("Filtered nickname") if member.nick else _("Filtered name")
|
||||||
try:
|
try:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user