Initial commit to github
This commit is contained in:
105
js/token.js
Normal file
105
js/token.js
Normal file
@@ -0,0 +1,105 @@
|
||||
var current_token_int = 0;
|
||||
var current_region_selection = 'us'
|
||||
var current_time_selection = '48h'
|
||||
var current_price_hash = {
|
||||
us: 0,
|
||||
eu: 0,
|
||||
kr: 0,
|
||||
tw: 0
|
||||
}
|
||||
var chart_js_data;
|
||||
var ctx;
|
||||
var token_chart;
|
||||
|
||||
|
||||
function populateChart() {
|
||||
ctx = document.getElementById("token-chart").getContext('2d');
|
||||
token_chart = new Chart(ctx, {
|
||||
type: 'line',
|
||||
data: {
|
||||
datasets: [{
|
||||
borderColor: 'gold',
|
||||
label: current_region_selection.toUpperCase() + " WoW Token Price",
|
||||
data: chart_js_data
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
scales: {
|
||||
xAxes: [{
|
||||
type: 'time'
|
||||
}]
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
async function callUpdateURL() {
|
||||
let resp = await fetch("https://data.wowtoken.app/token/current.json");
|
||||
let data = await resp.json();
|
||||
updateTokens(data);
|
||||
}
|
||||
|
||||
function updateTokens(data) {
|
||||
updateRegionalToken('us', data);
|
||||
updateRegionalToken('eu', data);
|
||||
updateRegionalToken('kr', data);
|
||||
updateRegionalToken('tw', data);
|
||||
}
|
||||
|
||||
function updateRegionalToken(region, data) {
|
||||
if (current_price_hash[region] != data['price_data'][region]) {
|
||||
current_price_hash[region] = data['price_data'][region];
|
||||
if (region === current_region_selection) {
|
||||
formatToken();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function updateRegionPreference(newRegion) {
|
||||
if (newRegion != current_region_selection) {
|
||||
token_chart.destroy();
|
||||
current_region_selection = newRegion;
|
||||
}
|
||||
formatToken();
|
||||
pullChartData().then(populateChart);
|
||||
}
|
||||
function updateTimePreference(newTime) {
|
||||
if (newTime != current_time_selection) {
|
||||
token_chart.destroy();
|
||||
current_time_selection = newTime;
|
||||
}
|
||||
pullChartData().then(populateChart)
|
||||
}
|
||||
|
||||
async function pullChartData() {
|
||||
let resp = await fetch("https://data.wowtoken.app/token/history/" + current_region_selection + "/" + current_time_selection + ".json");
|
||||
let chart_data = await resp.json();
|
||||
new_chart_js_data = []
|
||||
for (i = 0; i < chart_data.length; i++) {
|
||||
datum = {
|
||||
x: chart_data[i]['time'],
|
||||
y: chart_data[i]['value']
|
||||
}
|
||||
new_chart_js_data.push(datum)
|
||||
}
|
||||
chart_js_data = new_chart_js_data
|
||||
}
|
||||
|
||||
async function updateChartData() {
|
||||
token_chart.destroy();
|
||||
pullChartData().then(populateChart)
|
||||
}
|
||||
|
||||
function formatToken() {
|
||||
$("#token").html(current_price_hash[current_region_selection].toLocaleString());
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
callUpdateURL()
|
||||
setInterval(callUpdateURL, 60*1000);
|
||||
pullChartData().then(populateChart);
|
||||
setInterval(updateChartData, 15*60*1000)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user