mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +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