This repository has been archived on 2023-09-29. You can view files and clone it, but cannot push or open issues or pull requests.
twitch_data_collector/static/collector.js

46 lines
1.1 KiB
JavaScript
Executable File

var twitchCollector = {
updateHooks: [],
data: null,
update: function(data) {
this.data = data;
var that = this;
this.updateHooks.forEach(function(v) {
v(that.data);
});
},
registerHook: function(kind, callback) {
switch (kind) {
case "update":
this.updateHooks.push(callback);
break;
}
},
start: function() {
this.getData();
var that = this;
window.setInterval(function() {
that.getData()
}, 20000);
},
getData: function() {
let xmlhttp = new XMLHttpRequest();
let url = "/data";
var that = this;
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
let data = JSON.parse(this.responseText);
if (data !== null) {
that.update(data);
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
}