From 7544699422bb3fd7262ad941117140531e4e7ade Mon Sep 17 00:00:00 2001 From: mic Date: Wed, 16 Oct 2024 00:20:54 +0200 Subject: [PATCH] additional_text implemented for chatgpt_web. see #153 --- js/mzta-chatgpt.js | 16 +++++++++++++++- js/mzta-menus.js | 2 +- js/mzta-placeholders.js | 7 +++++-- mzta-background.js | 1 + 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/js/mzta-chatgpt.js b/js/mzta-chatgpt.js index cf50b4a9..b6bcd255 100644 --- a/js/mzta-chatgpt.js +++ b/js/mzta-chatgpt.js @@ -256,7 +256,21 @@ function showCustomTextField(){ } async function doProceed(message, customText = ''){ - let send_result = await chatgpt_sendMsg(message.prompt+' '+customText,'click'); + let final_prompt = message.prompt; +// console.log(">>>>>>>>>>>> doProceed customText: " + customText); +// console.log(">>>>>>>>>>>> doProceed final_prompt: " + final_prompt); +// console.log(">>>>>>>>>>>> doProceed mztaPhDefVal: " + JSON.stringify(mztaPhDefVal)); + //check if there is che additional_text placeholder + if(final_prompt.includes('{%additional_text%}')){ + // console.log(">>>>>>>>>>>> found ph customText: " + customText); + final_prompt = final_prompt.replace('{%additional_text%}', customText || (mztaPhDefVal == '1'?'':'{%additional_text%}')); + }else{ + if(customText != ''){ + final_prompt += ' '+customText; + } + } + + let send_result = await chatgpt_sendMsg(final_prompt,'click'); //console.log(">>>>>>>>>>> send_result: " + send_result); switch(send_result){ case -1: // send button not found diff --git a/js/mzta-menus.js b/js/mzta-menus.js index f1f54425..071c7476 100644 --- a/js/mzta-menus.js +++ b/js/mzta-menus.js @@ -157,7 +157,7 @@ export class mzta_Menus { } // console.log(">>>>>>>>>> finalSubs: " + JSON.stringify(finalSubs)); let prefs_ph = await browser.storage.sync.get({placeholders_use_default_value: false}); - fullPrompt = placeholdersUtils.replacePlaceholders(curr_prompt.text, finalSubs, prefs_ph.placeholders_use_default_value) + (String(curr_prompt.need_signature) == "1" ? " " + await this.getDefaultSignature():"") + " " + chatgpt_lang; + fullPrompt = placeholdersUtils.replacePlaceholders(curr_prompt.text, finalSubs, prefs_ph.placeholders_use_default_value, true) + (String(curr_prompt.need_signature) == "1" ? " " + await this.getDefaultSignature():"") + " " + chatgpt_lang; } switch(curr_prompt.id){ diff --git a/js/mzta-placeholders.js b/js/mzta-placeholders.js index 5b11d664..51a846a5 100644 --- a/js/mzta-placeholders.js +++ b/js/mzta-placeholders.js @@ -183,12 +183,15 @@ export const placeholdersUtils = { return matches; }, - replacePlaceholders(text, replacements, use_dafault_value = false) { + replacePlaceholders(text, replacements, use_default_value = false, skip_additional_text = false) { // Regular expression to match patterns like {%...%} return text.replace(/{%\s*(.*?)\s*%}/g, function(match, p1) { // p1 contains the key inside {% %} + if (skip_additional_text && (p1 === 'additional_text')) { + return match; + } // Replace if found, otherwise keep the original or substitute with default value - return replacements[p1] || (use_dafault_value ? defaultPlaceholders.find(ph => ph.id === p1).default_value : match); + return replacements[p1] || (use_default_value ? defaultPlaceholders.find(ph => ph.id === p1).default_value : match); }); }, diff --git a/mzta-background.js b/mzta-background.js index 69c45785..b91d2ee5 100644 --- a/mzta-background.js +++ b/mzta-background.js @@ -281,6 +281,7 @@ async function openChatGPT(promptText, action, curr_tabId, prompt_name = '', do_ let mztaForceCompletionTitle="`+ browser.i18n.getMessage("chatgpt_force_completion_title") +`"; let mztaDoCustomText=`+ do_custom_text +`; let mztaPromptName="[`+ i18nConditionalGet(prompt_name) +`]"; + let mztaPhDefVal="`+(prefs.placeholders_use_default_value?'1':'0')+`"; `; taLog.log("Waiting 1 sec");