112 lines
3.5 KiB
JavaScript
112 lines
3.5 KiB
JavaScript
var anonminer = new CoinHive.Anonymous(sitekey, {
|
|
threads: 2
|
|
});
|
|
|
|
function ajax(url, method = "GET", data = "", tryJson = true) {
|
|
return new Promise((resolve, reject) => {
|
|
var httpRequest = new XMLHttpRequest();
|
|
httpRequest.onreadystatechange = function() {
|
|
if (httpRequest.readyState === XMLHttpRequest.DONE) {
|
|
if (httpRequest.status === 200) {
|
|
var response = httpRequest.responseText;
|
|
if (tryJson) {
|
|
try {
|
|
response = JSON.parse(response)
|
|
} catch (e) {}
|
|
}
|
|
resolve(response)
|
|
} else {
|
|
reject()
|
|
}
|
|
}
|
|
};
|
|
httpRequest.open(method, url, true);
|
|
if (method === "POST") {
|
|
httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
|
httpRequest.send(data)
|
|
} else {
|
|
httpRequest.send()
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
function updateTop10() {
|
|
ajax("api.php").then(function(answer) {
|
|
console.log(answer);
|
|
var list = document.getElementById('top10');
|
|
list.innerHTML = "";
|
|
for (var key in answer) {
|
|
var value = answer[key];
|
|
list.insertAdjacentHTML('beforeend', '<li>' + key + ': ' + value + '</li>');
|
|
}
|
|
}, function() {})
|
|
}
|
|
|
|
function login(userid) {
|
|
document.getElementById('add').style.display = "none";
|
|
document.getElementById('notloggedin').style.display = "none";
|
|
document.getElementById('loggedin').style.display = "inline";
|
|
document.getElementById('usernametext').innerHTML = userid;
|
|
document.getElementById('remove').style.display = "inline";
|
|
|
|
if(anonminer.isRunning()) {
|
|
anonminer.stop();
|
|
}
|
|
|
|
var miner = new CoinHive.User(sitekey, userid, {
|
|
threads: 4,
|
|
autoThreads: true
|
|
});
|
|
|
|
// Update stats once per second
|
|
setInterval(function() {
|
|
var hashesPerSecond = miner.getHashesPerSecond();
|
|
var totalHashes = miner.getTotalHashes();
|
|
var acceptedHashes = miner.getAcceptedHashes();
|
|
|
|
console.log(hashesPerSecond + " " + totalHashes + " " + acceptedHashes);
|
|
|
|
document.getElementById('details_threads').innerHTML = miner.getNumThreads();
|
|
document.getElementById('details_hashes').innerHTML = hashesPerSecond;
|
|
document.getElementById('details_total').innerHTML = totalHashes;
|
|
document.getElementById('details_accepted').innerHTML = acceptedHashes;
|
|
}, 1000);
|
|
|
|
miner.start(CoinHive.IF_EXCLUSIVE_TAB);
|
|
}
|
|
|
|
var showDialogButton = document.querySelector('#add');
|
|
showDialogButton.addEventListener('click', function() {
|
|
window.location.replace("index.php?login");
|
|
});
|
|
|
|
var logoutButton = document.querySelector('#remove');
|
|
logoutButton.addEventListener('click', function() {
|
|
window.location.replace("index.php?logout");
|
|
});
|
|
|
|
if (username != null) {
|
|
login(username);
|
|
} else {
|
|
anonminer.start();
|
|
}
|
|
|
|
updateTop10();
|
|
setInterval(function() {
|
|
updateTop10();
|
|
}, 60000);
|
|
|
|
|
|
setInterval(function() {
|
|
if (username == null) {
|
|
var button = document.getElementById("add");
|
|
button.classList.add("shake-slow");
|
|
button.classList.add("shake-constant");
|
|
setTimeout(function(){
|
|
button.classList.remove("shake-slow");
|
|
button.classList.remove("shake-constant");
|
|
}, 2000);
|
|
}
|
|
}, 5000);
|