detect help request with regex

This commit is contained in:
Infinidoge 2025-09-11 14:18:37 -04:00
parent 0966dc2ca3
commit d8135eb55d
Signed by: Infinidoge
SSH key fingerprint: SHA256:EMoPe5e2dO0gEvtBb2xkZTz5dkyL0rBmuiGTKG5s96E

View file

@ -9,6 +9,7 @@ import traceback
from contextlib import redirect_stdout from contextlib import redirect_stdout
import disnake import disnake
import re2 as re
from disnake import Embed, Guild, Intents, Message, Thread from disnake import Embed, Guild, Intents, Message, Thread
from disnake.ext import commands from disnake.ext import commands
from disnake.ext.commands import Bot, Paginator from disnake.ext.commands import Bot, Paginator
@ -17,7 +18,7 @@ from dotenv import find_dotenv, load_dotenv
from .db import run_db_migrations, setup_db from .db import run_db_migrations, setup_db
from .notifications import Notifications from .notifications import Notifications
from .settings import Settings from .settings import Settings
from .utils import cleanup_code from .utils import cleanup_code, contains
# Logger setup # Logger setup
logger_disnake = logging.getLogger("disnake") logger_disnake = logging.getLogger("disnake")
@ -228,9 +229,11 @@ async def on_message(message: Message):
if now < timeout: if now < timeout:
return return
c = message.content.lower().split(" ") mentions_nomen = contains(message, "nomen", False)
mentions_help = contains(message, "help", False)
asks_for_help = contains(message, r"how\b(\w+\b)+use\b(\w+\b)*nomen", True)
if "help" in c and "nomen" in c: if (mentions_nomen and mentions_help) or asks_for_help:
help_timeouts[ctx.channel.id] = now + datetime.timedelta(minutes=5) help_timeouts[ctx.channel.id] = now + datetime.timedelta(minutes=5)
prefix = (await bot.get_guild_prefix(ctx.guild) if ctx.guild else DEFAULT_PREFIX) or "@nomen " prefix = (await bot.get_guild_prefix(ctx.guild) if ctx.guild else DEFAULT_PREFIX) or "@nomen "
await message.reply(f"""\ await message.reply(f"""\