def persistent_user_id(self) -> str: if not isinstance(self._persistent_user_id, str) or (self._persistent_user_id.replace(" ", "") == ""): if self.is_alexa_v1 is True: user_id = SafeDict(self.alexaHandlerInput.session.user).get("userId").to_str(default=None) elif self.is_dialogflow_v1 is True: user_id = self.dialogFlowHandlerInput.user_id elif self.is_bixby_v1 is True: user_id = self.bixbyHandlerInput.request.context.userId if not isinstance(user_id, str) or user_id.replace(" ", "") == "": from inoft_vocal_framework.utils.general import generate_uuid4 self._persistent_user_id = generate_uuid4() # We need to set the persistent_user_id before memorizing it, because the memorize function will access the # persistent_user_data, and if the user_id is not set, we will get stuck in an infinite recursion loop self.persistent_memorize("userId", user_id) print(f"user_id {self._persistent_user_id} has been memorized in the database.") else: self._persistent_user_id = user_id logging.debug(f"_persistent_user_id = {self._persistent_user_id}") return self._persistent_user_id
def persistent_user_id(self) -> str: if not isinstance(self._persistent_user_id, str) or ( not (len(self._persistent_user_id.replace(" ", "")) > 0)): user_id: Optional[str] = None if self.is_alexa is True: user_id = SafeDict( self.alexaHandlerInput.session.user).get('userId').to_str( default=None) elif self.is_dialogflow is True: user_id = self.dialogFlowHandlerInput.get_user_id() elif self.is_bixby is True: user_id = self.bixbyHandlerInput.request.context.userId elif self.is_discord is True: user_id = self.discordHandlerInput.request.author.id if user_id is None or not isinstance( user_id, str) or not (len(user_id.replace(" ", "")) > 0): self._persistent_user_id = self.settings.user_data_plugin.register_new_user( ) else: self._persistent_user_id = user_id logging.debug(f"_persistent_user_id = {self._persistent_user_id}") return self._persistent_user_id