mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 04:53:36 +00:00
slack_data_import: Refactor get_user_mentions.
This commit extracts a portion of logic from `get_user_mentions` into a new helper function for reusability. This is a prep commit for #30166.
This commit is contained in:
@@ -115,22 +115,35 @@ def get_user_full_name(user: ZerverFieldsT) -> str:
|
||||
return user["name"]
|
||||
|
||||
|
||||
def get_zulip_mention_for_slack_user(
|
||||
slack_user_id: str | None,
|
||||
slack_user_shortname: str | None,
|
||||
users: list[ZerverFieldsT],
|
||||
silent: bool = False,
|
||||
) -> str | None:
|
||||
if slack_user_id:
|
||||
for user in users:
|
||||
if user["id"] == slack_user_id and (
|
||||
slack_user_shortname is None or user["name"] == slack_user_shortname
|
||||
):
|
||||
return ("@_**" if silent else "@**") + get_user_full_name(user) + "**"
|
||||
return None
|
||||
|
||||
|
||||
def get_user_mentions(
|
||||
token: str, users: list[ZerverFieldsT], slack_user_id_to_zulip_user_id: SlackToZulipUserIDT
|
||||
token: str,
|
||||
users: list[ZerverFieldsT],
|
||||
slack_user_id_to_zulip_user_id: SlackToZulipUserIDT,
|
||||
) -> tuple[str, int | None]:
|
||||
slack_usermention_match = re.search(SLACK_USERMENTION_REGEX, token, re.VERBOSE)
|
||||
assert slack_usermention_match is not None
|
||||
short_name = slack_usermention_match.group(4)
|
||||
slack_id = slack_usermention_match.group(2)
|
||||
for user in users:
|
||||
if (user["id"] == slack_id and user["name"] == short_name and short_name) or (
|
||||
user["id"] == slack_id and short_name is None
|
||||
):
|
||||
full_name = get_user_full_name(user)
|
||||
user_id = slack_user_id_to_zulip_user_id[slack_id]
|
||||
mention = "@**" + full_name + "**"
|
||||
token = re.sub(SLACK_USERMENTION_REGEX, mention, token, flags=re.VERBOSE)
|
||||
return token, user_id
|
||||
zulip_mention = get_zulip_mention_for_slack_user(slack_id, short_name, users)
|
||||
if zulip_mention is not None:
|
||||
token = re.sub(SLACK_USERMENTION_REGEX, zulip_mention, token, flags=re.VERBOSE)
|
||||
user_id = slack_user_id_to_zulip_user_id[slack_id]
|
||||
return token, user_id
|
||||
return token, None
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user