PluginProbe ʕ •ᴥ•ʔ
GPTranslate – Multilingual AI Translation Agent for WordPress: Translate Your Site with AI / 2.17
GPTranslate – Multilingual AI Translation Agent for WordPress: Translate Your Site with AI v2.17
2.34.2 2.34.1 2.34 2.33.10 2.33.9 2.33.8 2.33.7 2.33.6 2.33.5 2.33.2 2.32.10 2.33 2.33.1 2.32.6 2.32.7 2.32.8 trunk 2.10.3 2.10.4 2.10.5 2.10.6 2.11 2.12 2.13 2.14 2.14.1 2.15 2.15.1 2.16.1 2.16.2 2.17 2.18 2.18.1 2.18.2 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.25.1 2.25.2 2.26 2.27 2.27.10 2.27.5 2.28 2.28.1 2.29 2.30 2.31 2.32 2.32.5
gptranslate / assets / js / crawler.js
gptranslate / assets / js Last commit date
jsonrepair 9 months ago admin.js 9 months ago crawler.js 9 months ago dom.min.js 9 months ago gptranslate.js 9 months ago index.html 9 months ago responsivevoice.js 9 months ago select2.min.js 9 months ago toast.min.js 9 months ago
crawler.js
10 lines
1 /**
2 * GPTranslate Crawler - User-friendly version
3 *
4 * @package GPTRANSLATE::CRAWLER::administrator::components::plg_gptranslate
5 * @subpackage js
6 * @author JExtensions Store
7 * @copyright (C) 2025 JExtensions Store
8 * @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
9 */
10 var t,a;t=jQuery,a=function(){var a=gptranslateDefaultLanguage,e=null,n=new Set,r=[],o=null,i=[],s=0,l=!1,c=!1,u="idle",d=null,p=[],g=[],_=!1,f=function(){t("input.button-crawler").on("click.crawler",(function(){t("#crawler_dialog").remove();let a=gptranslateBaseCrawlerHome;1==gptranslateRewriteLanguageUrl&&0==gptranslateOmitPrefixOriginalLanguage&&(a+=gptranslateDefaultLanguage+"/"),m(a)})),t(document).on("click.crawler","#start_analysis",(function(){if(t("#link_to_analyze").removeClass("error"),!(e=t("#link_to_analyze").val()))return t("#link_to_analyze").addClass("error").focus(),!1;t("span.crawler-cogicon").addClass("running"),t("span.crawler-labelicon-start",this).text(PLG_GPTRANSLATE_CRAWLER_STARTED),t("#crawler_status").text(PLG_GPTRANSLATE_CRAWLER_CURRENT_STATUS_RUNNING).addClass("running"),t("#start_analysis").hide(),t("#stop_analysis").show(),E(e)})),t(document).on("click.crawler","#stop_analysis",(function(){_=!0,A("Arresto crawler in corso..."),v()})),t(document).on("keyup.crawler","#link_to_analyze",(function(){t(this).removeClass("error")})),t(document).on("click.crawler","label.closedialog",(function(){t(this).parents("#crawler_dialog").remove(),I(!0)})),t(document).on("click.crawler","#linkopener",(function(){var a=t("#link_to_analyze").val();window.open(a,"_blank")}))},m=function(a){var e='<div id="crawler_dialog" class="card card-primary"><div class="card-header"><h3 class="card-title">'+PLG_GPTRANSLATE_CRAWLER_DIALOG_TITLE+'</h3><label class="closedialog">✖</label></div><div class="card-body card-block"><label class="badge bg-primary analysis-labels" id="linkopener">'+PLG_GPTRANSLATE_CRAWLER_TARGET_LINK+'</label><input id="link_to_analyze" class="analysis-input" autocomplete="off" type="text" value="'+a+'" placeholder="'+PLG_GPTRANSLATE_CRAWLER_CHOOSE_TARGET_LINK+'"/><button id="start_analysis" class="btn btn-success active" title="'+PLG_GPTRANSLATE_CRAWLER_START_DESC+'"><span class="crawler-cogicon"></span><span class="crawler-labelicon-start">'+PLG_GPTRANSLATE_CRAWLER_START+'</span></button><button id="stop_analysis" class="btn btn-danger" style="display: none;" title="'+PLG_GPTRANSLATE_CRAWLER_STOP_DESC+'"><span class="crawler-cogicon"></span><span class="crawler-labelicon-stop"> '+PLG_GPTRANSLATE_CRAWLER_STOP+'</span></button><div class="flexbox-container-analysis"><div id="crawler_container"><div id="url_list" style="max-height: 300px; overflow-y: auto; border: 1px solid #ddd; padding: 15px; margin-top: 10px; background: #ffffff; border-radius: 5px;"><div class="text-muted text-center p-3">'+PLG_GPTRANSLATE_CRAWLER_NO_URLS_PROCESSED+'</div></div></div></div></div><div class="card-footer"><span class="badge bg-warning label-with-badge">'+PLG_GPTRANSLATE_CRAWLER_FOOTER+'<span id="crawler_status" class="badge pull-right">'+PLG_GPTRANSLATE_CRAWLER_CURRENT_STATUS_IDLE+'</span></span><form method="post" action="'+gptranslateBaseCrawlerHome+'wp-admin/admin-post.php" class="export-xml-sitemap"><input type="hidden" id="gptranslate_export_xml_sitemap" name="gptranslate_export_xml_sitemap" value="b62d18a19b"><input type="hidden" name="action" value="gptranslate_export_xml_sitemap"><input type="submit" class="button button-primary" value="'+PLG_GPTRANSLATE_CRAWLER_EXPORT_XMLSITEMAP+'"></form></div></div>';t("body").append(e);const n=document.createElement("div");n.className="custom-tooltip",document.body.appendChild(n),document.querySelectorAll("#start_analysis, #stop_analysis").forEach((function(t){const a=t.getAttribute("title");t.addEventListener("mouseenter",(function(e){t.setAttribute("data-original-title",a),t.removeAttribute("title"),n.textContent=a,n.style.opacity="1"})),t.addEventListener("mousemove",(function(t){n.style.top=t.pageY+10+"px",n.style.left=t.pageX+10+"px"})),t.addEventListener("mouseleave",(function(){n.style.opacity="0",t.setAttribute("title",t.getAttribute("data-original-title"))}))}))},A=function(a){t("#crawler_status").text(a)},R=function(t,a,e){var n=g.find((a=>a.url===t));n&&(n.status=a,n.currentLang=e,T())},T=function(){var a="";0===g.length?a='<div class="text-muted text-center p-3">'+PLG_GPTRANSLATE_CRAWLER_NO_URLS_PROCESSED+"</div>":g.forEach((function(t){var e="completed"===t.status?"text-success":"error"===t.status?"text-danger":"text-primary",n="completed"===t.status?"":"error"===t.status?"":'<span class="crawler-url-spinner">⟳</span>',r="";t.currentLang?r=" ("+t.currentLang+")":t.languages&&t.languages.length>0&&(r=" ["+t.languages.join(", ")+"]"),a+='<div style="padding: 8px 0; border-bottom: 1px solid #eee;"><div class="'+e+'" style="font-weight: 500;">'+n+" "+t.url+r+'</div><small class="text-muted">'+t.timestamp+"</small></div>"})),t("#url_list").html(a)},L=function(t,a){var e=setTimeout((function(){_||t()}),a);return p.push(e),e},h=function(){p.forEach((function(t){clearTimeout(t)})),p=[],d&&(clearTimeout(d),d=null)},E=function(a){a?(_=!1,A(PLG_GPTRANSLATE_CRAWLER_STARTING),n.clear(),r=[a],g=[],o&&t(o).remove(),o=t("<iframe>",{id:"crawler_iframe",style:"display: none;"}).appendTo("#crawler_container")[0],w()):I()},v=function(){_=!0,h(),o&&(o.onload=null,o.onerror=null,o.src="about:blank"),l=!1,c=!1,u="idle",A("Crawler fermato"),I(),t("#url_list").html('<div class="text-muted text-center p-3">'+PLG_GPTRANSLATE_CRAWLER_NO_URLS_PROCESSED+"</div>")},w=function(){if(_)return;if(0==gptVersionNumeric&&n.size>=10)return A(PLG_GPTRANSLATE_CRAWLER_COMPLETED),void setTimeout((function(){I()}),1e3);if(0===r.length)return A(PLG_GPTRANSLATE_CRAWLER_COMPLETED),void setTimeout((function(){I()}),1e3);if(l)return;var a=r.shift();if(n.has(a))return void w();t("div.card-footer span.label-with-badge").removeClass("bg-success").addClass("bg-warning"),n.add(a),l=!0,s=0,i=[],u="idle",c=!1;const e=a.substring(a.lastIndexOf("/")+1)||"/";A(PLG_GPTRANSLATE_CRAWLER_LOADING+e),function(t,a,e){var n={url:t,status:a,languages:e||[],timestamp:(new Date).toLocaleTimeString([],{hour12:!1})};g.unshift(n),T()}(a,"processing");try{o&&o.contentWindow&&o.contentWindow.sessionStorage&&o.contentWindow.sessionStorage.removeItem("googtrans")}catch(t){}o.src=a,o.onload=function(){_||y()},o.onerror=function(){_||(R(a,"error"),l=!1,w())}},y=function(){if(!_)try{var t=o.contentDocument||o.contentWindow.document,a=o.contentWindow;if(!t||!a){var e=Array.from(n).slice(-1)[0];return R(e,"error"),l=!1,void w()}try{a.sessionStorage&&a.sessionStorage.removeItem("googtrans")}catch(t){}L((function(){try{if(N(a),b(t),0===i.length){var e=Array.from(n).slice(-1)[0];return R(e,"completed"),S(t),l=!1,void w()}S(t),e=Array.from(n).slice(-1)[0],R(e,"processing",""),P()}catch(t){e=Array.from(n).slice(-1)[0],R(e,"error"),l=!1,w()}}),2e3)}catch(t){e=Array.from(n).slice(-1)[0],R(e,"error"),l=!1,w()}},b=function(e){try{var r=["#gpt_float_wrapper a.nturl[data-gpt-lang]","#gpt_float_wrapper a[data-gpt-lang]",".gpt_float_wrapper a.nturl[data-gpt-lang]",".gpt_float_wrapper a[data-gpt-lang]",'[id*="gpt"] a[data-gpt-lang]',".gptranslate a[data-gpt-lang]"];i=[];for(var o=0;o<r.length&&0===i.length;o++)e.querySelectorAll(r[o]).forEach((function(t){var e=t.getAttribute("data-gpt-lang");e&&-1===i.indexOf(e)&&e!=a&&i.push(e)}));if(!(i.length>0))return _=!0,I(!0),t("span.crawler-cogicon").removeClass("running"),t("span.crawler-labelicon-start").text(PLG_GPTRANSLATE_CRAWLER_START),t("span.label-with-badge").text(PLG_GPTRANSLATE_CRAWLER_CURRENT_STATUS_NOLANG_SELECTOR),t("#url_list,#crawler_status").remove(),t("#start_analysis").show(),t("#stop_analysis").hide(),setTimeout((function(){t("label.closedialog").trigger("click")}),3500),!1;var s=Array.from(n).slice(-1)[0],l=g.find((t=>t.url===s));l&&(l.languages=i,T())}catch(t){}},S=function(t){try{var a=t.querySelectorAll("a[href]"),e=gptranslateCrawlerExclusions?gptranslateCrawlerExclusions.split(",").map((function(t){return t.trim()})):[];a.forEach((function(t){var a=t.getAttribute("href");if(a){var o=new URL(a,window.location.origin).href,i=decodeURI(o.split("?")[0].split("#")[0]),s=["/wp-content/","/wp-includes/","/feed/","/rss/","/atom/","/xmlrpc.php","/robots.txt","/sitemap","?replytocom="].some((t=>i.includes(t)))||e.some((t=>i.includes(t)));a.startsWith("javascript:")||a.startsWith("mailto:")||a.startsWith("tel:")||a.startsWith("#")||"javascript:void(0)"===a||a.includes("wp-admin")||a.includes("wp-login")||a.includes("/admin")||i===window.location.origin||i===window.location.origin+"/"||""===i||!i.startsWith(window.location.origin)||n.has(i)||i.match(/\.(jpg|jpeg|png|gif|pdf|doc|docx|zip|css|js|php|xml|txt|ico)$/i)||s||n.has(i)||r.includes(i)||r.push(i)}}))}catch(t){}},P=function(){_||(s=0,C())},C=function(){if(!_){if(s>=i.length){var a=Array.from(n).slice(-1)[0];return R(a,"completed"),A(PLG_GPTRANSLATE_CRAWLER_PAGE_COMPLETED),t("div.card-footer span.label-with-badge").removeClass("bg-warning").addClass("bg-success"),l=!1,void L((function(){w()}),1e3)}if(!c){var e=i[s];a=Array.from(n).slice(-1)[0],A(PLG_GPTRANSLATE_CRAWLER_TRANSLATING+e+" ("+(s+1)+"/"+i.length+")"),R(a,"processing",e);var r=o.contentDocument||o.contentWindow.document,p=G(r,e);if(p){c=!0,u="checking",d=L((function(){O()}),1e3*gptranslateCrawlerTimeout),x(r);try{p.click()}catch(t){O()}}else D()}}},G=function(t,a){try{for(var e=['#gpt_float_wrapper a.nturl[data-gpt-lang="'+a+'"]','#gpt_float_wrapper a[data-gpt-lang="'+a+'"]','.gpt_float_wrapper a.nturl[data-gpt-lang="'+a+'"]','.gpt_float_wrapper a[data-gpt-lang="'+a+'"]','[id*="gpt"] a[data-gpt-lang="'+a+'"]','.gptranslate a[data-gpt-lang="'+a+'"]'],n=0;n<e.length;n++){var r=t.querySelector(e[n]);if(r)return r}return null}catch(t){return null}},x=function(t){try{t.querySelectorAll("img[data-gt-lazy-src]:not([src])").forEach((function(t){t.setAttribute("src",t.getAttribute("data-gt-lazy-src"))}))}catch(t){}},N=function(t){if(t&&t.fetch&&!t.fetch.__gpIntercepted){var a=t.fetch;t.fetch=function(){var e=arguments[0],n=arguments[1]||{};return a.apply(this,arguments).then((function(a){try{if("string"==typeof e&&-1!==e.indexOf("wp-json/gptranslate/v1/request")&&"POST"===(n.method||"GET").toUpperCase()&&c&&n.body){var r="string"==typeof n.body,o=!1;try{(n.body instanceof t.FormData||n.body&&"function"==typeof n.body.append&&n.body.constructor&&"FormData"===n.body.constructor.name||-1!==(n.headers&&(n.headers["Content-Type"]||n.headers["content-type"])||"").indexOf("multipart/form-data"))&&(o=!0)}catch(t){}if(r)try{"gettranslations"===JSON.parse(n.body).task&&a.clone().json().then((function(t){t&&!0===t.result?_||W(!0):u="translating"})).catch((function(t){}))}catch(t){}else o&&"translating"===u&&a.clone().json().then((function(t){_||W(!0)})).catch((function(t){_||W(!1)}))}}catch(t){}return a})).catch((function(){}))},t.fetch.__gpIntercepted=!0}},W=function(t){_||c&&(d&&(clearTimeout(d),d=null),c=!1,u="idle",k((function(){_||D()})))},O=function(){_||W(!1)},k=function(t){if(!_)try{var e=o.contentWindow,n=o.contentDocument||o.contentWindow.document;if(!e||!n)return void t();e.sessionStorage&&e.sessionStorage.removeItem("googtrans");var r=G(n,a);if(r)try{r.click(),L((function(){t()}),1e3)}catch(a){t()}else t()}catch(a){t()}},D=function(){_||(s++,L((function(){C()}),500))},I=function(a){h(),l=!1,c=!1,u="idle",_=!1,a||(t("span.crawler-cogicon").removeClass("running"),t("span.crawler-labelicon-start").text(PLG_GPTRANSLATE_CRAWLER_START),t("#crawler_status").text(PLG_GPTRANSLATE_CRAWLER_CURRENT_STATUS_IDLE).removeClass("running"),t("#start_analysis").show(),t("#stop_analysis").hide(),t("#crawler_status").text(PLG_GPTRANSLATE_CRAWLER_REFRESHING),t("span.label-with-badge").removeClass("bg-warning").addClass("bg-success"),setTimeout((function(){window.location.reload()}),1500))};(function(){f.call(this)}).call(this)},t((function(){window.GPTranslateCrawler=new a}));