mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
refactor: Making email_mirror independent of actions.
Moved truncate_body, truncate_content and truncate_topic to message.py.
This commit is contained in:
@@ -45,6 +45,8 @@ from zerver.lib.message import (
|
|||||||
MessageDict,
|
MessageDict,
|
||||||
render_markdown,
|
render_markdown,
|
||||||
update_first_visible_message_id,
|
update_first_visible_message_id,
|
||||||
|
truncate_body,
|
||||||
|
truncate_topic,
|
||||||
)
|
)
|
||||||
from zerver.lib.realm_icon import realm_icon_url
|
from zerver.lib.realm_icon import realm_icon_url
|
||||||
from zerver.lib.realm_logo import get_realm_logo_data
|
from zerver.lib.realm_logo import get_realm_logo_data
|
||||||
@@ -95,7 +97,7 @@ from zerver.models import Realm, RealmEmoji, Stream, UserProfile, UserActivity,
|
|||||||
Subscription, Recipient, Message, Attachment, UserMessage, RealmAuditLog, \
|
Subscription, Recipient, Message, Attachment, UserMessage, RealmAuditLog, \
|
||||||
UserHotspot, MultiuseInvite, ScheduledMessage, UserStatus, \
|
UserHotspot, MultiuseInvite, ScheduledMessage, UserStatus, \
|
||||||
Client, DefaultStream, DefaultStreamGroup, UserPresence, \
|
Client, DefaultStream, DefaultStreamGroup, UserPresence, \
|
||||||
ScheduledEmail, MAX_TOPIC_NAME_LENGTH, \
|
ScheduledEmail, \
|
||||||
MAX_MESSAGE_LENGTH, get_client, get_stream, \
|
MAX_MESSAGE_LENGTH, get_client, get_stream, \
|
||||||
get_user_profile_by_id, PreregistrationUser, \
|
get_user_profile_by_id, PreregistrationUser, \
|
||||||
email_to_username, \
|
email_to_username, \
|
||||||
@@ -4198,18 +4200,6 @@ def do_update_message_flags(user_profile: UserProfile,
|
|||||||
statsd.incr("flags.%s.%s" % (flag, operation), count)
|
statsd.incr("flags.%s.%s" % (flag, operation), count)
|
||||||
return count
|
return count
|
||||||
|
|
||||||
|
|
||||||
def truncate_content(content: str, max_length: int, truncation_message: str) -> str:
|
|
||||||
if len(content) > max_length:
|
|
||||||
content = content[:max_length - len(truncation_message)] + truncation_message
|
|
||||||
return content
|
|
||||||
|
|
||||||
def truncate_body(body: str) -> str:
|
|
||||||
return truncate_content(body, MAX_MESSAGE_LENGTH, "\n[message truncated]")
|
|
||||||
|
|
||||||
def truncate_topic(topic: str) -> str:
|
|
||||||
return truncate_content(topic, MAX_TOPIC_NAME_LENGTH, "...")
|
|
||||||
|
|
||||||
MessageUpdateUserInfoResult = TypedDict('MessageUpdateUserInfoResult', {
|
MessageUpdateUserInfoResult = TypedDict('MessageUpdateUserInfoResult', {
|
||||||
'message_user_ids': Set[int],
|
'message_user_ids': Set[int],
|
||||||
'mention_user_ids': Set[int],
|
'mention_user_ids': Set[int],
|
||||||
|
|||||||
@@ -11,8 +11,7 @@ from django.conf import settings
|
|||||||
from django.utils.timezone import timedelta, now as timezone_now
|
from django.utils.timezone import timedelta, now as timezone_now
|
||||||
|
|
||||||
from zerver.lib.actions import internal_send_private_message, \
|
from zerver.lib.actions import internal_send_private_message, \
|
||||||
internal_send_stream_message, internal_send_huddle_message, \
|
internal_send_stream_message, internal_send_huddle_message
|
||||||
truncate_body, truncate_topic
|
|
||||||
from zerver.lib.email_mirror_helpers import decode_email_address, \
|
from zerver.lib.email_mirror_helpers import decode_email_address, \
|
||||||
get_email_gateway_message_string_from_address, ZulipEmailForwardError
|
get_email_gateway_message_string_from_address, ZulipEmailForwardError
|
||||||
from zerver.lib.email_notifications import convert_html_to_markdown
|
from zerver.lib.email_notifications import convert_html_to_markdown
|
||||||
@@ -22,6 +21,7 @@ from zerver.lib.upload import upload_message_file
|
|||||||
from zerver.lib.send_email import FromAddress
|
from zerver.lib.send_email import FromAddress
|
||||||
from zerver.lib.rate_limiter import RateLimitedObject
|
from zerver.lib.rate_limiter import RateLimitedObject
|
||||||
from zerver.lib.exceptions import RateLimited
|
from zerver.lib.exceptions import RateLimited
|
||||||
|
from zerver.lib.message import truncate_body, truncate_topic
|
||||||
from zerver.models import Stream, Recipient, MissedMessageEmailAddress, \
|
from zerver.models import Stream, Recipient, MissedMessageEmailAddress, \
|
||||||
get_display_recipient, \
|
get_display_recipient, \
|
||||||
Message, Realm, UserProfile, get_system_bot, get_user, get_stream_by_id_in_realm
|
Message, Realm, UserProfile, get_system_bot, get_user, get_stream_by_id_in_realm
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ from zerver.models import (
|
|||||||
UserMessage,
|
UserMessage,
|
||||||
Reaction,
|
Reaction,
|
||||||
get_usermessage_by_message_id,
|
get_usermessage_by_message_id,
|
||||||
|
MAX_MESSAGE_LENGTH,
|
||||||
|
MAX_TOPIC_NAME_LENGTH
|
||||||
)
|
)
|
||||||
|
|
||||||
from typing import Any, Dict, List, Optional, Set, Tuple, Sequence
|
from typing import Any, Dict, List, Optional, Set, Tuple, Sequence
|
||||||
@@ -81,6 +83,17 @@ UnreadMessagesResult = TypedDict('UnreadMessagesResult', {
|
|||||||
# user has more older unread messages that were cut off.
|
# user has more older unread messages that were cut off.
|
||||||
MAX_UNREAD_MESSAGES = 50000
|
MAX_UNREAD_MESSAGES = 50000
|
||||||
|
|
||||||
|
def truncate_content(content: str, max_length: int, truncation_message: str) -> str:
|
||||||
|
if len(content) > max_length:
|
||||||
|
content = content[:max_length - len(truncation_message)] + truncation_message
|
||||||
|
return content
|
||||||
|
|
||||||
|
def truncate_body(body: str) -> str:
|
||||||
|
return truncate_content(body, MAX_MESSAGE_LENGTH, "\n[message truncated]")
|
||||||
|
|
||||||
|
def truncate_topic(topic: str) -> str:
|
||||||
|
return truncate_content(topic, MAX_TOPIC_NAME_LENGTH, "...")
|
||||||
|
|
||||||
def messages_for_ids(message_ids: List[int],
|
def messages_for_ids(message_ids: List[int],
|
||||||
user_message_flags: Dict[int, List[str]],
|
user_message_flags: Dict[int, List[str]],
|
||||||
search_fields: Dict[int, Dict[str, str]],
|
search_fields: Dict[int, Dict[str, str]],
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from zerver.lib.zcommand import process_zcommands
|
|||||||
from zerver.lib.actions import recipient_for_user_profiles, do_update_message_flags, \
|
from zerver.lib.actions import recipient_for_user_profiles, do_update_message_flags, \
|
||||||
compute_irc_user_fullname, compute_jabber_user_fullname, \
|
compute_irc_user_fullname, compute_jabber_user_fullname, \
|
||||||
create_mirror_user_if_needed, check_send_message, do_update_message, \
|
create_mirror_user_if_needed, check_send_message, do_update_message, \
|
||||||
extract_private_recipients, truncate_body, render_incoming_message, do_delete_messages, \
|
extract_private_recipients, render_incoming_message, do_delete_messages, \
|
||||||
do_mark_all_as_read, do_mark_stream_messages_as_read, extract_stream_indicator, \
|
do_mark_all_as_read, do_mark_stream_messages_as_read, extract_stream_indicator, \
|
||||||
get_user_info_for_message_updates, check_schedule_message
|
get_user_info_for_message_updates, check_schedule_message
|
||||||
from zerver.lib.addressee import get_user_profiles, get_user_profiles_by_ids
|
from zerver.lib.addressee import get_user_profiles, get_user_profiles_by_ids
|
||||||
@@ -27,6 +27,7 @@ from zerver.lib.message import (
|
|||||||
messages_for_ids,
|
messages_for_ids,
|
||||||
render_markdown,
|
render_markdown,
|
||||||
get_first_visible_message_id,
|
get_first_visible_message_id,
|
||||||
|
truncate_body,
|
||||||
)
|
)
|
||||||
from zerver.lib.response import json_success, json_error
|
from zerver.lib.response import json_success, json_error
|
||||||
from zerver.lib.sqlalchemy_utils import get_sqlalchemy_connection
|
from zerver.lib.sqlalchemy_utils import get_sqlalchemy_connection
|
||||||
|
|||||||
Reference in New Issue
Block a user