vt_state.py 933 B

12345678910111213141516171819202122232425262728
  1. import pickle
  2. class VoidTerminalState():
  3. def __init__(self):
  4. self.reset_state()
  5. def reset_state(self):
  6. self.has_provided_explaination = False
  7. def lock_plugin(self, chatbot):
  8. chatbot._cookies['lock_plugin'] = 'crazy_functions.虚空终端->虚空终端'
  9. chatbot._cookies['plugin_state'] = pickle.dumps(self)
  10. def unlock_plugin(self, chatbot):
  11. self.reset_state()
  12. chatbot._cookies['lock_plugin'] = None
  13. chatbot._cookies['plugin_state'] = pickle.dumps(self)
  14. def set_state(self, chatbot, key, value):
  15. setattr(self, key, value)
  16. chatbot._cookies['plugin_state'] = pickle.dumps(self)
  17. def get_state(chatbot):
  18. state = chatbot._cookies.get('plugin_state', None)
  19. if state is not None: state = pickle.loads(state)
  20. else: state = VoidTerminalState()
  21. state.chatbot = chatbot
  22. return state