@keyframes fadeInAnimation { 0% { opacity: 1; } 100% { opacity: 0; } small#logs { animation: fadeInAnimation ease 3s; animation-iteration-count: 1; animation-fill-mode: forwards; } } Display Name Username Joined Lv1 Lurker (adsbygoogle = window.adsbygoogle || []).push({}); Go to Community Create a Post Logout Statistics Uploaded Packs: Uploaded Mods: Uploaded Fanarts: Uploaded Fan made: Uploaded Accounts: Approved Answers: let profImg = document.querySelector('#profImg'); let dName = document.querySelector('#dName'); let uName = document.querySelector('#uName'); let jDate = document.querySelector('#jDate'); let profile = document.querySelector('#profile'); let pass = ''; let ciphered = ''; let username = ''; if(checkCredentials()) { let data = localStorage.getItem('ptc_credentials'); data = JSON.parse(data); displayProfile(data.username, data.name, data.date, data.img); } else window.location.href = 'https://storehaccounts.blogspot.com/p/login_20.html'; function checkCredentials() { if(localStorage.getItem('ptc_credentials')) { try { let data = JSON.parse(localStorage.getItem('ptc_credentials')); if(ptcDecrypt(data.username, data.ciphered) == data.username) return true; else return false; } catch(err) { return false; } } else { return false; } } function displayProfile(username, displayname, joined_date, prof_img) { profImg.src = prof_img; dName.innerText = displayname; uName.innerText = username; jDate.innerText = formatDate(joined_date); profile.style.display = 'block'; } function GETsend(pantry, logs, callback) { let req = new XMLHttpRequest(); req.onload = () => { if(req.readyState == 4) if(req.status == 200) { let data = JSON.parse(req.response); if(data.members) callback(data); else callback(data); } } req.onerror = () => { logs.innerText = "Server overloads... Waiting the server (5 seconds.)"; setTimeout(function() { GETsend(pantry, logs, callback); }, 5000); } req.open('GET', pantry, true); req.setRequestHeader('Content-Type', 'application/json'); try { req.send(); } catch(err) { logs.innerText = "Server overloads... Waiting the server (5 seconds.)"; setTimeout(function() { GETsend(pantry, logs, callback); }, 5000); } } function formatDate(date) { var d = new Date(date), month = '' + (d.getMonth() + 1), day = '' + d.getDate(), year = d.getFullYear(); if (month.length < 2) month = '0' + month; if (day.length < 2) day = '0' + day; return [year, month, day].join('-'); } function ptcEncrypt(key, value) { const cipher = salt => { const textToChars = text => text.split('').map(c => c.charCodeAt(0)); const byteHex = n => ("0" + Number(n).toString(16)).substr(-2); const applySaltToChar = code => textToChars(salt).reduce((a, b) => a ^ b, code); return text => text.split('') .map(textToChars) .map(applySaltToChar) .map(byteHex) .join(''); } var encryptor = cipher(key); return encryptor(value); } function ptcDecrypt(key, value) { const decipher = salt => { const textToChars = text => text.split('').map(c => c.charCodeAt(0)); const applySaltToChar = code => textToChars(salt).reduce((a, b) => a ^ b, code); return encoded => encoded.match(/.{1,2}/g) .map(hex => parseInt(hex, 16)) .map(applySaltToChar) .map(charCode => String.fromCharCode(charCode)) .join(''); } toDecipher = decipher(key); return toDecipher(value); }