var historyLoaded = false; var loadhistorytime = 0; // for debugging function saveHistoryHtml() { var historyHtml = document.querySelector('#chuanhu-chatbot>.wrapper>.wrap'); if (!historyHtml) return; // no history, do nothing localStorage.setItem('chatHistory', historyHtml.innerHTML); // console.log("History Saved") historyLoaded = false; } function loadHistoryHtml() { var historyHtml = localStorage.getItem('chatHistory'); const tempDiv = document.createElement('div'); tempDiv.innerHTML = historyHtml; if (!historyHtml || tempDiv.innerText.trim() === "") { historyLoaded = true; return; // no history, do nothing } userLogged = localStorage.getItem('userLogged'); hideHistoryWhenNotLoggedIn = gradioApp().querySelector('#hideHistoryWhenNotLoggedIn_config').innerText === "True"; if (userLogged || (!userLogged && !hideHistoryWhenNotLoggedIn)){ historyLoaded = true; return; // logged in, do nothing. OR, not logged in but not hide history list, do nothing. } // 只有用户未登录,还隐藏历史记录列表时,才选用只读历史记录 if (!historyLoaded) { // preprocess, gradio buttons in history lost their event listeners var gradioCopyButtons = tempDiv.querySelectorAll('button.copy_code_button'); for (var i = 0; i < gradioCopyButtons.length; i++) { gradioCopyButtons[i].parentNode.removeChild(gradioCopyButtons[i]); } var messageBtnRows = tempDiv.querySelectorAll('.message-btn-row'); for (var i = 0; i < messageBtnRows.length; i++) { messageBtnRows[i].parentNode.removeChild(messageBtnRows[i]); } var latestMessages = tempDiv.querySelectorAll('.message.latest'); for (var i = 0; i < latestMessages.length; i++) { latestMessages[i].classList.remove('latest'); } var fakeHistory = document.createElement('div'); fakeHistory.classList.add('history-message'); fakeHistory.innerHTML = tempDiv.innerHTML; const forViewStyle = document.createElement('style'); forViewStyle.innerHTML = '.wrapper>.wrap>.history-message>:last-child::after { content: "' + i18n(forView_i18n) + '"!important; }'; document.head.appendChild(forViewStyle); chatbotWrap.insertBefore(fakeHistory, chatbotWrap.firstChild); // var fakeHistory = document.createElement('div'); // fakeHistory.classList.add('history-message'); // fakeHistory.innerHTML = historyHtml; // chatbotWrap.insertBefore(fakeHistory, chatbotWrap.firstChild); historyLoaded = true; // console.log("History Loaded"); loadhistorytime += 1; // for debugging } else { historyLoaded = false; } } function clearHistoryHtml() { localStorage.removeItem("chatHistory"); historyMessages = chatbotWrap.querySelector('.history-message'); if (historyMessages) { chatbotWrap.removeChild(historyMessages); console.log("History Cleared"); } }