rapier
Version:
A JavaScript Dota 2 (Source 2) replay parsing library.
72 lines (67 loc) • 1.84 kB
HTML
<html lang="en">
<head>
<meta charset=utf-8>
<title>Browser Parsing Demo</title>
<style>
#holder {
border: 10px dashed #ccc;
width: 300px;
height: 300px;
}
#holder.hover {
border: 10px dashed #333;
}
</style>
</head>
<body>
<div id="holder"></div>
<p id="status"></p>
<p>Drag a replay from your desktop on to the drop zone above to parse.</p>
</body>
<script src="../build/rapier.js"></script>
<script>
var holder = document.getElementById('holder'),
state = document.getElementById('status');
if (typeof window.FileReader === 'undefined') {
state.className = 'fail';
}
else {
state.className = 'success';
state.innerHTML = 'File API & FileReader available';
}
holder.ondragover = function() {
this.className = 'hover';
return false;
};
holder.ondrop = function(e) {
var file = e.dataTransfer.files[0];
parseFile(file);
return false;
};
function parseFile(file) {
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.addEventListener("load", function(e) {
var buf = reader.result;
var count = 0;
var p = new Parser(buf);
//all chat
p.on("CUserMessageSayText2", function(data) {
console.log(data);
});
p.on("*", function(data) {
count += 1;
});
console.time('parse');
p.start(function(err) {
if (err) {
console.log(err);
}
console.log(count);
console.timeEnd('parse');
});
});
}
</script>
</html>