コード例 #1
0
ファイル: message.py プロジェクト: Jack1007/clubot
 def send_message(self, stanza, to, body, log = False):
     """ 发送消息
         `stanza`   - 消息节
         `to`       - 接收人 接收人不在线发送离线消息
         `body`     - 消息主体
         `log`      - 记录历史消息
     """
     if to == USER:
         return
     if log:
         Logics.add_history(stanza.from_jid, to, body)
     if Logics.is_online(to):
         mode = Logics.get_info(to, 'mode').value
         if mode == 'talk' or not mode:
             if isinstance(to, (str, unicode)):
                 to = JID(to)
             self.logger.debug("send '{0}' to {1!r}".format(body, to))
             typ = stanza.stanza_type
             self._stream.send(self.make_message(to, typ, body))
     else:
         body = NOW() + ' ' + body
         self.logger.debug("store offline message'{0}' for {1!r}"
                                 .format(body, to))
         offline_message = Logics.get_info(to, 'offline_message', '').value
         off_msgs = offline_message.split(self.offline_split_symbol)
         if len(off_msgs) >= 10:
             offline_message = self.offline_split_symbol.join(off_msgs[-9:])
         offline_message += self.offline_split_symbol +  body
         Logics.set_info(to, 'offline_message', offline_message)
コード例 #2
0
 def send_message(self, stanza, to, body, log=False):
     """ 发送消息
         `stanza`   - 消息节
         `to`       - 接收人 接收人不在线发送离线消息
         `body`     - 消息主体
         `log`      - 记录历史消息
     """
     if to == USER:
         return
     if log:
         Logics.add_history(stanza.from_jid, to, body)
     if Logics.is_online(to):
         mode = Logics.get_info(to, 'mode').value
         if mode == 'talk' or not mode:
             if isinstance(to, (str, unicode)):
                 to = JID(to)
             self.logger.debug("send '{0}' to {1!r}".format(body, to))
             typ = stanza.stanza_type
             self._stream.send(self.make_message(to, typ, body))
     else:
         body = NOW() + ' ' + body
         self.logger.debug("store offline message'{0}' for {1!r}".format(
             body, to))
         offline_message = Logics.get_info(to, 'offline_message', '').value
         off_msgs = offline_message.split(self.offline_split_symbol)
         if len(off_msgs) >= 10:
             offline_message = self.offline_split_symbol.join(off_msgs[-9:])
         offline_message += self.offline_split_symbol + body
         Logics.set_info(to, 'offline_message', offline_message)