Ejemplo n.º 1
0
    def consume(self, event):
        # type: (Mapping[str, Any]) -> None
        for url in event['urls']:
            url_preview.get_link_embed_data(url)

        message = Message.objects.get(id=event['message_id'])
        # If the message changed, we will run this task after updating the message
        # in zerver.views.messages.update_message_backend
        if message.content != event['message_content']:
            return
        if message.content is not None:
            ums = UserMessage.objects.filter(
                message=message.id).select_related("user_profile")
            message_users = {um.user_profile for um in ums}

            # Fetch the realm whose settings we're using for rendering
            realm = Realm.objects.get(id=event['message_realm_id'])

            # If rendering fails, the called code will raise a JsonableError.
            rendered_content = render_incoming_message(
                message,
                message.content,
                message_users,
                realm)
            do_update_embedded_data(
                message.sender, message, message.content, rendered_content)
Ejemplo n.º 2
0
    def consume(self, event):
        # type: (Mapping[str, Any]) -> None
        for url in event['urls']:
            url_preview.get_link_embed_data(url)

        message = Message.objects.get(id=event['message_id'])
        # If the message changed, we will run this task after updating the message
        # in zerver.views.messages.update_message_backend
        if message.content != event['message_content']:
            return
        if message.content is not None:
            query = UserMessage.objects.filter(
                message=message.id
            )
            message_user_ids = set(query.values_list('user_profile_id', flat=True))

            # Fetch the realm whose settings we're using for rendering
            realm = Realm.objects.get(id=event['message_realm_id'])

            # If rendering fails, the called code will raise a JsonableError.
            rendered_content = render_incoming_message(
                message,
                message.content,
                message_user_ids,
                realm)
            do_update_embedded_data(
                message.sender, message, message.content, rendered_content)
Ejemplo n.º 3
0
    def consume(self, event: Mapping[str, Any]) -> None:
        for url in event["urls"]:
            start_time = time.time()
            url_preview.get_link_embed_data(url)
            logging.info("Time spent on get_link_embed_data for %s: %s", url,
                         time.time() - start_time)

        message = Message.objects.get(id=event["message_id"])
        # If the message changed, we will run this task after updating the message
        # in zerver.lib.actions.check_update_message
        if message.content != event["message_content"]:
            return
        if message.content is not None:
            query = UserMessage.objects.filter(message=message.id, )
            message_user_ids = set(
                query.values_list("user_profile_id", flat=True))

            # Fetch the realm whose settings we're using for rendering
            realm = Realm.objects.get(id=event["message_realm_id"])

            # If rendering fails, the called code will raise a JsonableError.
            rendering_result = render_incoming_message(message,
                                                       message.content,
                                                       message_user_ids, realm)
            do_update_embedded_data(message.sender, message, message.content,
                                    rendering_result)
Ejemplo n.º 4
0
    def consume(self, event):
        # type: (Mapping[str, Any]) -> None
        for url in event['urls']:
            url_preview.get_link_embed_data(url)

        message = Message.objects.get(id=event['message_id'])
        # If the message changed, we will run this task after updating the message
        # in zerver.views.messages.update_message_backend
        if message.content != event['message_content']:
            return
        if message.content is not None:
            ums = UserMessage.objects.filter(
                message=message.id).select_related("user_profile")
            message_users = {um.user_profile for um in ums}
            # If rendering fails, the called code will raise a JsonableError.
            rendered_content = render_incoming_message(
                message, content=message.content, message_users=message_users)
            do_update_embedded_data(message.sender, message, message.content,
                                    rendered_content)