additional_text implemented for chatgpt_web. see #153

This commit is contained in:
mic 2024-10-16 00:20:54 +02:00
parent 1d718b3797
commit 7544699422
4 changed files with 22 additions and 4 deletions

View file

@ -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

View file

@ -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){

View file

@ -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);
});
},

View file

@ -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");