def __init__(self, store_user_data=True, store_chat_data=True, user_data_json='', chat_data_json='', conversations_json=''): self.store_user_data = store_user_data self.store_chat_data = store_chat_data self._user_data = None self._chat_data = None self._conversations = None self._user_data_json = None self._chat_data_json = None self._conversations_json = None if user_data_json: try: self._user_data = decode_user_chat_data_from_json(user_data_json) self._user_data_json = user_data_json except (ValueError, AttributeError): raise TypeError("Unable to deserialize user_data_json. Not valid JSON") if chat_data_json: try: self._chat_data = decode_user_chat_data_from_json(chat_data_json) self._chat_data_json = chat_data_json except (ValueError, AttributeError): raise TypeError("Unable to deserialize chat_data_json. Not valid JSON") if conversations_json: try: self._conversations = decode_conversations_from_json(conversations_json) self._conversations_json = conversations_json except (ValueError, AttributeError): raise TypeError("Unable to deserialize conversations_json. Not valid JSON")
def __init__(self, store_user_data=True, store_chat_data=True, store_bot_data=True, user_data_json='', chat_data_json='', bot_data_json='', conversations_json=''): super().__init__(store_user_data=store_user_data, store_chat_data=store_chat_data, store_bot_data=store_bot_data) self._user_data = None self._chat_data = None self._bot_data = None self._conversations = None self._user_data_json = None self._chat_data_json = None self._bot_data_json = None self._conversations_json = None if user_data_json: try: self._user_data = decode_user_chat_data_from_json( user_data_json) self._user_data_json = user_data_json except (ValueError, AttributeError): raise TypeError( "Unable to deserialize user_data_json. Not valid JSON") if chat_data_json: try: self._chat_data = decode_user_chat_data_from_json( chat_data_json) self._chat_data_json = chat_data_json except (ValueError, AttributeError): raise TypeError( "Unable to deserialize chat_data_json. Not valid JSON") if bot_data_json: try: self._bot_data = json.loads(bot_data_json) self._bot_data_json = bot_data_json except (ValueError, AttributeError): raise TypeError( "Unable to deserialize bot_data_json. Not valid JSON") if not isinstance(self._bot_data, dict): raise TypeError("bot_data_json must be serialized dict") if conversations_json: try: self._conversations = decode_conversations_from_json( conversations_json) self._conversations_json = conversations_json except (ValueError, AttributeError): raise TypeError( "Unable to deserialize conversations_json. Not valid JSON")
def chat_data(self): chat_data = self.firebase.get(f'/{self.CHAT_DATA_KEY}', None) if chat_data is None: chat_data = {} chat_data = decode_user_chat_data_from_json(json.dumps(chat_data)) return defaultdict(dict, chat_data)
def user_data(self): user_data = self.firebase.get(f'/{self.USER_DATA_KEY}', None) if user_data is None: user_data = {} user_data = decode_user_chat_data_from_json(json.dumps(user_data)) return defaultdict(dict, user_data)
def get_chat_data(self): data = self.db.get('chat_data') if data is None: chat_data = defaultdict(dict) else: chat_data = defaultdict(dict, decode_user_chat_data_from_json(data.decode())) return chat_data
def load_user_chat_data(self, data_type): try: json_data_full = defaultdict(dict) for file in self.file_list(directory=self.main_node, file_type=data_type): node_data, stat = self.zoo_client.get(file) json_data = decode_user_chat_data_from_json( node_data.decode('utf-8')) json_data_concat = {**json_data, **json_data_full} json_data_full = json_data_concat return deepcopy(json_data_full) except Exception as ex: logger.error('Error read data from node with Exception: %s' % ex) return None
def __init__( self, store_user_data: bool = True, store_chat_data: bool = True, store_bot_data: bool = True, user_data_json: str = '', chat_data_json: str = '', bot_data_json: str = '', conversations_json: str = '', store_callback_data: bool = False, callback_data_json: str = '', ): super().__init__( store_user_data=store_user_data, store_chat_data=store_chat_data, store_bot_data=store_bot_data, store_callback_data=store_callback_data, ) self._user_data = None self._chat_data = None self._bot_data = None self._callback_data = None self._conversations = None self._user_data_json = None self._chat_data_json = None self._bot_data_json = None self._callback_data_json = None self._conversations_json = None if user_data_json: try: self._user_data = decode_user_chat_data_from_json( user_data_json) self._user_data_json = user_data_json except (ValueError, AttributeError) as exc: raise TypeError( "Unable to deserialize user_data_json. Not valid JSON" ) from exc if chat_data_json: try: self._chat_data = decode_user_chat_data_from_json( chat_data_json) self._chat_data_json = chat_data_json except (ValueError, AttributeError) as exc: raise TypeError( "Unable to deserialize chat_data_json. Not valid JSON" ) from exc if bot_data_json: try: self._bot_data = json.loads(bot_data_json) self._bot_data_json = bot_data_json except (ValueError, AttributeError) as exc: raise TypeError( "Unable to deserialize bot_data_json. Not valid JSON" ) from exc if not isinstance(self._bot_data, dict): raise TypeError("bot_data_json must be serialized dict") if callback_data_json: try: data = json.loads(callback_data_json) except (ValueError, AttributeError) as exc: raise TypeError( "Unable to deserialize callback_data_json. Not valid JSON" ) from exc # We are a bit more thorough with the checking of the format here, because it's # more complicated than for the other things try: if data is None: self._callback_data = None else: self._callback_data = cast( CDCData, ([(one, float(two), three) for one, two, three in data[0]], data[1]), ) self._callback_data_json = callback_data_json except (ValueError, IndexError) as exc: raise TypeError( "callback_data_json is not in the required format" ) from exc if self._callback_data is not None and (not all( isinstance(entry[2], dict) and isinstance(entry[0], str) for entry in self._callback_data[0]) or not isinstance( self._callback_data[1], dict)): raise TypeError( "callback_data_json is not in the required format") if conversations_json: try: self._conversations = decode_conversations_from_json( conversations_json) self._conversations_json = conversations_json except (ValueError, AttributeError) as exc: raise TypeError( "Unable to deserialize conversations_json. Not valid JSON" ) from exc