foxbitbot
Version:
Buy and sell automatic foxbit exchange
561 lines (520 loc) • 22.3 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>bitcoin | exchange</title>
<!-- Bootstrap Core CSS -->
<link href="./css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="./css/client-view.css" rel="stylesheet">
<!-- Favicon -->
<link rel="icon" href="./img/ico/favicon.ico" type="image/x-icon">
<!-- Custom Fonts -->
<link href="./font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<!-- Custom Google Fonts -->
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700' rel='stylesheet' type='text/css'>
<!-- jQuery -->
<script src="./js/jquery.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="./js/bootstrap.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="./js/client-view.js"></script>
<!-- Flot -->
<script src="./js/vendor/flot/jquery.flot.min.js"></script>
<script src="./js/vendor/flot/jquery.flot.tooltip.min.js"></script>
<link rel="stylesheet" href="./css/btcdonate.css">
</head>
<body>
<div id="wrapper">
<div id="page-wrapper" style="min-height: 611px;">
<div class="row row-full-width">
<div class="col-lg-2 column">
<div class="row section-header">
<h5>AVAILABLE BALANCE</h5>
</div>
<div class="row">
<br>
<div class="col-lg-4">
<p>BTC</p>
</div>
<div class="col-lg-8">
<p class="right" id="btc-balance"><strong></strong></p>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<p>BRL</p>
</div>
<div class="col-lg-8">
<p class="right" id="brl-balance"><strong></strong></p>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<p>ClientID</p>
</div>
<div class="col-lg-8">
<p class="right" id="ClientID"><strong></strong></p>
</div>
</div>
<br>
<div class="row">
<div class="col-lg-13">
<ul class="nav nav-tabs">
<li class="active"><a href="#buy" data-toggle="tab" id="buy-tab">BUY</a>
</li>
<li class="tab"><a href="#sell" data-toggle="tab" id="sell-tab">SELL</a>
</li>
<li class="tab"><a href="#buysell" data-toggle="tab" id="buysell-tab">Profit</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane fade in active" id="buy">
<br>
<input class="form-control" placeholder="Amount (BTC)" id="btc-buy-amount" type="number">
<br>
<input class="form-control" placeholder="Price Minimum / BTC" id="btc-buy-price-amount-min" type="number">
<br>
<input class="form-control" placeholder="Price Maximum / BTC" id="btc-buy-price-amount-max" type="number">
<div class="row">
<br>
<div class="col-lg-8">
<p>Process Enable?</p>
</div>
<div class="col-lg-3">
<p class="right" id="btc-buy-return"><strong>False</strong></p>
</div>
</div>
<br>
<div class="centered">
<button type="button" class="btn btn-custom btn-primary btn-lg" id="buyx">BUY Start</button>
</div>
</div>
<div class="tab-pane fade" id="sell">
<br>
<input class="form-control" placeholder="Amount (BTC)" id="btc-sell-amount" type="number">
<br>
<input class="form-control" placeholder="Price Minimum / BTC" id="btc-sell-price-amount-min" type="number">
<br>
<input class="form-control" placeholder="Price Maximum / BTC" id="btc-sell-price-amount-max" type="number">
<div class="row">
<br>
<div class="col-lg-8">
<p>Process Enable?</p>
</div>
<div class="col-lg-3">
<p class="right" id="btc-sell-return"><strong>False</strong></p>
</div>
</div>
<br>
<div class="centered">
<button type="button" class="btn btn-custom btn-primary btn-lg" id="sellx">SELL Start</button>
</div>
</div>
<div class="tab-pane fade" id="buysell">
<br>
<input class="form-control" placeholder="Amount (BTC)" id="btc-buysell-amount" type="number">
<br>
<input class="form-control" placeholder="Price Minimum / BTC" id="btc-buysell-price-amount-min" type="number">
<br>
<input class="form-control" placeholder="Price Maximum / BTC" id="btc-buysell-price-amount-max" type="number">
<br>
<input class="form-control" placeholder="% Profit" id="btc-buysell-price-profit" type="number">
<div class="row">
<br>
<div class="col-lg-8">
<p>Process Enable?</p>
</div>
<div class="col-lg-3">
<p class="right" id="btc-buysell-return"><strong>False</strong></p>
</div>
</div>
<br>
<div class="centered">
<button type="button" class="btn btn-custom btn-primary btn-lg" id="buysellx">BUY Start</button>
</div>
</div>
<div class="row account-actions"><hr></div>
<div class="row account-actions"><div class="col-lg-6">Donate:</div><br>
<div class="col-lg-6" style="font-size:10px">
<a href="bitcoin:115mWCwsBqsa4ASEt4WfDs2uoSfcrADPT9"
data-btcaddress="115mWCwsBqsa4ASEt4WfDs2uoSfcrADPT9">
115mWCwsBqsa4ASEt4WfDs2uoSfcrADPT9
</a>
<script type="text/javascript" src="./js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="./js/jquery.qrcode-0.7.0.min.js"></script>
<script type="text/javascript" src="./js/btcdonate.js"></script>
<script type="text/javascript">
btcdonate({fill: "#000000",radius: 0});
</script>
</div></div>
<div class="row account-actions"><hr></div>
<div class="row account-actions"><div class="col-lg-6">Developer:<br>
Rafael_Dornelas<br>
rafaelwdornelas@gmail.com</div></div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 column">
<div class="row section-header">
<h5>ORDER BOOK - BIDS</h5>
</div>
<div class="order-book-place-holder">
<table id="personDataTablebids" style="margin: 1em 0; min-width: 300px;">
</table>
</div>
</div>
<div class="col-lg-3 column">
<div class="row section-header">
<h5>ORDER BOOK- ASKS</h5>
</div>
<div class="open-orders-place-holder"></div>
<table id="personDataTableasks" style="margin: 1em 0; min-width: 300px;"></table>
</div>
<div class="col-lg-5 col-lg-4 column">
<div class="row section-header">
<h5>OPEN ORDERS</h5>
</div>
<div class="open-orders-place-holder">
<table id="openorders" style="margin: 1em 0; min-width: 300px;"></table>
</div>
</div>
<div class="col-lg-5 col-lg-4">
<div class="row section-header">
<h5>LEDGER</h5>
</div>
<div class="open-orders-place-holder">
<table id="ledger" style="margin: 1em 0; min-width: 300px;"></table>
</div>
</div>
</div>
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
<script>
$('#buyx').click(function(){
if ($('#btc-buy-amount').val()=="")
{
alert ("amount not value");
return false;
}
if ($('#btc-buy-price-amount-min').val()=="")
{
alert ("price min not value");
return false;
}
if ($('#btc-buy-price-amount-max').val()=="")
{
alert ("price max not value");
return false;
}
$.ajax({
url: "/buy",
type: 'post',
data: {
'btcbuyamount': $('#btc-buy-amount').val(),
'btcbuypriceamountmin': $('#btc-buy-price-amount-min').val(),
'btcbuypriceamountmax': $('#btc-buy-price-amount-max').val()
}
}).done(function(data){
$('#messages').html('<b>'+data.message+'</b>');
});
});
$('#buysellx').click(function(){
if ($('#btc-buysell-amount').val()=="")
{
alert ("amount not value");
return false;
}
if ($('#btc-buysell-price-amount-min').val()=="")
{
alert ("price min not value");
return false;
}
if ($('#btc-buysell-price-amount-max').val()=="")
{
alert ("price max not value");
return false;
}
if ($('#btc-buysell-price-profit').val()=="")
{
alert ("profit not value");
return false;
}
$.ajax({
url: "/buysell",
type: 'post',
data: {
'btcbuyamount': $('#btc-buysell-amount').val(),
'btcbuypriceamountmin': $('#btc-buysell-price-amount-min').val(),
'btcbuypriceamountmax': $('#btc-buysell-price-amount-max').val(),
'btcbuysellpriceprofit': $('#btc-buysell-price-profit').val()
}
}).done(function(data){
$('#messages').html('<b>'+data.message+'</b>');
});
});
$('#sellx').click(function(){
if ($('#btc-sell-amount').val()=="")
{
alert ("amount not value");
return false;
}
if ($('#btc-sell-price-amount-min').val()=="")
{
alert ("price min not value");
return false;
}
if ($('#btc-sell-price-amount-max').val()=="")
{
alert ("price max not value");
return false;
}
$.ajax({
url: "/sell",
type: 'post',
data: {
'btcsellamount': $('#btc-sell-amount').val(),
'btcsellpriceamountmin': $('#btc-sell-price-amount-min').val(),
'btcsellpriceamountmax': $('#btc-sell-price-amount-max').val()
}
}).done(function(data){
$('#messages').html('<b>'+data.message+'</b>');
});
});
function getStats(){
$.get("/stats",
function(data){
$('#btc-sell-return').html(data.sell);
$('#btc-buy-return').html(data.buy);
}).always(function(data,status) {
if(status == 'success'){
setTimeout(getStats,1000);
}else{
$('#btc-sell-return').html('<font color="red">Status unvaliable</font>');
$('#btc-buy-return').html('<font color="red">Status unvaliable</font>');
console.log("Error getting stats. Delaying stats pooling");
setTimeout(getStats,5000);
}
});
}
setTimeout(getStats,1000);
</script>
<script>
function getBalance(){
$.get("/getBalance",
function(data){
$('#btc-balance').html(data.BTC);
$('#brl-balance').html(data.BRL);
$('#ClientID').html(data.ClientID);
}).always(function(data,status) {
if(status == 'success'){
setTimeout(getBalance,1000);
}else{
$('#btc-balance').html('<font color="red">Status unvaliable</font>');
console.log("Error getting stats. Delaying stats pooling");
setTimeout(getBalance,5000);
}
});
}
setTimeout(getBalance,1000);
</script>
<script>
function getorderbook(){
$.get("/getorderbook",
function(data){
$("#personDataTablebids").empty();
$("#personDataTableasks").empty();
var idClient = $('#ClientID').text();
console.log(idClient);
drawRowmenubids();
drawRowmenuasks();
drawTablebids(data['bids']);
drawTableasks(data['asks']);
function drawTablebids(data) {
for (var i = 0; i < 28; i++) {
drawRowbids(data[i]);
}
}
function drawTableasks(data) {
for (var i = 0; i < 28; i++) {
drawRowasks(data[i]);
}
}
function drawRowbids(rowData) {
if (idClient == rowData[2]) {
var row = $("<tr style='color: #00FF00;'/>")
} else {
var row = $("<tr />")
}
$("#personDataTablebids").append(row); //this will append tr element to table... keep its reference for a while since we will add cels into it
row.append($("<td>" + rowData[2] + "</td>"));
row.append($("<td> ฿ " + parseFloat(rowData[1]).toFixed(6) + "</td> "));
row.append($("<td>" + parseFloat(rowData[0]).toFixed(2) + "</td>"));
}
function drawRowasks(rowData) {
if (idClient == rowData[2]) {
var row = $("<tr style='color: #FF0000;'/>")
} else {
var row = $("<tr />")
}
$("#personDataTableasks").append(row); //this will append tr element to table... keep its reference for a while since we will add cels into it
row.append($("<td>" + parseFloat(rowData[0]).toFixed(2) + "</td>"));
row.append($("<td> ฿ " + parseFloat(rowData[1]).toFixed(6) + "</td> "));
row.append($("<td>" + rowData[2] + "</td>"));
}
function drawRowmenubids() {
var row = $("<tr />")
$("#personDataTablebids").append(row); //this will append tr element to table... keep its reference for a while since we will add cels into it
row.append($("<td>" + "Buyer" + "</td>"));
row.append($("<td>" + "Quantity" + "</td> "));
row.append($("<td>" + "Price" + "</td>"));
}
function drawRowmenuasks() {
var row = $("<tr />")
$("#personDataTableasks").append(row); //this will append tr element to table... keep its reference for a while since we will add cels into it
row.append($("<td>" + "Price" + "</td>"));
row.append($("<td>" + "Quantity" + "</td> "));
row.append($("<td>" + "Buyer" + "</td>"));
}
}).always(function(data,status) {
if(status == 'success'){
setTimeout(getorderbook,1000);
}else{
// $('#btc-balance').html('<font color="red">Status unvaliable</font>');
console.log("Error getting stats. Delaying stats pooling");
setTimeout(getorderbook,5000);
}
});
}
setTimeout(getorderbook,1000);
</script>
<script>
function getledger(){
$.get("/getledger",
function(data){
$("#ledger").empty();
drawRowmenu();
drawTable(data);
function drawTable(data) {
for (var i = 0; i < data.length; i++) {
drawRow(data[i]);
}
}
function drawRow(rowData) {
var row = $("<tr />")
$("#ledger").append(row);
row.append($("<td>" + rowData.LedgerID + "</td>"));
row.append($("<td>" + parseFloat(rowData.Amount / 1e8).toFixed(6) + " " + rowData.Currency + "</td> "));
row.append($("<td>" + switchLedger(rowData.Description) + "</td>"));
}
function drawRowmenu() {
var row = $("<tr />")
$("#ledger").append(row);
row.append($("<td>" + "LedgerID" + "</td>"));
row.append($("<td>" + "Amount" + "</td> "));
row.append($("<td>" + "Description" + "</td>"));
}
}).always(function(data,status) {
if(status == 'success'){
setTimeout(getledger,1000);
}else{
console.log("Error getting stats. Delaying stats pooling");
setTimeout(getledger,5000);
}
});
}
function switchLedger(s) {
switch(s) {
case 'B':
return "Bonus";
case 'D':
return "Deposit";
case 'DF':
return "Fee on deposit";
case 'DFC':
return "Deposit fee referral";
case 'W':
return "Withdraw";
case 'WF':
return "Fee on withdraw";
case 'WFC':
return "Withdrawal fee referral";
case 'WFR':
return "Discount on the withdrawal fee";
case 'WFRV':
return "Revert withdrawal fee";
case 'T':
return "Trade";
case 'TF':
return "Fee on trade";
case 'TFC':
return "Trade fee referral";
case 'TFR':
return "Trade fee refund";
case 'P':
return "Point";
default:
return s;
};
}
setTimeout(getledger,3000);
</script>
<script>
function getorders(){
$.get("/getorders",
function(data){
$("#openorders").empty();
drawRowmenu();
drawTable(data);
function drawTable(data) {
for (var i = 0; i < data.length; i++) {
drawRow(data[i]);
}
}
function drawRow(rowData) {
if (rowData.OrdStatus =='0') {
var row = $("<tr />")
$("#openorders").append(row);
row.append($("<td>" + rowData.OrderID + "</td>"));
var Side = rowData.Side;
if (Side == "1" ) {
Side = 'Buy';
} else {
Side = 'Sell';
}
var OrderQty = parseFloat(rowData.OrderQty / 100000000);
var Price = parseFloat(rowData.Price / 100000000);
row.append($("<td>" + Side + "</td> "));
row.append($("<td>" + OrderQty.toFixed(6) + "</td>"));
row.append($("<td>" + Price.toFixed(2) + "</td>"));
}
}
function drawRowmenu() {
var row = $("<tr />")
$("#openorders").append(row);
row.append($("<td>" + "OrderID" + "</td>"));
row.append($("<td>" + "Side" + "</td> "));
row.append($("<td>" + "OrderQty" + "</td>"));
row.append($("<td>" + "Price" + "</td>"));
}
}).always(function(data,status) {
if(status == 'success'){
setTimeout(getorders,1000);
}else{
console.log("Error getting stats. Delaying stats pooling");
setTimeout(getorders,5000);
}
});
}
setTimeout(getorders,1000);
</script>
</body>
</html>