mirror of https://github.com/zulip/zulip.git
slack_incoming: Use Slack text reformatters from data import.
This commit updates `slack_incoming` to use the Slack text reformatting functions from `slack_message_conversion.py`, which were previously incompatible because of the extra formatting from `render_attachment` and `render_block`.
This commit is contained in:
parent
8764e15599
commit
39085c1a25
|
@ -7,7 +7,12 @@ from django.http import HttpRequest, HttpResponse, JsonResponse
|
|||
from django.utils.translation import gettext as _
|
||||
from typing_extensions import ParamSpec
|
||||
|
||||
from zerver.data_import.slack_message_conversion import render_attachment, render_block
|
||||
from zerver.data_import.slack_message_conversion import (
|
||||
convert_slack_formatting,
|
||||
render_attachment,
|
||||
render_block,
|
||||
replace_links,
|
||||
)
|
||||
from zerver.decorator import webhook_view
|
||||
from zerver.lib.exceptions import JsonableError
|
||||
from zerver.lib.request import RequestVariableMissingError
|
||||
|
@ -90,19 +95,6 @@ def api_slack_incoming_webhook(
|
|||
body = body.strip()
|
||||
|
||||
if body != "":
|
||||
body = replace_formatting(replace_links(body).strip())
|
||||
body = convert_slack_formatting(replace_links(body).strip())
|
||||
check_send_webhook_message(request, user_profile, user_specified_topic, body)
|
||||
return json_success(request, data={"ok": True})
|
||||
|
||||
|
||||
def replace_links(text: str) -> str:
|
||||
return re.sub(r"<(\w+?:\/\/.*?)\|(.*?)>", r"[\2](\1)", text)
|
||||
|
||||
|
||||
def replace_formatting(text: str) -> str:
|
||||
# Slack uses *text* for bold, whereas Zulip interprets that as italics
|
||||
text = re.sub(r"([^\w]|^)\*(?!\s+)([^\*\n]+)(?<!\s)\*((?=[^\w])|$)", r"\1**\2**\3", text)
|
||||
|
||||
# Slack uses _text_ for emphasis, whereas Zulip interprets that as nothing
|
||||
text = re.sub(r"([^\w]|^)[_](?!\s+)([^\_\n]+)(?<!\s)[_]((?=[^\w])|$)", r"\1*\2*\3", text)
|
||||
return text
|
||||
|
|
Loading…
Reference in New Issue