(function () {
var scriptName = "embed.js"; //name of this script, used to get reference to own tag
var jQuery; //noconflict reference to jquery
var jqueryPath = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.1/jquery.min.js";
var jqueryVersion = "1.12.1";
var scriptTag; //reference to the html script tag
/******** Get reference to self (scriptTag) *********/
var allScripts = document.getElementsByTagName('script');
var targetScripts = [];
for (var i in allScripts) {
var name = allScripts[i].src
if(name && name.indexOf(scriptName) > 0)
targetScripts.push(allScripts[i]);
}
scriptTag = targetScripts[targetScripts.length - 1];
audiomeIsLoaging = false;
/******** helper function to load external scripts *********/
function loadScript(src, onLoad) {
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src", src);
if (script_tag.readyState) {
script_tag.onreadystatechange = function () {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
onLoad();
}
};
} else {
script_tag.onload = onLoad;
}
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}
/******** helper function to load external css *********/
function loadCss(href) {
var link_tag = document.createElement('link');
link_tag.setAttribute("type", "text/css");
link_tag.setAttribute("rel", "stylesheet");
link_tag.setAttribute("href", href);
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(link_tag);
}
/******** load jquery into 'jQuery' variable then call main ********/
if (window.jQuery === undefined || window.jQuery.fn.jquery !== jqueryVersion) {
loadScript(jqueryPath, initjQuery);
} else {
initjQuery();
}
function initjQuery() {
jQuery = window.jQuery.noConflict(true);
main();
}
function audiomeConsoleLog(strlog) {
if (audiomeLog == true) {
//console.log(strlog);
}
}
function readMeAudioEnd(){
// console.log("--> readMeAudioEnd INIT <--");
jQuery("#readmeerror").append("
ReadMeAudioEnd ")
audiomePlayCount = audiomePlayCount + 1;
if (audiomePlayCount <= audiomeMp3List.length - 1) {
//console.log('Next file');
audiomeAudioSeek = 0
audiomeSeekPercent = 0
playAudioTTS(audiomeMp3List[audiomePlayCount])
} else {
rewindAudioTTS();
audiomeConsoleLog('Finished! Playlist');
}
}
function playAudioTTS(mp3) {
// console.log("--> playAudioTTS INIT <--");
jQuery("#readmeerror").append("
playAudioTTS ")
FireAnalytics("PlayAudio");
FireAnalyticsClienteReadme("PlayAudio");
jQuery("#audiomebtn-loader").hide();
if (audiomeSeekPercent > 0) {
audioMeProgress = audiomeSeekPercent * audiomeTotalTime;
audiomePlayCount = 0;
audiomeAudioSeek = audioMeProgress;
var audiomeAcumulador = 0
for ( i = 0 ; i < audiomeMp3List.length ; i++ ) {
audiomeAcumulador = audiomeAcumulador + audiomeMp3List[i].TotalSeconds
if (audiomeAcumulador < audioMeProgress) {
audiomePlayCount = i + 1;
audiomeAudioSeek = audioMeProgress - audiomeAcumulador
}
}
}
// console.log("--> PLAY <--");
// console.log("--> src --> " + audiomeMp3List[audiomePlayCount]);
// console.log("--> PlayCount --> " + audiomePlayCount);
// console.log("--> Seek --> " + audiomeAudioSeek);
readmeTTSAudio.src = audiomeMp3List[audiomePlayCount].url + "#t=" + audiomeAudioSeek
//readmeTTSAudio.src = "http://www.readme.com/file.mp3";
// console.log(" --> SRCLOAD ok");
var playPromise = readmeTTSAudio.play();
if (playPromise !== undefined) {
playPromise.then(_ => {
readmeTTSAudio.playbackRate = readmeAudioSpeed
// Automatic playback started!
// Show playing UI.
// console.log("automatic play started");
})
.catch(error => {
// Auto-play was prevented
// Show paused UI.
audiomeErrorCount = audiomeErrorCount + 1;
// console.log("UPS, automatic play ERROR");
FireAnalytics("playPromise Error");
if (audiomeErrorCount < 6) {
// console.log("UPS, automatic play ERROR - TRY AGAIN " + audiomeErrorCount);
FireAnalytics("playPromise Error retry - " + audiomeErrorCount);
playAudioTTS(audiomeMp3List[audiomePlayCount]);
} else {
// console.log("UPS, automatic play ERROR - DIE");
FireAnalytics("playPromise Error DIE - ");
audiomeLoadAudio = false
audiomeIsLoaging = false
audiomeErrorCount = 0;
rewindAudioTTS();
}
});
}
FireAnalyticsClienteReadme("PlayAudio");
}
function playSponsoredAudioTTS(){
readmeTTSAudioSponsored.src = audiomeSponsoredAudio.SponsorFileName
// console.log(" --> SPONSOR SRCLOAD ok");
var playPromise = readmeTTSAudioSponsored.play();
if (playPromise !== undefined) {
playPromise.then(_ => {
// Automatic playback started!
// Show playing UI.
// console.log("automatic SPONSOR play started");
})
.catch(error => {
// Auto-play was prevented
// Show paused UI.
audiomeSponsorErrorCount = audiomeSponsorErrorCount + 1;
// console.log("UPS, automatic SPONSOR play ERROR");
FireAnalytics("playPromise SPONSOR Error");
if (audiomeSponsorErrorCount < 3) {
// console.log("UPS, automatic SPONSOR play ERROR - TRY AGAIN " + audiomeSponsorErrorCount);
FireAnalytics("playPromise SPONSOR Error retry - " + audiomeSponsorErrorCount);
playSponsoredAudioTTS();
} else {
// console.log("UPS, automatic SPONSOR play ERROR - DIE");
FireAnalytics("playPromise SPONSOR Error DIE - ");
playAudioTTS(audiomeMp3List[audiomePlayCount]);
}
});
}
}
function playSponsoredSpotTTS(){
//readmeTTSSpotSponsored.src = "" + "http://localhost:27080/img/" + audiomeSponsoredSpot.banerKey
readmeTTSSpotSponsored.src = audiomeSponsoredSpot.SponsorFileName
// console.log(" --> SPONSOR SRCLOAD ok");
var playPromise = readmeTTSSpotSponsored.play();
if (playPromise !== undefined) {
playPromise.then(_ => {
// Automatic playback started!
// Show playing UI.
// console.log("automatic SPONSOR SPOT play started");
})
.catch(error => {
// Auto-play was prevented
// Show paused UI.
audiomeSpotErrorCount = audiomeSpotErrorCount + 1;
// console.log("UPS, automatic SPONSOR SPOT play ERROR");
FireAnalytics("playPromise SPONSOR SPOT Error");
if (audiomeSpotErrorCount < 3) {
// console.log("UPS, automatic SPONSOR play ERROR - TRY AGAIN " + audiomeSpotErrorCount);
FireAnalytics("playPromise SPONSOR Error retry - " + audiomeSpotErrorCount);
playSponsoredSpotTTS();
} else {
// console.log("UPS, automatic SPONSOR play ERROR - DIE");
FireAnalytics("playPromise SPONSOR Error DIE - ");
playAudioTTS(audiomeMp3List[audiomePlayCount]);
}
});
}
}
function pauseAudioTTS() {
console.log("--> pauseAudioTTS INIT <--");
jQuery("#audiomeProgressBarAlpha").stop();
readmeTTSAudio.pause();
audiomeStatus = "pause"
jQuery("#audiomebtn-loader").hide();
jQuery("#audiomebtn-pause").hide();
jQuery("#audiomebtn-play").show();
//audiomeAudioSeek = audiomeHowlerList[audiomePlayCount].seek();
audiomeAudioSeek = readmeTTSAudio.currentTime;
// console.log('audiomeAudioSeek - ' + audiomeAudioSeek)
// console.log('audiomePlayCount - ' + audiomePlayCount)
jQuery("#audiomebtn-loader").hide();
setTimeout(function(){
audiomeIsLoaging = false;
}, 500);
}
function rewindAudioTTS() {
// console.log("--> rewindAudioTTS INIT <--");
FireAnalytics("EndAudio");
jQuery("#audiomeProgressBarAlpha").stop();
audiomePlayCount = 0
audiomeAudioSeek = 0
readmeTTSAudio.pause;
audiomeStatus = "pause";
jQuery("#audiomebtn-loader").hide();
jQuery("#audiomebtn-pause").hide();
jQuery("#audiomebtn-play").show();
}
function audioMeCalculatetotalTime() {
// console.log("--> audioMeCalculatetotalTime INIT <--");
var audioCount = 0
contaAudios = audiomeMp3List.length;
contaLoaded = 0;
audiomeMp3List.forEach(function(element) {
var audiotimmer = new Audio();
audiotimmer.src = element.url;
audiotimmer.addEventListener('loadedmetadata', (event) => {
var source = audiotimmer.src;
// console.log("source -> " + source)
var TotalSeconds = parseInt(audiotimmer.duration);
audiomeTotalTime = audiomeTotalTime + TotalSeconds
// console.log( "Seconds - " + TotalSeconds);
// console.log( "audiomeTotalTime - " + audiomeTotalTime);
audioCount = audioCount + 1
audiomeMp3List.forEach(function(item) {
if (item.url == audiotimmer.src) {
item.TotalSeconds = audiotimmer.duration;
}
});
if (audioCount >= audiomeMp3List.length){
var minutes = parseInt(audiomeTotalTime / 60, 10);
var seconds = parseInt(audiomeTotalTime % 60);
if (minutes < 10 ) {minutes = "0" + minutes}
if (seconds < 10 ) {seconds = "0" + seconds}
audiomeTotalTimeDisplay = minutes + ":" + seconds ;
// console.log( "TotalTime display - " + audiomeTotalTimeDisplay);
audiomeMp3List.forEach(function(x) {
// console.log("audiomeMp3List.url " + x.url)
// console.log("audiomeMp3List.TotalSeconds " + x.TotalSeconds)
});
}
contaLoaded = contaLoaded + 1;
if(contaLoaded >= contaAudios && contaAudios > 0) // Significa que termonou o load dos audios
{
if (audiomeSponsoredBannerFlag == "ON") {
// mostra o banner patrocinado
console.log("Show Sponsored Banner")
var img = new Image();
img.src = audiomeSponsoredBanner.SponsorFileName;
img.id = "audiomeSponsoredImage"
var link = document.createElement("a");
link.id = "audiomeSponsoredLink"; // Create a
element
link.href = audiomeSponsoredBanner.bannerClick
link.target = "_blank"
document.getElementById('audiome-container').appendChild(link);
document.getElementById('audiomeSponsoredLink').appendChild(img);
jQuery("#audiomeSponsoredLink").fadeIn();
document.getElementById("audiomeSponsoredLink").addEventListener("click", audiomeSponsorClick);
}
if ( audiomeSponsoredAudioFlag == "ON") {
playSponsoredAudioTTS();
} else if ( audiomeSponsoredSpotFlag == "ON") {
playSponsoredSpotTTS()
} else {
playAudioTTS(audiomeMp3List[0]);
}
// audiomeHowlerList[0].play();
}
},0);
});
}
function AddPauseToContent(content, classname, tagname){
if (strip(tagname) != "") {
var x = document.getElementsByTagName(tagname);
////console.log("AddPauseToContent -> TAG " + tagname)
}
if (strip(classname) != "") {
var x = document.getElementsByClassName(classname);
////console.log("AddPauseToContent -> CLASS " + classname)
}
var i;
for (i = 0; i < x.length; i++) {
text = x[i].textContent.trim()
//console.log ("AddPauseToContent -> " + classname + tagname + " -> " + text)
if (strip(text) != ""){
var replace = strip(text);
var re = new RegExp(replace,"g");
content = content.replace( re , text + '. ');
//console.log ("content -> " + classname + tagname + " -> " + content)
}
}
return content
}
function getHostName(fullurl){
var url = fullurl;
var hostname = (new URL(url)).hostname;
// console.log("hostname -> " + hostname)
return hostname;
}
function getTextElementByClass(classname){
var textbyclass = ""
var x = document.getElementsByClassName(classname);
var i;
for (i = 0; i < x.length; i++) {
textbyclass = x[i].textContent.trim() + " "
}
return textbyclass;
}
function getTextElementByTag(tagname) {
var element = document.querySelector(tagname);
if (element) {
return element.innerText;
} else {
return '';
}
}
function HideElementByClass(documentClone, classname){
var x = documentClone.getElementsByClassName(classname);
var i;
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
//console.log("HideElementByClass " + classname + " " + x[i].innerText)
}
return documentClone;
}
function HideElementByTagName(documentClone, tagname){
var x = documentClone.getElementsByTagName(tagname);
var i;
for (i = 0; i < x.length; i++) {
//console.log("hide tagname" + tagname)
x[i].style.display = "none";
}
return documentClone;
}
function HideElementByID(documentClone, idname){
// console.log(" HideElementByID -> " + idname)
var x = documentClone.getElementById(idname);
if (x != null ) {
x.style.display = "none";
//console.log("HideElementByID " + idname + " " + x.innerText)
}
return documentClone;
}
const format = num => {
const n = String(num),
p = n.indexOf('.')
return n.replace(
/\d(?=(?:\d{3})+(?:\.|$))/g,
(m, i) => p < 0 || i < p ? `${m},` : m
)
}
function ReadabilityAjust(textIn){
textOut = textIn
textOut = textOut.replace(/\n{2,}/g, '. ');
textOut = textOut.replace(/\n/g, '. ');
textOut = textOut.replace(/\n|\s{2,}/g, ' ');
textOut = textOut.replace(/\. \./g, '. ');
textOut = textOut.replace(/\&/g, ' E ');
textOut = textOut.trim()
var str = textOut
var regex = /(\.)([ABCDEFGHIJKLMNOPQRSTUVXYZ])/g;
textOut = str.replace(regex, "$1 $2");
var str = textOut
var regex = /(\!)([ABCDEFGHIJKLMNOPQRSTUVXYZ])/g;
textOut = str.replace(regex, "$1 $2");
return textOut;
}
function strip(html)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = html;
return tmp.textContent||tmp.innerText;
}
function clearString(mystring) {
return mystring.replace(/&/g, "&").replace(/>/g, ">").replace(/ LoadReadability INIT <--");
var documentClone = document.cloneNode(true);
// bloqueios padrao
documentClone = HideElementByID(documentClone, "audiome-container");
documentClone = HideElementByClass(documentClone, "twitter-tweet");
documentClone = HideElementByClass(documentClone, "instagram-media");
documentClone = HideElementByID(documentClone, "fb-root");
documentClone = HideElementByClass(documentClone, "OUTBRAIN");
documentClone = HideElementByID(documentClone, "taboola-below-article-thumbnails");
documentClone = HideElementByTagName(documentClone, "figure");
documentClone = HideElementByTagName(documentClone, "header");
documentClone = HideElementByTagName(documentClone, "figcaption");
documentClone = HideElementByTagName(documentClone, "button");
documentClone = HideElementByTagName(documentClone, "footer");
// bloqueios do cliente
documentClone = HideElementByClass(documentClone, "accept-cookies-container");
documentClone = HideElementByClass(documentClone, "ad-wrapper");
documentClone = HideElementByClass(documentClone, "newsletter-form");
documentClone = HideElementByClass(documentClone, "hidden-print");
article = new Readability(documentClone).parse();
articlecontent = article.content.replace(/
/g, ".
");
articlecontent = articlecontent.replace(/<\/li>/g, ". ");
articlecontent = articlecontent.replace(/<\/h2>/g, ". ");
articlecontent = articlecontent.replace(/<\/h3>/g, ". ");
articlecontent = articlecontent.replace(/<\/p>/g, ".
element divReadMe.class = "audiomeref"; // Create a
element divReadMe.innerHTML = "readme.ai"; jQuery("#audiome-ref").html("www.readme.ai"); //jQuery("#audiome-ref").html(divReadMe); //document.getElementById("audiomelink").addEventListener("click", audiomelinkClick); if (audiomeSponsoredSpotFlag == "ON") { playSponsoredSpotTTS(); } else { playAudioTTS(audiomeMp3List[audiomePlayCount]); } }, 500); }); readmeTTSAudioSponsored.addEventListener('playing', function(){ // console.log("Sponsored audio playing"); FireAnalyticsClienteReadme("PlayAudioPatrocinado"); FireAnalytics("PlayAudioPatrocinado"); jQuery("#audiome-ref").html("seu áudio iniciará após a publicidade"); }); readmeTTSSpotSponsored.addEventListener('ended', function(){ // console.log("Sponsored audio end"); setTimeout(function(){ jQuery("#audiome-ref").html("www.readme.ai"); //jQuery("#audiome-ref").html(divReadMe); //document.getElementById("audiomelink").addEventListener("click", audiomelinkClick); playAudioTTS(audiomeMp3List[audiomePlayCount]); }, 500); }); readmeTTSSpotSponsored.addEventListener('playing', function(){ // console.log("Sponsored audio playing"); FireAnalyticsClienteReadme("PlaySpotPatrocinado"); FireAnalytics("PlaySpotPatrocinado"); jQuery("#audiome-ref").html("seu áudio iniciará após a publicidade"); }); // verifica o parametro de testes var readmebuild = getP('readmebuild') if (readmebuild === undefined) {readmebuild = "OFF";} if (readmebuild == "ON") { // readmebuild converte faz o build do tts de forma antecipada setTimeout(function(){ audioMeLoadTTS(); }, 3000); } //FireAnalytics("PageView"); //FireAnalyticsSemParar("PageView"); jQuery.getJSON(jsonp_url, function(result) { // console.log('SM window width -> ' + jQuery(window).width()); // var SM_window = jQuery(window).width(); if (result.site.Main == "ON") { var localurl = window.location.pathname jQuery('#audiome-container').html(result.html); audiomeVoiceName = result.site.Voice; console.log("audiomeVoiceName -> " + audiomeVoiceName) // loadScript( SM_RemoteUrl + "/static/js/feather.min.js" , function() { feather.replace()}); audioMeFillProgressBar(); audiomeClearTitle = result.site.ClearTitle document.getElementById("audiome-button").addEventListener("click", audioMePlayClick); document.getElementById("audiomeouca").addEventListener("click", audioMePlayClick); document.getElementById("audiomeTouchBar").addEventListener("click", audioMeTouchBarClick); document.getElementById("audiomelink").addEventListener("click", audiomelinkClick); document.getElementById("audiomelogo").addEventListener("click", audiomelinkClick); document.getElementById("audiome-lead-button").addEventListener("click", audiomeLeadSubmit); document.getElementById("readpespeed").addEventListener("click", readpespeedClick); FireAnalytics("LoadPlayer"); // FireAnalyticsClienteReadme("LoadPlayer"); var ListSponsorBanner = [] var ListSponsorAudio = [] var ListSponsorSpot = [] result.Sponsor.forEach(function(current, i) { console.log("sponsor forEach ") var tipo = result.Sponsor[i].Tipo; var sponsorRule = result.Sponsor[i].SponsorAudioRule; var localURL = window.location.pathname; if (localurl.indexOf(sponsorRule) != -1 || sponsorRule == "*"){ if (tipo == "banner") { audiomeSponsoredBanner.tipo = result.Sponsor[i].Tipo audiomeSponsoredBanner.banerKey = result.Sponsor[i].banerKey audiomeSponsoredBanner.SponsorFileName = result.Sponsor[i].SponsorFileName audiomeSponsoredBanner.SponsorAudioRule = result.Sponsor[i].SponsorAudioRule audiomeSponsoredBanner.bannerClick = result.Sponsor[i].bannerClick audiomeSponsoredBannerFlag = "ON" // flag para controle dos banners patrocinados // console.log("sponsor banner add + " + i) } if (tipo == "audio") { audiomeSponsoredAudio.tipo = result.Sponsor[i].Tipo audiomeSponsoredAudio.SponsorFileName = result.Sponsor[i].SponsorFileName audiomeSponsoredAudio.SponsorAudioRule = result.Sponsor[i].SponsorAudioRule audiomeSponsoredAudioFlag = "ON" // flag para controle dos audios patrocinados // console.log("sponsor audio add + " + i) } if (tipo == "spot") { SpotItem = {} SpotItem.tipo = result.Sponsor[i].Tipo SpotItem.SponsorFileName = result.Sponsor[i].SponsorFileName SpotItem.SponsorAudioRule = result.Sponsor[i].SponsorAudioRule SpotItem.banerKey = result.Sponsor[i].banerKey ListSponsorSpot.push(SpotItem) console.log("sponsor spot add + " + i) } } }); if (ListSponsorSpot.length > 0) { console.log("ListSponsorSpot -> " + ListSponsorSpot.length) const randomSpot = Math.floor(Math.random() * ListSponsorSpot.length); console.log("randomSpot -> " + randomSpot) audiomeSponsoredSpot.tipo = result.Sponsor[randomSpot].Tipo audiomeSponsoredSpot.SponsorFileName = result.Sponsor[randomSpot].SponsorFileName audiomeSponsoredSpot.SponsorAudioRule = result.Sponsor[randomSpot].SponsorAudioRule audiomeSponsoredSpot.banerKey = result.Sponsor[randomSpot].banerKey audiomeSponsoredSpotFlag = "ON" // flag para controle dos audios patrocinados } // NAO TOCA PUBLICIDADE QUANDO O CONTEUDO FOR DA REVISTA if (localurl.indexOf('/revista/') != -1) { audiomeSponsoredSpotFlag = "OFF" console.log("audiomeSponsoredSpotFlag OFF") } audiomeLeadConfig = result.site.LeadConfig; if (audiomeLeadConfig === null) {audiomeLeadConfig = "0"} } }); jQuery(document).ready(function ($) { }); } })();