UNPKG

linkedin-crawler

Version:

Automated crawling and messaging for LinkedIn

164 lines (155 loc) 8.33 kB
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]') const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new window.bootstrap.Tooltip(tooltipTriggerEl)) let rabotaetTochkaa = null let udatscheck = null document.getElementById('textarea0').addEventListener('input', ()=>{updateTAcounter()}); let isDarkMode = true function darkMode(){ if(isDarkMode){ isDarkMode = !isDarkMode document.querySelector('html').setAttribute('data-bs-theme', 'light') document.getElementById('darkMode').innerHTML = '🌙 Dark Mode' document.getElementById('darkMode').classList.remove("btn-dark") document.getElementById('darkMode').classList.add("btn-light") } else { isDarkMode = !isDarkMode document.querySelector('html').setAttribute('data-bs-theme', 'dark') document.getElementById('darkMode').innerHTML = '🌞 Light Mode' document.getElementById('darkMode').classList.remove("btn-light") document.getElementById('darkMode').classList.add("btn-dark") } } function addField(value){ switch(value){ case 0: document.getElementById('textarea0').value = document.getElementById('textarea0').value + `<<firstname>>` updateTAcounter() document.getElementById('textarea0').focus() break; case 1: document.getElementById('textarea0').value = document.getElementById('textarea0').value + `<<lastname>>` updateTAcounter() document.getElementById('textarea0').focus() break; case 2: document.getElementById('textarea0').value = document.getElementById('textarea0').value + `<<location>>` updateTAcounter() document.getElementById('textarea0').focus() break; case 3: document.getElementById('textarea0').value = document.getElementById('textarea0').value + `<<currentjob>>` updateTAcounter() document.getElementById('textarea0').focus() break; default: updateTAcounter() break; } } function updateTAcounter(){ document.getElementById('lenCounter').innerHTML = 300 - document.getElementById('textarea0').value.length if(document.getElementById('textarea0').value.length >= 300){ document.getElementById('start').classList.add('disabled') } else { document.getElementById('start').classList.remove('disabled') } } function rabotaetTochka(){ document.getElementById('workingMsg').innerHTML.split("").filter(x => x == ".").length == 0 ? document.getElementById('workingMsg').innerHTML = ' Working. ' : document.getElementById('workingMsg').innerHTML.split("").filter(x => x == ".").length == 1 ? document.getElementById('workingMsg').innerHTML = ' Working.. ': document.getElementById('workingMsg').innerHTML.split("").filter(x => x == ".").length == 2 ? document.getElementById('workingMsg').innerHTML = ' Working...': document.getElementById('workingMsg').innerHTML = ' Working ' } let completion = 50 let countNoUpdates = 0 function updatesChecker(){ fetch('http://localhost:3333/updates', {headers: {'Content-Type':'text/plain'}, }).then((res)=>{return res.json()}).then((res)=> { if(res=='noUpdates'&&countNoUpdates>=6){document.getElementById('scriptRet').innerHTML += `<p>${res}</p>`;countNoUpdates++;clearInterval(udatscheck);return} if(res=='noUpdates'){document.getElementById('scriptRet').innerHTML += `<p>${res}</p>`;countNoUpdates++;return} res=JSON.parse(res) document.getElementById('progText').innerHTML = `📧 Sending Customized Messages...` res.forEach((item)=>{ if(item.indexOf('ChallengeException: CHALLENGE')!=-1){haltProcess(true)} if(item != 'noUpdates'){ document.getElementById('scriptRet').innerHTML += `<p>${item}</p>` document.getElementById('pbar').style.width = `${completion}%` ++completion } }) }).catch((err)=>{ document.getElementById('scriptRet').innerHTML += `<p>Error Fetching Update...${err}</p>` clearInterval(udatscheck) }) } function haltProcess(isChallenge = false){ clearInterval(udatscheck) clearInterval(rabotaetTochkaa) document.getElementById('endButton').style.display = 'none' document.getElementById('pbar').style.display = 'none' fetch('http://localhost:3333/pkill').then((res)=>{return res.json()}).then((res)=>{ if(res.message=="child killed successfully"){ if(isChallenge){ document.getElementById('progText').innerHTML = `⚠️🤖 ROBOT DETECTION CHALLENGE DETECTED 🤖⚠️</h3><h3>LOG IN FROM YOUR BROWSER</h3><h3>THEN REFRESH AND RUN AGAIN</h3><h3>TO WHITELIST YOUR IP` document.getElementById('pbar').style.width = '100%' document.getElementById('start').style.display = 'none' } else { document.getElementById('progText').innerHTML = `❌ All Processes Halted` document.getElementById('pbar').style.width = '100%' document.getElementById('start').style.display = 'none' } } else { if(isChallenge){ document.getElementById('progText').innerHTML = `⚠️🤖 ROBOT DETECTION CHALLENGE DETECTED 🤖⚠️</h3><h3>LOG IN FROM YOUR BROWSER</h3><h3>THEN REFRESH AND RUN AGAIN</h3><h3>TO WHITELIST YOUR IP` document.getElementById('pbar').style.width = '100%' document.getElementById('start').style.display = 'none' } else { document.getElementById('start').style.display = 'none' document.getElementById('progText').innerHTML = `⚠️ Kill Child Failed` document.getElementById('pbar').style.width = '100%' } } }).catch((err)=>{ document.getElementById('start').style.display = 'none' document.getElementById('progText').innerHTML = `⚠️ Problem Killing Child` document.getElementById('pbar').style.width = '100%' }) } async function startBrowsin(){ document.getElementById('endButton').style.display = 'flex' document.getElementById('pbar').style.display = 'flex' document.getElementById('pbar').focus() document.getElementById('start').innerHTML = `<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true" id="workingSpinner"> </span> <span id="workingMsg"> Working ` rabotaetTochkaa = setInterval(rabotaetTochka, 666) // Start Searching document.getElementById('progText').innerHTML = `✏️ Writing Files...` document.getElementById('pbar').style.width = '10%' const username = document.getElementById('emailField').value const password = document.getElementById('passwordField').value const message = document.getElementById('textarea0').value const search = document.getElementById('inputSearchTerm1').value fetch(`http://localhost:3333/writeFile`, { method: "post", headers: {'Content-Type':'text/plain'}, // headers: {'Content-Type':'application/json'}, body: JSON.stringify( { 'username':username, 'password': password, 'message':message, 'search':search } ) }).then((resp)=>{ if(resp.status!=201){ clearInterval(rabotaetTochkaa) innerHTML = `❌ File Write Failed! Exiting!` document.getElementById('start').innerHTML = '' return } document.getElementById('pbar').style.width = '25%' document.getElementById('progText').innerHTML = `✏️ File Write Success!` udatscheck = setInterval(updatesChecker,1000) }).catch((err)=>{ clearInterval(rabotaetTochkaa) document.getElementById('progText').innerHTML = `❌ File Write Failed!` document.getElementById('start').innerHTML = '' }) }