mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
Pass in sent_by_bot flag to bugdown parser.
We will use this flag to suppress certain url previews for bots.
This commit is contained in:
@@ -1293,8 +1293,8 @@ def log_bugdown_error(msg):
|
||||
could cause an infinite exception loop."""
|
||||
logging.getLogger('').error(msg)
|
||||
|
||||
def do_convert(content, message=None, message_realm=None, possible_words=None):
|
||||
# type: (Text, Optional[Message], Optional[Realm], Optional[Set[Text]]) -> Optional[Text]
|
||||
def do_convert(content, message=None, message_realm=None, possible_words=None, sent_by_bot=False):
|
||||
# type: (Text, Optional[Message], Optional[Realm], Optional[Set[Text]], Optional[bool]) -> Optional[Text]
|
||||
"""Convert Markdown to HTML, with Zulip-specific settings and hacks."""
|
||||
from zerver.models import get_active_user_dicts_in_realm, get_active_streams, UserProfile
|
||||
|
||||
@@ -1344,6 +1344,7 @@ def do_convert(content, message=None, message_realm=None, possible_words=None):
|
||||
'full_names': dict((user['full_name'].lower(), user) for user in realm_users),
|
||||
'short_names': dict((user['short_name'].lower(), user) for user in realm_users),
|
||||
'emoji': message_realm.get_emoji(),
|
||||
'sent_by_bot': sent_by_bot,
|
||||
'stream_names': dict((stream['name'], stream) for stream in realm_streams)}
|
||||
|
||||
try:
|
||||
@@ -1398,9 +1399,9 @@ def bugdown_stats_finish():
|
||||
bugdown_total_requests += 1
|
||||
bugdown_total_time += (time.time() - bugdown_time_start)
|
||||
|
||||
def convert(content, message=None, message_realm=None, possible_words=None):
|
||||
# type: (Text, Optional[Message], Optional[Realm], Optional[Set[Text]]) -> Optional[Text]
|
||||
def convert(content, message=None, message_realm=None, possible_words=None, sent_by_bot=False):
|
||||
# type: (Text, Optional[Message], Optional[Realm], Optional[Set[Text]], Optional[bool]) -> Optional[Text]
|
||||
bugdown_stats_start()
|
||||
ret = do_convert(content, message, message_realm, possible_words)
|
||||
ret = do_convert(content, message, message_realm, possible_words, sent_by_bot)
|
||||
bugdown_stats_finish()
|
||||
return ret
|
||||
|
||||
@@ -19,6 +19,7 @@ from zerver.lib.timestamp import datetime_to_timestamp
|
||||
|
||||
from zerver.models import (
|
||||
get_display_recipient_by_id,
|
||||
get_user_profile_by_id,
|
||||
Message,
|
||||
Realm,
|
||||
Recipient,
|
||||
@@ -329,9 +330,17 @@ def render_markdown(message, content, realm=None, realm_alert_words=None, messag
|
||||
if user_id in message_user_ids:
|
||||
possible_words.update(set(words))
|
||||
|
||||
if message is None:
|
||||
# If we don't have a message, then we are in the compose preview
|
||||
# codepath, so we know we are dealing with a human.
|
||||
sent_by_bot = False
|
||||
else:
|
||||
sent_by_bot = get_user_profile_by_id(message.sender_id).is_bot
|
||||
|
||||
# DO MAIN WORK HERE -- call bugdown to convert
|
||||
rendered_content = bugdown.convert(content, message=message, message_realm=realm,
|
||||
possible_words=possible_words)
|
||||
possible_words=possible_words,
|
||||
sent_by_bot=sent_by_bot)
|
||||
|
||||
if message is not None:
|
||||
message.user_ids_with_alert_words = set()
|
||||
|
||||
Reference in New Issue
Block a user