def send_to_msg(stanza, to, body): frm = stanza.get_from() email = '%s@%s' % (frm.node, frm.domain) nick = get_nick(email) add_history(email, to, body) body = "[%s 悄悄对你说] %s" % (nick, body) return send_msg(stanza, to, body)
def nick(self, stanza, *args): """更改昵称 eg. $nick yournewnickname""" if len(args) >= 1: nick = ' '.join(args[0:]) frm = stanza.get_from() email = "%s@%s" % (frm.node, frm.domain) oldnick = get_nick(email) r = edit_member(email, nick = nick) if r: body = "%s 更改昵称为 %s" % (oldnick, nick) m = send_all_msg(stanza, body) else: m = self._send_cmd_result(stanza, '昵称已存在') else: m = self.help(stanza, 'nick') return m
def code(self, stanza, *args): """<type> <code> 贴代码,可以使用$codetypes查看允许的代码类型""" if len(args) > 1: email = get_email(stanza.get_from()) nick = get_nick(email) typ = args[0] codes = _add_commends(args[1:], typ, nick) codes = ''.join(codes[0:2]) + ' '.join(codes[2:]) poster = "Pythoner Club: %s" % nick r = paste_code(poster,typ, codes) if r: m = send_all_msg(stanza, r) mc = self._send_cmd_result(stanza, r) m.append(mc) else: m = self._send_cmd_result(stanza, 'something wrong') else: m = self.help(stanza, 'code') return m
def send_all_msg(stanza, body): frm = stanza.get_from() email = '%s@%s' % (frm.node, frm.domain) nick = get_nick(email) add_history(email, 'all', body) tos = get_members(email) ms = [] if '@' in body: r = re.findall(r'@<(.*?)>', body) mem = [get_member(nick=n) for n in r if get_member(nick = n)] if mem: if body.startswith('@<'): b = re.sub(r'^@<.*?>', '', body) return send_to_msg(stanza, mem[0], b) b = '%s 提到了你说: %s' % (nick, body) ml = [send_to_msg(stanza, to, b) for to in mem] ms += ml elif body.strip() == 'help': return send_command(stanza, '$help') body = "[%s] %s" % (nick, body) for to in tos: m = send_msg(stanza, to, body) ms.append(m) return ms