コード例 #1
0
ファイル: command.py プロジェクト: Jack1007/clubot
    def old(self, stanza, *args):
        """显示聊天历史, 后面可跟昵称查看某人的历史, 或跟时间查看多长时间以内的历史:1h, 2h, 1d"""
        last = " ".join(args)
        m = Logics.get_with_nick(last)
        unit_map = {"h":3600, "m":60, "d":86400}
        header_map = {"h":u"小时", "m":u"分钟", "d":u"天"}
        two_hours_ago = datetime.fromtimestamp(time.time() - 7200)
        header = u"两小时以内的历史消息:"
        kwargs = {"starttime":two_hours_ago}
        if last:
            if m:
                kwargs["jid"] = m.email
                header = u"{0} 发送的历史消息:".format(m.nick)
            else:
                if last[0:-1].isdigit():
                    num, unit = int(last[0:-1]), last[-1].lower()
                    starttime = time.time() - (num * unit_map.get(unit, 3600))
                    starttime = datetime.fromtimestamp(starttime)
                    kwargs["starttime"] = starttime
                    header = u"{0} {1} 之内的历史消息:"\
                            .format(num, header_map.get(unit, u"小时"))

        histories = Logics.get_history(**kwargs)
        bodys = [header]
        for history in histories:
            bodys.append(u"{0} [{1}] {2}".format(history.pubdate,
                                                 history.member.nick,
                                                 history.content))

        self._send_cmd_result(stanza, "\n".join(bodys))
コード例 #2
0
ファイル: command.py プロジェクト: huahu/clubot
    def old(self, stanza, *args):
        """显示聊天历史, 后面可跟昵称查看某人的历史, 或跟时间查看多长时间以内的历史:1h, 2h, 1d"""
        last = " ".join(args)
        m = Logics.get_with_nick(last)
        unit_map = {"h": 3600, "m": 60, "d": 86400}
        header_map = {"h": u"小时", "m": u"分钟", "d": u"天"}
        two_hours_ago = datetime.fromtimestamp(time.time() - 7200)
        header = u"两小时以内的历史消息:"
        kwargs = {"starttime": two_hours_ago}
        if last:
            if m:
                kwargs["jid"] = m.email
                header = u"{0} 发送的历史消息:".format(m.nick)
            else:
                if last[0:-1].isdigit():
                    num, unit = int(last[0:-1]), last[-1].lower()
                    starttime = time.time() - (num * unit_map.get(unit, 3600))
                    starttime = datetime.fromtimestamp(starttime)
                    kwargs["starttime"] = starttime
                    header = u"{0} {1} 之内的历史消息:"\
                            .format(num, header_map.get(unit, u"小时"))

        histories = Logics.get_history(**kwargs)
        bodys = [header]
        for history in histories:
            bodys.append(u"{0} [{1}] {2}".format(history.pubdate,
                                                 history.member.nick,
                                                 history.content))

        self._send_cmd_result(stanza, "\n".join(bodys))