diff --git a/spaceapi/utils.py b/spaceapi/utils.py --- a/spaceapi/utils.py +++ b/spaceapi/utils.py @@ -121,40 +121,41 @@ class ActiveStatus(Singleton, dict): else: pass + def clear_user_present(self): + self['sensors']['people_now_presents'][0]['value'] = 0 + if 'names' in self['sensors']['people_now_present'][0]: + del self['sensors']['people_now_present'][0]['names'] + def set_new_state(self, value=None, trigger_person=None, message=None): if value is not None: - self['state']['open'] = value + if value != self['state']['open']: + self['state']['open'] = value + + tweet = random.choice(possible_open_tweets) if value else random.choice(possible_closed_tweets) - if value: - tweet = random.choice(possible_open_tweets) - else: - tweet = random.choice(possible_closed_tweets) - try: - send_tweet(tweet) - except Exception as e: - current_app.logger.error('Sending tweet failed! %s' % e, - exc_info=True) + try: + send_tweet(tweet) + except Exception as e: + current_app.logger.error('Sending tweet failed! %s' % e, + exc_info=True) - if not value: - if 'people_now_present' in self['sensors']: - self['sensors']['people_now_present'][0]['value'] = 0 - if 'names' in self['sensors']['people_now_present'][0]: - del self['sensors']['people_now_present'][0]['names'] + if not value: + if 'people_now_present' in self['sensors']: + self.clear_user_present() - if 'message' in self['state']: - del self['state']['message'] + if 'message' in self['state']: + del self['state']['message'] - if trigger_person is None: - del self['state']['trigger_person'] - - if trigger_person is not None: - self['state']['trigger_person'] = trigger_person + if trigger_person is None: + del self['state']['trigger_person'] + else: + self['state']['trigger_person'] = trigger_person if message is not None: self['state']['message'] = message - if value is not None or trigger_person is not None or message is not None: + if value is not None or message is not None: self['state']['lastchange'] = int(time())