From 1fb05b6fb3c768710f51dea95f0da1c9934e608f Mon Sep 17 00:00:00 2001 From: Mic Date: Tue, 29 Oct 2024 18:36:46 +0100 Subject: [PATCH 1/5] getGPTWebModelString returns an empty string if the model is unknown --- js/mzta-utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/mzta-utils.js b/js/mzta-utils.js index 4c8bd8a9..e7974246 100644 --- a/js/mzta-utils.js +++ b/js/mzta-utils.js @@ -126,7 +126,7 @@ export function getGPTWebModelString(model) { case 'gpt-4o-mini': return '4o mini'; default: - return '4o'; + return ''; } } From ccf866a0034ea9a04ee2cb540908eab60155011e Mon Sep 17 00:00:00 2001 From: Mic Date: Tue, 29 Oct 2024 19:01:53 +0100 Subject: [PATCH 2/5] dispatching a change event --- options/mzta-options.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/options/mzta-options.js b/options/mzta-options.js index 1836ef91..80198a27 100644 --- a/options/mzta-options.js +++ b/options/mzta-options.js @@ -228,7 +228,9 @@ document.addEventListener('DOMContentLoaded', async () => { }); document.querySelectorAll(".conntype_chatgpt_web_option").forEach(element => { element.addEventListener("click", () => { - document.getElementById("chatgpt_web_model").value = element.textContent; + let el = document.getElementById("chatgpt_web_model"); + el.value = element.textContent; + el.dispatchEvent(new Event('change'), { bubbles: true }); }); }); From 503462b9cab706fbce1f5553b0f622ac24b676e2 Mon Sep 17 00:00:00 2001 From: Mic Date: Tue, 29 Oct 2024 19:02:17 +0100 Subject: [PATCH 3/5] more logs added to chatgpt web itnerface --- js/mzta-chatgpt.js | 13 +++++++++++-- mzta-background.js | 4 ++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/js/mzta-chatgpt.js b/js/mzta-chatgpt.js index 356fd833..0fe96f1e 100644 --- a/js/mzta-chatgpt.js +++ b/js/mzta-chatgpt.js @@ -246,6 +246,7 @@ function customTextBtnClick(args) { function checkGPTModel(model) { //TODO if(model == '') return; + doLog("checkGPTModel model: " + model); return new Promise((resolve, reject) => { // Set up an interval that shows the warning after 2 seconds const intervalId2 = setTimeout(() => { @@ -260,8 +261,9 @@ function checkGPTModel(model) { //TODO for(element of elements){ // Check if the element exists and its content is '4' or '4o' + doLog("checkGPTModel model found in DOM: " + element.textContent); if ((element && element.textContent === model)||(force_go)) { - console.log("[ThunderAI] The GPT Model is now " + model); + doLog("The GPT Model is now " + model); clearInterval(intervalId); clearTimeout(intervalId2); document.getElementById('mzta-model_warn').style.display = 'none'; @@ -269,7 +271,7 @@ function checkGPTModel(model) { //TODO resolve(model); break; } else if (!element) { - console.error("[ThunderAI] Model string element not found! [" + model + "]"); + console.error("[ThunderAI | ChatGPT Web] Model string element not found! [" + model + "]"); clearInterval(intervalId); reject("Model string element not found: " + model); } @@ -302,6 +304,7 @@ function showCustomTextField(){ async function doProceed(message, customText = ''){ let _gpt_model = mztaGPTModel; + doLog("doProceed _gpt_model: " + JSON.stringify(_gpt_model)); if(_gpt_model != ''){ await checkGPTModel(_gpt_model); } @@ -524,6 +527,12 @@ function selectContentOnClick(event) { } } +function doLog(msg){ + if(mztaDoDebug == 1){ + console.log("[ThunderAI | ChatGPT Web] " + msg); + } +} + function run(){ if(!checkLoggedIn()){ // User not logged in diff --git a/mzta-background.js b/mzta-background.js index ed86c7a6..7ae5b4ea 100644 --- a/mzta-background.js +++ b/mzta-background.js @@ -288,6 +288,9 @@ async function openChatGPT(promptText, action, curr_tabId, prompt_name = '', do_ taLog.log("ChatGPT web interface script started..."); let _gpt_model = getGPTWebModelString(prefs.chatgpt_web_model); + + taLog.log("prefs.chatgpt_web_model: " + prefs.chatgpt_web_model); + taLog.log("_gpt_model: " + _gpt_model); let pre_script = `let mztaWinId = `+ createdTab.windowId +`; let mztaStatusPageDesc="`+ browser.i18n.getMessage("prefs_status_page") +`"; @@ -297,6 +300,7 @@ async function openChatGPT(promptText, action, curr_tabId, prompt_name = '', do_ let mztaPromptName="[`+ i18nConditionalGet(prompt_name) +`]"; let mztaPhDefVal="`+(prefs.placeholders_use_default_value?'1':'0')+`"; let mztaGPTModel="`+ _gpt_model +`"; + let mztaDoDebug="`+(prefs.do_debug?'1':'0')+`"; `; taLog.log("Waiting 1 sec"); From 45ffb402e4ed174b4e180447be0dc586acc47434 Mon Sep 17 00:00:00 2001 From: Mic Date: Tue, 29 Oct 2024 19:04:03 +0100 Subject: [PATCH 4/5] tooltip added --- _locales/en/messages.json | 4 ++++ options/mzta-options.html | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 09aaaa39..86842e97 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -694,5 +694,9 @@ "prefs_OptionText_owl_warning": { "message": "It appears that at least one of your accounts is using the Owl for Exchange add-on. There is a known issue between Thunderbird and Owl, which is currently being addressed. At this time, you can use ThunderAI while composing emails, but not when reading them.", "description": "" + }, + "prefs_OptionText_chatgpt_web_model_tooltip": { + "message": "Click on a value to set it.", + "description": "" } } \ No newline at end of file diff --git a/options/mzta-options.html b/options/mzta-options.html index c6b08eb4..99f90516 100644 --- a/options/mzta-options.html +++ b/options/mzta-options.html @@ -116,7 +116,7 @@