当前位置: 首页>>代码示例>>Python>>正文


Python Message.topic_name方法代码示例

本文整理汇总了Python中zerver.models.Message.topic_name方法的典型用法代码示例。如果您正苦于以下问题:Python Message.topic_name方法的具体用法?Python Message.topic_name怎么用?Python Message.topic_name使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在zerver.models.Message的用法示例。


在下文中一共展示了Message.topic_name方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: message_header

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
    def message_header(user_profile: UserProfile, message: Message) -> Dict[str, Any]:
        if message.recipient.type == Recipient.PERSONAL:
            header = "You and %s" % (message.sender.full_name,)
            html_link = personal_narrow_url(
                realm=user_profile.realm,
                sender=message.sender,
            )
            header_html = "<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
        elif message.recipient.type == Recipient.HUDDLE:
            disp_recipient = get_display_recipient(message.recipient)
            assert not isinstance(disp_recipient, str)
            other_recipients = [r['full_name'] for r in disp_recipient
                                if r['id'] != user_profile.id]
            header = "You and %s" % (", ".join(other_recipients),)
            other_user_ids = [r['id'] for r in disp_recipient
                              if r['id'] != user_profile.id]
            html_link = huddle_narrow_url(
                realm=user_profile.realm,
                other_user_ids=other_user_ids,
            )

            header_html = "<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
        else:
            stream = Stream.objects.only('id', 'name').get(id=message.recipient.type_id)
            header = "%s > %s" % (stream.name, message.topic_name())
            stream_link = stream_narrow_url(user_profile.realm, stream)
            topic_link = topic_narrow_url(user_profile.realm, stream, message.topic_name())
            header_html = "<a href='%s'>%s</a> > <a href='%s'>%s</a>" % (
                stream_link, stream.name, topic_link, message.topic_name())
        return {"plain": header,
                "html": header_html,
                "stream_message": message.recipient.type_name() == "stream"}
开发者ID:BakerWang,项目名称:zulip,代码行数:34,代码来源:notifications.py

示例2: get_apns_alert_title

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
def get_apns_alert_title(message: Message) -> str:
    """
    On an iOS notification, this is the first bolded line.
    """
    if message.recipient.type == Recipient.HUDDLE:
        recipients = cast(List[Dict[str, Any]], get_display_recipient(message.recipient))
        return ', '.join(sorted(r['full_name'] for r in recipients))
    elif message.is_stream_message():
        return "#%s > %s" % (get_display_recipient(message.recipient), message.topic_name(),)
    # For personal PMs, we just show the sender name.
    return message.sender.full_name
开发者ID:showell,项目名称:zulip,代码行数:13,代码来源:push_notifications.py

示例3: get_message_payload

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
def get_message_payload(message: Message) -> Dict[str, Any]:
    '''Common fields for `message` payloads, for all platforms.'''
    data = get_base_payload(message.sender.realm)

    # `sender_id` is preferred, but some existing versions use `sender_email`.
    data['sender_id'] = message.sender.id
    data['sender_email'] = message.sender.email

    if message.recipient.type == Recipient.STREAM:
        data['recipient_type'] = "stream"
        data['stream'] = get_display_recipient(message.recipient)
        data['topic'] = message.topic_name()
    elif message.recipient.type == Recipient.HUDDLE:
        data['recipient_type'] = "private"
        data['pm_users'] = huddle_users(message.recipient.id)
    else:  # Recipient.PERSONAL
        data['recipient_type'] = "private"

    return data
开发者ID:BakerWang,项目名称:zulip,代码行数:21,代码来源:push_notifications.py

示例4: to_dict_uncached_helper

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
 def to_dict_uncached_helper(message: Message) -> Dict[str, Any]:
     return MessageDict.build_message_dict(
         message = message,
         message_id = message.id,
         last_edit_time = message.last_edit_time,
         edit_history = message.edit_history,
         content = message.content,
         topic_name = message.topic_name(),
         pub_date = message.pub_date,
         rendered_content = message.rendered_content,
         rendered_content_version = message.rendered_content_version,
         sender_id = message.sender.id,
         sender_realm_id = message.sender.realm_id,
         sending_client_name = message.sending_client.name,
         recipient_id = message.recipient.id,
         recipient_type = message.recipient.type,
         recipient_type_id = message.recipient.type_id,
         reactions = Reaction.get_raw_db_rows([message.id]),
         submessages = SubMessage.get_raw_db_rows([message.id]),
     )
