コード例 #1
0
ファイル: command.py プロジェクト: ParallelBase/clubot
    def whois(self, stanza, *args):
        """ 查询用户信息 """
        nick = ' '.join(args[0:])
        m = Logics.get_with_nick(nick, status = True, infos = True,
                                 history = True)
        if not m:
            self._send_cmd_result(stanza, u"{0} 用户不存在".format(nick))
            return
        bodys = []
        sts = [status.statustext for status in m.status if status.statustext]
        status_text = u""
        if "away" in sts:
            status_text = u"「离开」"

        if "dnd" in sts:
            status_text = u"「忙碌」"

        isonline = bool([status.status for status in m.status
                        if status.status])
        status = u"在线"+status_text if isonline else u"离线"
        resource = " ".join(s.resource for s in m.status if s.resource)
        rp = Logics.get_today_rp(m.email)
        rp = rp if rp != None else u"尚未测试"
        say_times = 0 if not m.history else len(m.history)
        level = u"管理员" if m.email in ADMINS else u"成员"
        last_say = u"从未发言" if not m.last_say else m.last_say
        last_change = m.last_change if m.last_change else u"从未修改"
        change_times = Logics.get_info(m.email, "change_nick_times", 0).value
        mode = Logics.get_info(stanza.from_jid, 'mode').value
        is_rece = u"是" if mode != "quiet" else u"否"
        bodys.append(u"昵称: {0}     状态: {1}".format(m.nick, status))
        bodys.append(u"资源: {0}     权限: {1}".format(resource, level))
        bodys.append(u"今日人品: {0}".format(rp))
        bodys.append(u"发言次数: {0}".format(say_times))
        bodys.append(u"最后发言: {0}".format(nicetime(last_say)))
        bodys.append(u"加入时间: {0}".format(nicetime(m.join_date)))
        bodys.append(u"更改昵称次数: {0}".format(change_times))
        bodys.append(u"上次更改时间: {0}".format(nicetime(last_change)))
        bodys.append(u"是否接受消息: {0}".format(is_rece))
        honor = Logics.get_honor_str(m)
        if honor:
            bodys.append(u"成就:")
            bodys.append(honor)
        self._send_cmd_result(stanza, "\n".join(bodys))
コード例 #2
0
    def whois(self, stanza, *args):
        """ 查询用户信息 """
        nick = ' '.join(args[0:])
        m = Logics.get_with_nick(nick, status=True, infos=True, history=True)
        if not m:
            self._send_cmd_result(stanza, u"{0} 用户不存在".format(nick))
            return
        bodys = []
        sts = [status.statustext for status in m.status if status.statustext]
        status_text = u""
        if "away" in sts:
            status_text = u"「离开」"

        if "dnd" in sts:
            status_text = u"「忙碌」"

        isonline = bool(
            [status.status for status in m.status if status.status])
        status = u"在线" + status_text if isonline else u"离线"
        resource = " ".join(s.resource for s in m.status if s.resource)
        rp = Logics.get_today_rp(m.email)
        rp = rp if rp != None else u"尚未测试"
        say_times = 0 if not m.history else len(m.history)
        level = u"管理员" if m.email in ADMINS else u"成员"
        last_say = u"从未发言" if not m.last_say else m.last_say
        last_change = m.last_change if m.last_change else u"从未修改"
        change_times = Logics.get_info(m.email, "change_nick_times", 0).value
        mode = Logics.get_info(stanza.from_jid, 'mode').value
        is_rece = u"是" if mode != "quiet" else u"否"
        bodys.append(u"昵称: {0}     状态: {1}".format(m.nick, status))
        bodys.append(u"资源: {0}     权限: {1}".format(resource, level))
        bodys.append(u"今日人品: {0}".format(rp))
        bodys.append(u"发言次数: {0}".format(say_times))
        bodys.append(u"最后发言: {0}".format(nicetime(last_say)))
        bodys.append(u"加入时间: {0}".format(nicetime(m.join_date)))
        bodys.append(u"更改昵称次数: {0}".format(change_times))
        bodys.append(u"上次更改时间: {0}".format(nicetime(last_change)))
        bodys.append(u"是否接受消息: {0}".format(is_rece))
        honor = Logics.get_honor_str(m)
        if honor:
            bodys.append(u"成就:")
            bodys.append(honor)
        self._send_cmd_result(stanza, "\n".join(bodys))