Make /ask global

This commit is contained in:
2024-12-25 20:18:03 +01:00
parent ef4984f6a0
commit e27d043e2c

14
main.py
View File

@ -35,7 +35,7 @@ bot.subscribe(hikari.StartingEvent, bot_client.start)
openai_client = OpenAI(api_key=openai_api_key) openai_client = OpenAI(api_key=openai_api_key)
@bot_client.register(guilds=[hikari.Snowflake(98905546077241344), hikari.Snowflake(341001473661992962)]) @bot_client.register()
class Ask( class Ask(
lightbulb.SlashCommand, lightbulb.SlashCommand,
name="ask", name="ask",
@ -48,14 +48,20 @@ class Ask(
@lightbulb.invoke @lightbulb.invoke
async def invoke(self, ctx: lightbulb.Context) -> None: async def invoke(self, ctx: lightbulb.Context) -> None:
"""Handle the /ask command.""" """Handle the /ask command."""
user_message: str = self.text # Only allow certain users to interact with the bot
allowed_users: list[str] = get_allowed_users()
if ctx.user.username not in allowed_users:
logger.info("Ignoring message from: %s", ctx.user.username)
await ctx.respond("You are not allowed to use this command.", ephemeral=True)
return
if not user_message: if not self.text:
logger.error("No question or message provided.")
await ctx.respond("You need to provide a question or message.") await ctx.respond("You need to provide a question or message.")
return return
try: try:
response: str | None = chat(user_message, openai_client) response: str | None = chat(self.text, openai_client)
except openai.OpenAIError as e: except openai.OpenAIError as e:
logger.exception("An error occurred while chatting with the AI model.") logger.exception("An error occurred while chatting with the AI model.")
await ctx.respond(f"An error occurred: {e}") await ctx.respond(f"An error occurred: {e}")