Fix bot command prefix recognition and handle ignore bot commands.
- Fixed bot command prefix recognition to include prefixes starting with an asterisk (= edited messages) - Added handling of ignoring bot commands in the '_last_n_messages' method.
This commit is contained in:
parent
2e6c07eb22
commit
72340095f9
2 changed files with 7 additions and 3 deletions
|
@ -33,7 +33,7 @@ async def message_callback(room: MatrixRoom | str, event: RoomMessageText | Mego
|
||||||
if event.sender == bot.matrix_client.user_id:
|
if event.sender == bot.matrix_client.user_id:
|
||||||
bot.logger.log("Message is from bot itself - ignoring")
|
bot.logger.log("Message is from bot itself - ignoring")
|
||||||
|
|
||||||
elif event.body.startswith("!gptbot"):
|
elif event.body.startswith("!gptbot") or event.body.startswith("* !gptbot"):
|
||||||
await bot.process_command(room, event)
|
await bot.process_command(room, event)
|
||||||
|
|
||||||
elif event.body.startswith("!"):
|
elif event.body.startswith("!"):
|
||||||
|
|
|
@ -195,7 +195,7 @@ class GPTBot:
|
||||||
|
|
||||||
return user_id
|
return user_id
|
||||||
|
|
||||||
async def _last_n_messages(self, room: str | MatrixRoom, n: Optional[int]):
|
async def _last_n_messages(self, room: str | MatrixRoom, n: Optional[int], ignore_bot_commands: bool = True):
|
||||||
messages = []
|
messages = []
|
||||||
n = n or self.max_messages
|
n = n or self.max_messages
|
||||||
room_id = room.room_id if isinstance(room, MatrixRoom) else room
|
room_id = room.room_id if isinstance(room, MatrixRoom) else room
|
||||||
|
@ -233,7 +233,7 @@ class GPTBot:
|
||||||
if event.body.startswith("!gptbot ignoreolder"):
|
if event.body.startswith("!gptbot ignoreolder"):
|
||||||
break
|
break
|
||||||
if (not event.body.startswith("!")) or (
|
if (not event.body.startswith("!")) or (
|
||||||
event.body.startswith("!gptbot")
|
event.body.startswith("!gptbot") and not ignore_bot_commands
|
||||||
):
|
):
|
||||||
messages.append(event)
|
messages.append(event)
|
||||||
|
|
||||||
|
@ -319,6 +319,10 @@ class GPTBot:
|
||||||
f"Received command {event.body} from {event.sender} in room {room.room_id}",
|
f"Received command {event.body} from {event.sender} in room {room.room_id}",
|
||||||
"debug",
|
"debug",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if event.body.startswith("* "):
|
||||||
|
event.body = event.body[2:]
|
||||||
|
|
||||||
command = event.body.split()[1] if event.body.split()[1:] else None
|
command = event.body.split()[1] if event.body.split()[1:] else None
|
||||||
|
|
||||||
await COMMANDS.get(command, COMMANDS[None])(room, event, self)
|
await COMMANDS.get(command, COMMANDS[None])(room, event, self)
|
||||||
|
|
Loading…
Reference in a new issue