jsonrepair
3 months ago
admin.js
3 months ago
crawler.js
3 months ago
dom.min.js
3 months ago
gptranslate.js
3 months ago
index.html
3 months ago
responsivevoice.js
3 months ago
select2.min.js
3 months ago
toast.min.js
3 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=[],s=null,l=[],i=0,o=!1,c=!1,u="idle",d=null,p=[],_=[],g=!1,f=!1,m=new Set,h=function(t){try{var a=t.replace(/\/+$/,""),e=new URL(a),n=e.pathname,r="";if(gptSubfolderInstallation)try{r=new URL(gptranslateBaseCrawlerHome).pathname.replace(/\/+$/,"")}catch(t){}var s=n;""!==r&&0===n.indexOf(r)&&(s=n.slice(r.length)||"/");var l=/^\/[a-z]{2}(-[a-z]{2})?(?=\/|$)/i;return l.test(s)&&(s=s.replace(l,"")||"/"),e.origin+r+s}catch(a){return t.replace(/\/+$/,"")}},A=function(){t("input.button-crawler").on("click.crawler",(function(){t("#crawler_dialog").remove();let a=gptranslateBaseCrawlerHome;1==gptranslateRewriteLanguageUrl&&0==gptranslateOmitPrefixOriginalLanguage&&(a+=gptranslateDefaultLanguage+"/"),v(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(),t("#crawl_single_url_label").hide(),t("#crawl_batch_label").hide(),L().then((function(){E(e)}))})),t(document).on("click.crawler","#stop_analysis",(function(){g=!0,R("Arresto crawler in corso..."),S()})),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(),B(!0)})),t(document).on("click.crawler","#linkopener",(function(){var a=t("#link_to_analyze").val();window.open(a,"_blank")})),t(document).on("change.crawler","#crawl_batch_urls",(function(){t("#batch_links_section").toggle(this.checked),this.checked&&t("#crawl_single_url").prop("checked",!0)}))},v=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><label id="crawl_single_url_label"><input type="checkbox" id="crawl_single_url"><span>'+PLG_GPTRANSLATE_CRAWLER_SINGLE_URL_OPTION+'</span></label><label id="crawl_batch_label"><input type="checkbox" id="crawl_batch_urls"><span>'+PLG_GPTRANSLATE_CRAWLER_BATCH_URLS_OPTION+'</span></label><div id="batch_links_section" style="display:none;"><textarea id="batch_links_input" rows="5" placeholder="'+PLG_GPTRANSLATE_CRAWLER_BATCH_URLS_PLACEHOLDER+'"></textarea></div><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><div class="sitemap-actions-wrapper"><div class="sitemap-url-section"><label class="sitemap-url-label">'+PLG_GPTRANSLATE_CRAWLER_SITEMAP_URL_LABEL+'</label><div class="sitemap-url-input-group"><input type="text" id="sitemap_realtime_url" class="sitemap-url-input" value="'+gptranslateSitemapUrl+'" readonly /><button type="button" id="copy_sitemap_url" class="button button-secondary sitemap-copy-btn" title="Copy URL"><span class="dashicons dashicons-clipboard"></span></button><a href="'+gptranslateSitemapUrl+'" target="_blank" class="button button-secondary sitemap-open-btn" title="Open Sitemap"><span class="dashicons dashicons-external"></span></a></div></div><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></div>';t("body").append(e);const n=document.createElement("div");n.className="custom-tooltip",document.body.appendChild(n),t("#copy_sitemap_url").on("click",(function(){var a=document.getElementById("sitemap_realtime_url");a.select(),a.setSelectionRange(0,99999),navigator.clipboard.writeText(a.value).then((function(){var a=t("#copy_sitemap_url");a.find(".dashicons").removeClass("dashicons-clipboard").addClass("dashicons-yes"),a.addClass("sitemap-copied"),setTimeout((function(){a.find(".dashicons").removeClass("dashicons-yes").addClass("dashicons-clipboard"),a.removeClass("sitemap-copied")}),2e3)}))})),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"))}))}))},L=function(){return t.ajax({url:gptranslate_vars.ajaxurl,type:"POST",data:{action:"gptranslate_toggle_serverside",toggle_action:"check",nonce:gptranslate_vars.gptranslateNonce},dataType:"json",success:function(t){t.success&&t.data&&(f="1"===t.data.were_enabled)},error:function(t,a,e){}})},R=function(a){t("#crawler_status").text(a)},T=function(t,a,e){var n=_.find((a=>a.url===t));n&&(n.status=a,n.currentLang=e,b())},b=function(){var a="";0===_.length?a='<div class="text-muted text-center p-3">'+PLG_GPTRANSLATE_CRAWLER_NO_URLS_PROCESSED+"</div>":_.forEach((function(t){var e="completed"===t.status?"text-success":"error"===t.status?"text-danger":"skipped"===t.status?"text-muted":"text-primary",n="completed"===t.status?"✓":"error"===t.status?"✗":"skipped"===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)},w=function(t,a){var e=setTimeout((function(){g||t()}),a);return p.push(e),e},y=function(){p.forEach((function(t){clearTimeout(t)})),p=[],d&&(clearTimeout(d),d=null)},E=function(a){if(a){if(g=!1,R(PLG_GPTRANSLATE_CRAWLER_STARTING),n.clear(),m.clear(),t("#crawl_batch_urls").is(":checked")){var e=(t("#batch_links_input").val()||"").split("\n").map((function(t){return t.trim()})).filter(Boolean);r=e.length>0?e:[a]}else r=[a];_=[],s&&t(s).remove(),s=t("<iframe>",{id:"crawler_iframe",style:"display: none;"}).appendTo("#crawler_container")[0],gptranslateCrawlerSkipTranslated?t.ajax({url:gptranslate_vars.ajaxurl,type:"POST",data:{action:"gptranslate_get_translated_urls",nonce:gptranslate_vars.gptranslateNonce},dataType:"json",success:function(t){t.success&&t.data&&t.data.urls&&t.data.urls.forEach((function(t){var a=h(t);m.add(a),m.add(a+"/")})),C()},error:function(){C()}}):C()}else B()},S=function(){g=!0,y(),s&&(s.onload=null,s.onerror=null,s.src="about:blank"),o=!1,c=!1,u="idle",R("Crawler fermato"),B(),t("#url_list").html('<div class="text-muted text-center p-3">'+PLG_GPTRANSLATE_CRAWLER_NO_URLS_PROCESSED+"</div>")},C=function(){if(g)return;if(0==gptVersionNumeric&&n.size>=10)return R(PLG_GPTRANSLATE_CRAWLER_COMPLETED),void setTimeout((function(){B()}),1e3);if(0===r.length)return R(PLG_GPTRANSLATE_CRAWLER_COMPLETED),void setTimeout((function(){B()}),1e3);if(o)return;var a=r.shift();if(n.has(a))return void C();if(t("div.card-footer span.label-with-badge").removeClass("bg-success").addClass("bg-warning"),n.add(a),gptranslateCrawlerSkipTranslated){var e=h(a);if(m.has(e)||m.has(e+"/"))return t("#crawl_single_url").is(":checked")||t("#crawl_batch_urls").is(":checked")?void C():void fetch(a).then((function(t){return t.text()})).then((function(t){var e=(new DOMParser).parseFromString(t,"text/html"),n=e.createElement("base");n.href=a,e.head.prepend(n),x(e),C()})).catch((function(){C()}))}o=!0,i=0,l=[],u="idle",c=!1;const d=a.replace(/\/+$/,""),p=d.substring(d.lastIndexOf("/")+1)||"/";R(PLG_GPTRANSLATE_CRAWLER_LOADING+p),function(t,a,e){var n={url:t,status:a,languages:e||[],timestamp:(new Date).toLocaleTimeString([],{hour12:!1})};_.unshift(n),b()}(a,"processing");try{s&&s.contentWindow&&s.contentWindow.sessionStorage&&s.contentWindow.sessionStorage.removeItem("googtrans")}catch(t){}s.src=a,s.onload=function(){g||P()},s.onerror=function(){g||(T(a,"error"),o=!1,C())}},P=function(){if(!g)try{var t=s.contentDocument||s.contentWindow.document,a=s.contentWindow;if(!t||!a){var e=Array.from(n).slice(-1)[0];return T(e,"error"),o=!1,void C()}try{a.sessionStorage&&a.sessionStorage.removeItem("googtrans")}catch(t){}w((function(){try{if(I(a),G(t),0===l.length){var e=Array.from(n).slice(-1)[0];return T(e,"completed"),x(t),o=!1,void C()}x(t),e=Array.from(n).slice(-1)[0],T(e,"processing",""),N()}catch(t){e=Array.from(n).slice(-1)[0],T(e,"error"),o=!1,C()}}),2e3)}catch(t){e=Array.from(n).slice(-1)[0],T(e,"error"),o=!1,C()}},G=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]"];l=[];for(var s=0;s<r.length&&0===l.length;s++)e.querySelectorAll(r[s]).forEach((function(t){var e=t.getAttribute("data-gpt-lang");e&&-1===l.indexOf(e)&&e!=a&&l.push(e)}));if(!(l.length>0))return g=!0,B(!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 i=Array.from(n).slice(-1)[0],o=_.find((t=>t.url===i));o&&(o.languages=l,b())}catch(t){}},x=function(a){if(!t("#crawl_single_url").is(":checked"))try{var e=a.querySelectorAll("a[href]"),s=gptranslateCrawlerExclusions?gptranslateCrawlerExclusions.split(",").map((function(t){return t.trim()})):[];e.forEach((function(t){var a=t.getAttribute("href");if(a){var e=new URL(a,window.location.origin).href,l=decodeURI(e.split("?")[0].split("#")[0]);l.match(/\.[a-z]{2,4}$/i)||l.endsWith("/")||(l+="/");var i=["/wp-content/","/wp-includes/","/feed/","/rss/","/atom/","/xmlrpc.php","/robots.txt","/sitemap","?replytocom="].some((t=>l.includes(t)))||s.some((t=>l.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")||l===window.location.origin||l===window.location.origin+"/"||""===l||!l.startsWith(window.location.origin)||n.has(l)||l.match(/\.(jpg|jpeg|png|gif|pdf|doc|docx|zip|css|js|php|xml|txt|ico)$/i)||i||n.has(l)||r.includes(l)||r.push(l)}}))}catch(t){}},N=function(){g||(i=0,W())},W=function(){if(!g){if(i>=l.length){var a=Array.from(n).slice(-1)[0];return T(a,"completed"),R(PLG_GPTRANSLATE_CRAWLER_PAGE_COMPLETED),t("div.card-footer span.label-with-badge").removeClass("bg-warning").addClass("bg-success"),o=!1,void w((function(){C()}),1e3)}if(!c){var e=l[i];a=Array.from(n).slice(-1)[0],R(PLG_GPTRANSLATE_CRAWLER_TRANSLATING+e+" ("+(i+1)+"/"+l.length+")"),T(a,"processing",e);var r=s.contentDocument||s.contentWindow.document,p=k(r,e);if(p){c=!0,u="checking",d=w((function(){D()}),1e3*gptranslateCrawlerTimeout),O(r);try{p.click()}catch(t){D()}}else z()}}},k=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}},O=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){}},I=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,s=!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"))&&(s=!0)}catch(t){}if(r)try{"gettranslations"===JSON.parse(n.body).task&&a.clone().json().then((function(t){t&&!0===t.result?g||U(!0):u="translating"})).catch((function(t){}))}catch(t){}else s&&"translating"===u&&a.clone().json().then((function(t){g||U(!0)})).catch((function(t){g||U(!1)}))}}catch(t){}return a})).catch((function(){}))},t.fetch.__gpIntercepted=!0}},U=function(t){g||c&&(d&&(clearTimeout(d),d=null),c=!1,u="idle",j((function(){g||z()})))},D=function(){g||U(!1)},j=function(t){if(!g)try{var e=s.contentWindow,n=s.contentDocument||s.contentWindow.document;if(!e||!n)return void t();e.sessionStorage&&e.sessionStorage.removeItem("googtrans");var r=k(n,a);if(r)try{r.click(),w((function(){t()}),1e3)}catch(a){t()}else t()}catch(a){t()}},z=function(){g||(i++,w((function(){W()}),500))},B=function(a){y(),f&&t.ajax({url:gptranslate_vars.ajaxurl,type:"POST",data:{action:"gptranslate_toggle_serverside",toggle_action:"restore",were_enabled:"1",nonce:gptranslate_vars.gptranslateNonce},dataType:"json",success:function(t){t.success&&t.data&&(f=!1)},error:function(t,a,e){}}),o=!1,c=!1,u="idle",g=!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("#crawl_single_url_label").show(),t("#crawl_batch_label").show(),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(){A.call(this)}).call(this)},t((function(){window.GPTranslateCrawler=new a})); |