def do_quiet(self, args): '''禁言某人,参数为昵称和时间(默认单位秒)''' if len(args) != 2: self.msg.reply('请给出昵称和时间。') return else: try: n = utils.parseTime(args[1]) except ValueError: self.msg.reply('Sorry,我无法理解你说的时间。') return target = get_user_by_nick(args[0]) if target is None: self.msg.reply('Sorry,查无此人。') return target.black_before = datetime.datetime.now() + datetime.timedelta(seconds=n) target.put() self.msg.reply(u'OK,禁言 %s %s。' % (target.nick, utils.displayTime(n))) send_to_all_except((self.sender.jid, target.jid), (u'%s 已被禁言 %s。' % (target.nick, utils.displayTime(n))) \ .encode('utf-8')) xmpp.send_message(target.jid, u'你已被管理员禁言 %s。' % utils.displayTime(n)) log_admin(self.sender, BLACK % (target.nick, n))
def do_snooze(self, args): '''暂停接收消息,参数为时间(默认单位为秒)。再次发送消息时自动清除''' if len(args) != 1: self.msg.reply('你想停止接收消息多久?') return else: try: n = utils.parseTime(args[0]) except ValueError: self.msg.reply('Sorry,我无法理解你说的时间。') return try: self.sender.snooze_before = datetime.datetime.now() + datetime.timedelta(seconds=n) except OverflowError: self.msg.reply('Sorry,你不能睡太久。') return self.sender.put() if n == 0: self.msg.reply('你已经醒来。') else: self.msg.reply(u'OK,停止接收消息 %s。' % utils.displayTime(n)) log_onoff(self.sender, SNOOZE % n)