'+data[i]+'
Get Domain
';} document.getElementById('results').innerHTML=outputs;removeLoader('.main #submit');isProcessing=false;}catch(error){console.error(error);removeLoader('.main #submit');isProcessing=false;}} function ai(prompt){return new Promise((resolve,reject)=>{fetch("/ai",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt})}).then(response=>response.json()).then(data=>{let taskStatus="PENDING";const{task_id}=data;const interval=setInterval(()=>{fetch(`/task_status/${task_id}`).then(response=>response.json()).then(statusData=>{taskStatus=statusData.state;if(taskStatus!=="PENDING"){clearInterval(interval);if(taskStatus==="SUCCESS"){const result=statusData.result;resolve(result);}else{reject(new Error(`Task failed with status ${taskStatus}`));}}}).catch(error=>{clearInterval(interval);reject(error);});},1000);}).catch(error=>{reject(error);});});} $('#passwordless').submit(function(e){e.preventDefault();var email=$('#passwordless input[name="email"]').val();loader('#passwordless button');if(email.indexOf('@')==-1||email.indexOf('.')==-1){trayAlert('Please enter a valid email address.');removeLoader('#passwordless button');return;} $.ajax({url:"/passwordless",method:"POST",data:{email:email},success:function(data){if(data.status=='success'){$('#passwordless').hide();$('.form-flash').html('Click the link in your email to login.');$('.form-flash').addClass('preauth');}else{formFlash(data.error,'error');} removeLoader('#passwordless button');}});});function formFlash(message,type){var formFlashElement=$('.form-flash');formFlashElement.addClass(type);formFlashElement.html(message);formFlashElement.show();setTimeout(function(){formFlashElement.fadeOut(400,function(){formFlashElement.removeClass(type);});},2500);} function logout(){$.ajax({url:"/logout",method:"POST",success:function(data){getUser();}});};function closeModal(){var modal=document.getElementById("loginModal");modal.style.display="none";$('.form-flash').html('');$('#passwordless').show();$('.form-flash').removeClass('preauth');} function loginModal(){var modal=document.getElementById("loginModal");modal.style.display="block";window.onclick=function(event){if(event.target==modal){modal.style.display="none";$('.form-flash').html('');$('#passwordless').show();$('.form-flash').removeClass('preauth');}}} function search(){$('.faves-container').html('');$('.favorites').hide();$('.search').show();$('.results').html('');} function getUser(){return fetch('/get-user').then(response=>response.json()).then(user=>{if(user.email){window.user.logged_in=user.logged_in;window.user.verified=user.verified;$('.account').hide();$('.logout').show();$('.showfaves').show();$('.search-nav').show();}else{window.user.logged_in=false;window.user.verified=false;$('.account').show();$('.logout').hide();$('.showfaves').hide();$('.search-nav').hide();$('.favorites').hide();$('.search').show();$('.results').html('');}});} function trayAlert(message){var trayAlert=$('#trayAlert');trayAlert.html(message);trayAlert.addClass('show');setTimeout(function(){trayAlert.removeClass('show');},2500);} function showFaves(){$('.search').hide();$('.favorites').show();loader('.faves-container');$.ajax({url:"/get-favorites",method:"get",success:function(data){var html='';var favorites=data.favorites;if(favorites.length==0){html+='
You have no favorites yet.
';} for(var i=0;i
'+favorites[i]+'
Get Domain
';} removeLoader('.faves-container');$('.faves-container').html(html);}});} $(document).on('click','.fave',async function(e){e.preventDefault();if(window.user.logged_in!==true){await getUser();if(window.user.logged_in!==true){$('#loginModal').show();trayAlert('Please login to save favorites','message');return;}} var url=$(this).parent().attr('data-url');var fave=$(this);if(fave.hasClass('selected')){var action='remove';fave.removeClass('selected');}else{var action='add';fave.addClass('selected');} $.ajax({url:"/toggle-favorite",method:"POST",data:{url:url},success:function(data){if(data.success){}else{trayAlert(data.error);}}});});if(""){trayAlert("");} getUser(); 主站蜘蛛池模板: 在线视频精品一区| 日韩有码一区二区| 国产福利电影一区二区三区,日韩伦理电影在线福| 性色av闺蜜一区二区三区| 国产在线观看一区精品 | 午夜福利国产一区二区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲中文字幕无码一区二区三区 | 国产高清一区二区三区四区| 精品福利视频一区二区三区 | 亚洲一区二区电影| 久久精品一区二区三区中文字幕 | 国产精品 视频一区 二区三区| 亚洲一区AV无码少妇电影| 色妞色视频一区二区三区四区| 人妻少妇精品一区二区三区| 一区免费在线观看| 视频在线一区二区| 日本一区二区三区中文字幕| 天堂Av无码Av一区二区三区| 亚洲sm另类一区二区三区| 亚洲一区中文字幕| 亚洲一区AV无码少妇电影| 日本一区二三区好的精华液| 国产Av一区二区精品久久| 日韩视频免费一区二区三区| 久久精品国内一区二区三区| 亚洲AV香蕉一区区二区三区| 日韩精品人妻一区二区三区四区 | 国产在线精品一区二区三区不卡 | 蜜臀AV一区二区| 亚洲国产福利精品一区二区| 麻豆AV无码精品一区二区| 日韩一区二区超清视频| 无码aⅴ精品一区二区三区| 国产一区二区三区在线电影| 精品国产AⅤ一区二区三区4区 | 99久久精品日本一区二区免费| 亚洲AV一区二区三区四区| 国产一区二区精品久久岳√| 亚洲午夜日韩高清一区 |