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)
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)