Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bot fails to respond with copied ping if username is capitalized #521

Open
joshuaboniface opened this issue Jun 13, 2024 · 2 comments
Open

Comments

@joshuaboniface
Copy link

Describe the bug
The bot does not respond to pings that were copied if the bots name ends up capitalized. For instance, if you have the bot @bot, but it has a "nice" name of @Bot, copying a message that contains the nice @Bot fails to trigger a requires_mention action.

How To Reproduce

  1. Create a bot with a lowercase name (e.g. @bot).
  2. Give the bot a name case nice name (e.g. Bot).
  3. Create a requires_mention plugin/task called mytask.
  4. Send a ping to the bot manually (@bot mytask)
  5. Copy the resulting text which should be @Bot mytask).
  6. Send the resulting text.
  7. Task fails to trigger.

Expected behavior
The bot should respond to a ping with either name format, @bot or @Bot, as Mattermost treats these as equivalent.

Operating Environment (please complete the following information):

  • mmpy_bot Version: 2.1.4
  • mattermostdriver/mattermostautodriver Version: 1.2.2
  • Mattermost Server Version: 7.8.4
  • Python Version: 3.8
  • OS: Ubuntu Linux 20.04

Additional context
It looks like the problem is with https://github.com/attzonko/mmpy_bot/blob/main/mmpy_bot/event_handler.py#L31. This doesn't ignore case, so when the message with a capitalized ping comes in, it doesn't match and get stripped out. I was looking for a later point to try to fix this but don't see the obvious path for what triggers needs_mention to be True, so this seems like the simplest solution.

@joshuaboniface
Copy link
Author

Did a bit more digging, and the Message mentions uses the actual Mattermost ID, not the human-readable name, so the failure to match must be happening earlier than the check in https://github.com/attzonko/mmpy_bot/blob/main/mmpy_bot/function.py#L136. So I'm pretty sure the lowercase check above is the only real way to fix this.

@unode
Copy link
Collaborator

unode commented Jun 24, 2024

This is a known limitation and one that I'm not sure we should address.
The current behavior targets usernames, which are unique. Displayed names aren't which could cause confusion if you happen to have multiple bots with similar/identical names.

I would consider this feature only if made optional.

Either way, Mattermost will always tab-complete the username if typing @.... This is the intended way of use.

Note that uppercase/lowercase is just one of the possible cases. If the bot has a completely different name from its username, lowercase/uppercase wouldn't make it different.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants