diff options
author | 2025-06-15 00:27:23 +0100 | |
---|---|---|
committer | 2025-06-15 00:27:23 +0100 | |
commit | ec3f1b19a661aaa6ba61f927de5cfadb68662b58 (patch) | |
tree | ebbb28df3f879ff5372b3b105c4abff14e6528f7 | |
parent | Update Events to Events Team (diff) |
Split M-x sync into multiple messages
-rw-r--r-- | arthur/exts/directory/ldap.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/arthur/exts/directory/ldap.py b/arthur/exts/directory/ldap.py index 4b41baf..366a42e 100644 --- a/arthur/exts/directory/ldap.py +++ b/arthur/exts/directory/ldap.py @@ -17,6 +17,8 @@ from arthur.log import logger PASSWORD_RESET_LENGTH = 16 +MAX_MESSAGE_LENGTH = 2000 + NOTIFICATIONS_ENABLED = True BOOTSTRAP_CHANNEL_TOPIC = """ @@ -406,23 +408,30 @@ class LDAP(commands.Cog): LDAPSyncAction.CHANGE: "~", } + messages = [diff_message] + for user in diff_sorted: prefix = prefixes[user.action] - diff_message += f"{prefix} {self._format_user(user.discord_user, user.ldap_user)}" - diff_message += f" ({', '.join(user.groups)})\n" - diff_message += "```\n" + messages[-1] += f"{prefix} {self._format_user(user.discord_user, user.ldap_user)}" + messages[-1] += f" ({', '.join(user.groups)})\n" + + if len(messages[-1]) > MAX_MESSAGE_LENGTH - 100: + messages[-1] += "```" + messages.append("```diff\n") + + messages[-1] += "```" if len(missing_emp) > 0: - diff_message += ( + messages[-1] += ( ":warning: **Warning: Some LDAP users are missing an employee number. " "This may lead to duplicated users being created.**\n\n" ) + messages[-1] += "Users missing employee numbers:\n" + messages[-1] += "\n".join(f"- `{user.uid}`" for user in missing_emp) - diff_message += "Users missing employee numbers:\n" - diff_message += "\n".join(f"- `{user.uid}`" for user in missing_emp) - - await ctx.reply(diff_message) + for message in messages: + await ctx.send(message) async def setup(bot: KingArthur) -> None: |