diff --git a/frontend_tests/node_tests/markdown.js b/frontend_tests/node_tests/markdown.js index 78f305c8c8..8e425750e1 100644 --- a/frontend_tests/node_tests/markdown.js +++ b/frontend_tests/node_tests/markdown.js @@ -318,31 +318,30 @@ var bugdown_data = JSON.parse(fs.readFileSync(path.join(__dirname, '../../zerver var message = {subject: "No links here", raw_content: input}; message.flags = ['read']; markdown.apply_markdown(message); - markdown.add_message_flags(message); + markdown.set_is_me_message(message); - assert.equal(message.flags.length, 2); + assert.equal(message.is_me_message, true); + assert.equal(message.flags.length, 1); assert(message.flags.indexOf('read') !== -1); - assert(message.flags.indexOf('is_me_message') !== -1); input = "testing this @**all** @**Cordelia Lear**"; message = {subject: "No links here", raw_content: input}; markdown.apply_markdown(message); - markdown.add_message_flags(message); + markdown.set_is_me_message(message); + assert.equal(message.is_me_message, false); assert.equal(message.flags.length, 1); assert(message.flags.indexOf('mentioned') !== -1); input = "test @all"; message = {subject: "No links here", raw_content: input}; markdown.apply_markdown(message); - markdown.add_message_flags(message); assert.equal(message.flags.length, 1); assert(message.flags.indexOf('mentioned') !== -1); input = "test @any"; message = {subject: "No links here", raw_content: input}; markdown.apply_markdown(message); - markdown.add_message_flags(message); assert.equal(message.flags.length, 0); assert(message.flags.indexOf('mentioned') === -1); }()); diff --git a/frontend_tests/node_tests/message_store.js b/frontend_tests/node_tests/message_store.js index f41f0b9f29..9faab86563 100644 --- a/frontend_tests/node_tests/message_store.js +++ b/frontend_tests/node_tests/message_store.js @@ -84,6 +84,7 @@ var message_store = require('js/message_store.js'); type: 'private', display_recipient: [me, bob, cindy], flags: ['has_alert_word'], + is_me_message: false, id: 2067, }; message_store.add_message_metadata(message); diff --git a/static/js/echo.js b/static/js/echo.js index 238ee2563e..61c33b5b20 100644 --- a/static/js/echo.js +++ b/static/js/echo.js @@ -105,7 +105,7 @@ function insert_local_message(message_request, local_id) { message.local_id = local_id; message.locally_echoed = true; message.id = message.local_id; - markdown.add_message_flags(message); + markdown.set_is_me_message(message); markdown.add_subject_links(message); waiting_for_id[message.local_id] = message; diff --git a/static/js/markdown.js b/static/js/markdown.js index ea864e0637..98c857cc45 100644 --- a/static/js/markdown.js +++ b/static/js/markdown.js @@ -76,14 +76,10 @@ exports.apply_markdown = function (message) { message.content = marked(message.raw_content + '\n\n', options).trim(); }; -exports.add_message_flags = function (message) { - // Note: mention flags are set in apply_markdown() - - if (message.raw_content.indexOf('/me ') === 0 && - message.content.indexOf('

') === 0 && - message.content.lastIndexOf('

') === message.content.length - 4) { - message.flags.push('is_me_message'); - } +exports.set_is_me_message = function (message) { + message.is_me_message = (message.raw_content.indexOf('/me ') === 0 && + message.content.indexOf('

') === 0 && + message.content.lastIndexOf('

') === message.content.length - 4); }; exports.add_subject_links = function (message) { diff --git a/static/js/message_store.js b/static/js/message_store.js index 68cf7a0965..6ee29fa921 100644 --- a/static/js/message_store.js +++ b/static/js/message_store.js @@ -102,7 +102,6 @@ exports.set_message_booleans = function (message, flags) { message.mentioned_me_directly = convert_flag('mentioned'); message.collapsed = convert_flag('collapsed'); message.alerted = convert_flag('has_alert_word'); - message.is_me_message = convert_flag('is_me_message'); }; exports.add_message_metadata = function (message) { diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 15c1fe2fd3..37ce269218 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -813,7 +813,6 @@ def do_send_messages(messages_maybe_none): wildcard = message['message'].mentions_wildcard mentioned_ids = message['message'].mentions_user_ids ids_with_alert_words = message['message'].user_ids_with_alert_words - is_me_message = message['message'].is_me_message for um in ums_to_create: if um.user_profile.id == message['message'].sender.id and \ @@ -825,8 +824,6 @@ def do_send_messages(messages_maybe_none): um.flags |= UserMessage.flags.mentioned if um.user_profile_id in ids_with_alert_words: um.flags |= UserMessage.flags.has_alert_word - if is_me_message: - um.flags |= UserMessage.flags.is_me_message user_messages = [] for um in ums_to_create: @@ -2781,9 +2778,6 @@ def update_user_message_flags(message, ums): update_flag(um, wildcard, UserMessage.flags.wildcard_mentioned) - is_me_message = getattr(message, 'is_me_message', False) - update_flag(um, is_me_message, UserMessage.flags.is_me_message) - for um in changed_ums: um.save(update_fields=['flags']) diff --git a/zerver/lib/message.py b/zerver/lib/message.py index c3c8a8e37b..eab93197a6 100644 --- a/zerver/lib/message.py +++ b/zerver/lib/message.py @@ -243,6 +243,7 @@ class MessageDict(object): obj['content'] = content obj['content_type'] = 'text/x-markdown' + obj['is_me_message'] = Message.is_status_message(content, rendered_content) obj['reactions'] = [ReactionDict.build_dict_from_raw_db_row(reaction) for reaction in reactions] return obj @@ -314,7 +315,6 @@ def render_markdown(message, content, realm=None, realm_alert_words=None, messag if message is not None: message.mentions_wildcard = False - message.is_me_message = False message.mentions_user_ids = set() message.alert_words = set() message.links_for_preview = set() @@ -349,8 +349,6 @@ def render_markdown(message, content, realm=None, realm_alert_words=None, messag if set(words).intersection(message.alert_words): message.user_ids_with_alert_words.add(user_id) - message.is_me_message = Message.is_status_message(content, rendered_content) - return rendered_content def huddle_users(recipient_id): diff --git a/zerver/models.py b/zerver/models.py index 362bbd13f7..a8a513ec77 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1290,7 +1290,7 @@ class AbstractUserMessage(ModelReprMixin, models.Model): user_profile = models.ForeignKey(UserProfile, on_delete=CASCADE) # type: UserProfile ALL_FLAGS = ['read', 'starred', 'collapsed', 'mentioned', 'wildcard_mentioned', 'summarize_in_home', 'summarize_in_stream', 'force_expand', 'force_collapse', - 'has_alert_word', "historical", 'is_me_message'] + 'has_alert_word', "historical"] flags = BitField(flags=ALL_FLAGS, default=0) # type: BitHandler class Meta(object):