예제 #1
0
    def check(self, sched, reenter=True):
        queue = self.api.get_skill_queue()
        if (queue.is_empty and self._has_changed(queue, "is_empty")):
            self.notify.send(queue.char_name + ': Skill queue empty!', 'Your '+
                    'skill queue is empty!')
        elif (queue.is_paused and self._has_changed(queue, "is_paused")):
            self.notify.send(queue.char_name + ': Skill queue paused!', 'Your '+
                    'skill queue is paused!')
        elif (queue.free_time is not None and self._has_changed(queue, "free_time")):
            self.notify.send(queue.char_name + ': Skill queue has space', 'Your '+
                    'skill queue has {} free space'.format(str(queue.free_time)))

        self.last_result = queue
        if reenter:
            from datetime import datetime
            logger.debug('time: '+str(datetime.now()))
            logger.debug('ts: '+str(Clock.timestamp_seconds(datetime.now())))
            logger.debug('cache expires: '+str(queue.cache_expires))
            next_pull_ts = Clock.timestamp_seconds(queue.cache_expires)+10
            logger.debug('next pull ts: '+str(next_pull_ts))
            sched.enterabs(next_pull_ts, 1, self.check, (sched,))
예제 #2
0
 def setUp(self):
     self.api = Stub()
     self.api.get_skill_queue = Mock()
     self.notify = Stub()
     self.notify.send = Mock()
     self.checker = SkillQueueChecker(self.api, self.notify)
     self.sched = Stub()
     self.sched.enterabs = Mock()
     self.cache_expires_seconds = Clock.timestamp_seconds(datetime.now()) + (20*60)
     self.queue = Stub()
     self.queue.is_empty = False
     self.queue.is_paused = False
     self.queue.free_time = None
     self.queue.cache_expires = datetime.fromtimestamp(self.cache_expires_seconds)
     self.queue.char_name = 'le mittani'
     self.api.get_skill_queue.return_value = self.queue
     self.longMessage = True