mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
Remove do_send_missedmessage_events function.
This commit is contained in:
@@ -284,70 +284,6 @@ def do_send_missedmessage_events_reply_in_zulip(user_profile, missed_messages, m
|
||||
user_profile.last_reminder = datetime.datetime.now()
|
||||
user_profile.save(update_fields=['last_reminder'])
|
||||
|
||||
@statsd_increment("missed_message_reminders")
|
||||
def do_send_missedmessage_events(user_profile, missed_messages, message_count):
|
||||
# type: (UserProfile, List[Message], int) -> None
|
||||
"""
|
||||
Send a reminder email and/or push notifications to a user if she's missed some PMs by being offline
|
||||
|
||||
`user_profile` is the user to send the reminder to
|
||||
`missed_messages` is a list of Message objects to remind about
|
||||
"""
|
||||
# Disabled missedmessage emails internally
|
||||
if not user_profile.enable_offline_email_notifications:
|
||||
return
|
||||
|
||||
senders = set(m.sender.full_name for m in missed_messages)
|
||||
sender_str = ", ".join(senders)
|
||||
plural_messages = 's' if len(missed_messages) > 1 else ''
|
||||
template_payload = {'name': user_profile.full_name,
|
||||
'messages': build_message_list(user_profile, missed_messages),
|
||||
'message_count': message_count,
|
||||
'url': 'https://%s' % (settings.EXTERNAL_HOST,),
|
||||
'reply_warning': False,
|
||||
'external_host': settings.EXTERNAL_HOST}
|
||||
headers = {}
|
||||
if all(msg.recipient.type in (Recipient.HUDDLE, Recipient.PERSONAL)
|
||||
for msg in missed_messages):
|
||||
# If we have one huddle, set a reply-to to all of the members
|
||||
# of the huddle except the user herself
|
||||
disp_recipients = [", ".join(recipient['email']
|
||||
for recipient in cast(Sequence[Mapping[str, Any]], get_display_recipient(mesg.recipient))
|
||||
if recipient['email'] != user_profile.email)
|
||||
for mesg in missed_messages]
|
||||
if all(msg.recipient.type == Recipient.HUDDLE for msg in missed_messages) and \
|
||||
len(set(disp_recipients)) == 1:
|
||||
headers['Reply-To'] = disp_recipients[0]
|
||||
elif len(senders) == 1:
|
||||
headers['Reply-To'] = missed_messages[0].sender.email
|
||||
else:
|
||||
template_payload['reply_warning'] = True
|
||||
else:
|
||||
# There are some @-mentions mixed in with personals
|
||||
template_payload['mention'] = True
|
||||
template_payload['reply_warning'] = True
|
||||
headers['Reply-To'] = "Nobody <%s>" % (settings.NOREPLY_EMAIL_ADDRESS,)
|
||||
|
||||
# Give users a one-click unsubscribe link they can use to stop getting
|
||||
# missed message emails without having to log in first.
|
||||
unsubscribe_link = one_click_unsubscribe_link(user_profile, "missed_messages")
|
||||
template_payload["unsubscribe_link"] = unsubscribe_link
|
||||
|
||||
subject = "Missed Zulip%s from %s" % (plural_messages, sender_str)
|
||||
from_email = "%s (via Zulip) <%s>" % (sender_str, settings.NOREPLY_EMAIL_ADDRESS)
|
||||
|
||||
text_content = loader.render_to_string('zerver/missed_message_email.txt', template_payload)
|
||||
html_content = loader.render_to_string('zerver/missed_message_email_html.txt', template_payload)
|
||||
|
||||
msg = EmailMultiAlternatives(subject, text_content, from_email, [user_profile.email],
|
||||
headers = headers)
|
||||
msg.attach_alternative(html_content, "text/html")
|
||||
msg.send()
|
||||
|
||||
user_profile.last_reminder = datetime.datetime.now()
|
||||
user_profile.save(update_fields=['last_reminder'])
|
||||
|
||||
|
||||
def handle_missedmessage_emails(user_profile_id, missed_email_events):
|
||||
# type: (int, Iterable[Dict[str, Any]]) -> None
|
||||
message_ids = [event.get('message_id') for event in missed_email_events]
|
||||
|
||||
Reference in New Issue
Block a user