-
-
Notifications
You must be signed in to change notification settings - Fork 53
/
purchases.ts
47 lines (39 loc) · 1.18 KB
/
purchases.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
Example output:
...
'PC419 FluentSwede' bought 1 'High Explosive Grenade' (normal)
'CHF| yam-' bought 1 'Smoke Grenade' (normal)
'CHF| yam-' bought 1 'Molotov' (normal)
'PC419 m0nt-S-' bought 1 'P250' (strange)
'CHF| soju_j' bought 1 'AK-47' (unique)
'CHF| soju_j' bought 1 'Kevlar' (normal)
'CHF| soju_j' bought 1 'Smoke Grenade' (normal)
'CHF| soju_j' bought 1 'Molotov' (normal)
'CHF| soju_j' bought 1 'Flashbang' (normal)
'CHF| soju_j' bought 1 'Flashbang' (normal)
'CHF| yam-' bought 1 'Flashbang' (normal)
Finished.
*/
import { DemoFile } from "demofile";
import * as fs from "fs";
function parseDemoFile(path: string) {
const stream = fs.createReadStream(path);
const demoFile = new DemoFile();
demoFile.on("itemPurchase", e => {
console.log(
`'${e.player.name}' bought ${e.count} '${e.itemName}' (${
e.weapon?.quality || "normal"
})`
);
});
demoFile.on("end", e => {
if (e.error) {
console.error("Error during parsing:", e.error);
process.exitCode = 1;
}
console.log("Finished.");
});
// Start parsing the stream now that we've added our event listeners
demoFile.parseStream(stream);
}
parseDemoFile(process.argv[2]!);