//br-script.js
document.addEventListener("DOMContentLoaded", function(){
console.log("BOTSAUTO Voice & Strategy Engine frontend script loaded!");
var readBtn=document.getElementById("br-read-btn");
var languageSelect=document.getElementById("br-language-select");
var audioElement=document.getElementById("br-audio");
var customPromptTextarea=document.getElementById("br_custom_prompt");
var resetPromptBtn=document.getElementById("br-reset-prompt-btn");
if(resetPromptBtn&&br_ajax_obj.is_admin&&br_ajax_obj.default_prompt){
resetPromptBtn.addEventListener("click", function(e){
e.preventDefault();
if(customPromptTextarea){
customPromptTextarea.value=br_ajax_obj.default_prompt;
}});
}
if(readBtn&&languageSelect&&audioElement){
readBtn.addEventListener("click", function(e){
e.preventDefault();
readBtn.disabled=true;
readBtn.textContent=br_ajax_obj.strings.generating;
var selectedLanguage=languageSelect.value;
if(!selectedLanguage){
console.error("❌ No language selected");
readBtn.disabled=false;
readBtn.textContent=br_ajax_obj.strings.listen;
return;
}
console.log("🌍 Selected language:", selectedLanguage);
var urlParams=new URLSearchParams(window.location.search);
var botsautoToken=urlParams.get('botsauto_edit')||'';
var requestParams={
action: "br_generate_audio",
nonce: br_ajax_obj.nonce,
post_id: br_ajax_obj.post_id,
language: selectedLanguage
};
if(botsautoToken){
requestParams.botsauto_edit=botsautoToken;
}
if(br_ajax_obj.is_admin&&customPromptTextarea&&customPromptTextarea.value.trim()){
requestParams.custom_prompt=customPromptTextarea.value.trim();
console.log("📝 Using custom prompt from admin override");
}
fetch(br_ajax_obj.ajax_url, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
body: new URLSearchParams(requestParams)
})
.then(response=> {
console.log("Raw response:", response);
return response.json();
})
.then(data=> {
console.log("🎤 Audio generation response:", data);
if(data.success){
console.log("Using cached file:", data.data.cached);
if(data.data&&Array.isArray(data.data.warnings)&&data.data.warnings.length){
alert(data.data.warnings.join("\n"));
}
audioElement.src=data.data.audio_url;
audioElement.style.display="block";
audioElement.play();
}else{
console.error("❌ Audio generation failed:", data.data);
alert("Error: " + (data.data||"Unknown error"));
}})
.catch(error=> {
console.error("AJAX error:", error);
alert("Error: " + error.message);
})
.finally(()=> {
readBtn.disabled=false;
readBtn.textContent=br_ajax_obj.strings.listen;
});
});
}else{
console.error("❌ Missing elements on page (check br-read-btn, br-language-select, br-audio)");
}});