예제 #1
0
 def send_alert(self, to_users, subject, message, from_user, sub_group):
     jid_list = []
     from_jid = get_config("JABBER_FROM_JID", None).value
     from_password = get_config("JABBER_FROM_PASSWORD", None).value
     jid_space_char = get_config("JABBER_LOCAL_SPACE_CHAR", None).value
     jabber_domain = get_config("JABBER_LOCAL_DOMAIN", None).value
     local_jabber = get_config("JABBER_LOCAL_ENABLED", None).value == "1"
     full_message = render_to_string(
         "jabber_message.txt", {
             'subject': subject,
             'message': message,
             'sub_group': sub_group.name,
             'from_user': from_user.username,
             'time': datetime.now(pytz.utc)
         })
     for user in to_users:
         if self.is_registered(user, sub_group):
             if local_jabber:
                 jid_list.append(("%s@%s" % (user.username.replace(
                     " ", jid_space_char), jabber_domain)).encode('utf-8'))
             for jid in user.jabber_accounts.all():
                 jid_list.append(jid.jid.encode('utf-8'))
     client = JabberClient(jid=from_jid.encode('utf-8'),
                           password=from_password.encode('utf-8'),
                           to_list=jid_list,
                           message=full_message.encode('utf-8'))
     if client.connect():
         client.process()