Example #1
0
  def send_message(self, to_jid_list, message, html_message=None,
                   atom_message=None):
    if settings.IM_TEST_ONLY:
      to_jid_list = [x for x in to_jid_list
                     if x.base() in settings.IM_TEST_JIDS]

    raw_xml = False
    message = encoding.smart_str(message)
    body = message

    if html_message or atom_message:
      raw_xml = True
      body_builder = ["<body>%s</body>" % (html.escape(body.strip())), ]
      if html_message:
        html_message = encoding.smart_str(html_message)
        body_builder.append(html_message)
      if atom_message:
        atom_message = encoding.smart_str(atom_message)
        body_builder.append(atom_message)
      body = u'\n'.join([encoding.smart_unicode(x) for x in body_builder])
      body = body.encode('ascii', 'xmlcharrefreplace')

    xmpp_service = component.best['xmpp_service']
    xmpp_service.send_message([j.base() for j in to_jid_list],
                              body,
                              raw_xml=raw_xml)
Example #2
0
  def send_message(self, to_list, message):
    if not to_list:
      return

    try:
      to_list = self.filter_targets(to_list, message)
    except exception.Error:
      exception.log_warning()
      return

    # global monthly sms limit
    # TODO(termie): this means that no messages will be sent if any
    #               will go over the limit, is this really the behavior
    #               we want?
    for i in range(0, len(to_list)):
      throttle.throttle(None,
                        'sms_global_send',
                        month=settings.THROTTLE_SMS_GLOBAL_MONTH)

    message = encoding.smart_str(message)
    sms_service = component.best['sms_service']
    sms_service.send_message(to_list, message)