开发者ID:brainwane,项目名称:zulip,代码行数:22,代码来源:message.py

示例5: get_common_payload

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
def get_common_payload(message: Message) -> Dict[str, Any]:
    data = {}  # type: Dict[str, Any]

    # These will let the app support logging into multiple realms and servers.
    data['server'] = settings.EXTERNAL_HOST
    data['realm_id'] = message.sender.realm.id
    data['realm_uri'] = message.sender.realm.uri

    # `sender_id` is preferred, but some existing versions use `sender_email`.
    data['sender_id'] = message.sender.id
    data['sender_email'] = message.sender.email

    if message.recipient.type == Recipient.STREAM:
        data['recipient_type'] = "stream"
        data['stream'] = get_display_recipient(message.recipient)
        data['topic'] = message.topic_name()
    elif message.recipient.type == Recipient.HUDDLE:
        data['recipient_type'] = "private"
        data['pm_users'] = huddle_users(message.recipient.id)
    else:  # Recipient.PERSONAL
        data['recipient_type'] = "private"

    return data
开发者ID:showell,项目名称:zulip,代码行数:25,代码来源:push_notifications.py

示例6: message_header

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
 def message_header(user_profile: UserProfile, message: Message) -> Dict[str, Any]:
     disp_recipient = get_display_recipient(message.recipient)
     if message.recipient.type == Recipient.PERSONAL:
         header = u"You and %s" % (message.sender.full_name,)
         html_link = pm_narrow_url(user_profile.realm, [message.sender.email])
         header_html = u"<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
     elif message.recipient.type == Recipient.HUDDLE:
         assert not isinstance(disp_recipient, Text)
         other_recipients = [r['full_name'] for r in disp_recipient
                             if r['email'] != user_profile.email]
         header = u"You and %s" % (", ".join(other_recipients),)
         html_link = pm_narrow_url(user_profile.realm, [r["email"] for r in disp_recipient
                                   if r["email"] != user_profile.email])
         header_html = u"<a style='color: #ffffff;' href='%s'>%s</a>" % (html_link, header)
     else:
         assert isinstance(disp_recipient, Text)
         header = u"%s > %s" % (disp_recipient, message.topic_name())
         stream_link = stream_narrow_url(user_profile.realm, disp_recipient)
         topic_link = topic_narrow_url(user_profile.realm, disp_recipient, message.subject)
         header_html = u"<a href='%s'>%s</a> > <a href='%s'>%s</a>" % (
             stream_link, disp_recipient, topic_link, message.subject)
     return {"plain": header,
             "html": header_html,
             "stream_message": message.recipient.type_name() == "stream"}
开发者ID:joydeep1701,项目名称:zulip,代码行数:26,代码来源:notifications.py

示例7: do_test_topic

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
 def do_test_topic(self, msg: Message, expected_topic: Optional[str]) -> None:
     if expected_topic is not None:
         self.assertEqual(msg.topic_name(), expected_topic)
开发者ID:BakerWang,项目名称:zulip,代码行数:5,代码来源:test_classes.py

示例8: do_test_subject

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
 def do_test_subject(self, msg: Message, expected_subject: Optional[Text]) -> None:
     if expected_subject is not None:
         self.assertEqual(msg.topic_name(), expected_subject)
开发者ID:joydeep1701,项目名称:zulip,代码行数:5,代码来源:test_classes.py

示例9: filter_by_exact_message_topic

# 需要导入模块: from zerver.models import Message [as 别名]
# 或者: from zerver.models.Message import topic_name [as 别名]
def filter_by_exact_message_topic(query: QuerySet, message: Message) -> QuerySet:
    topic_name = message.topic_name()
    return query.filter(subject=topic_name)
开发者ID:akashnimare,项目名称:zulip,代码行数:5,代码来源:topic.py


注:本文中的zerver.models.Message.topic_name方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。