diff --git a/index.js b/index.js
new file mode 100644
index 0000000..7eebbeb
--- /dev/null
+++ b/index.js
@@ -0,0 +1,101 @@
+var fs = require('fs');
+var parse = require('csv-parse');
+const { DateTime } = require("luxon");
+
+let matches = [];
+let roundsInMatch = [];
+function logLastMatch(){
+ var round1 = roundsInMatch[0];
+ if(roundsInMatch.length < 3){
+ matches.push(round1);
+ }else{
+ if(roundsInMatch.filter(rim => rim.victorious_deck == round1.victorious_deck).length >
+ roundsInMatch.filter(rim => rim.victorious_deck == round1.losing_deck).length){
+ matches.push(round1);
+ }else{
+ matches.push({
+ "victorious_deck": round1.losing_deck,
+ "victorious_player": round1.losing_player,
+ "losing_deck": round1.victorious_deck,
+ "losing_player": round1.victorious_player
+ });
+ }
+ }
+}
+var parser = parse({columns: true}, function (err, records) {
+ let sortedRecords = records.sort((lhs, rhs) => {
+ if (DateTime.fromISO(lhs.date) < DateTime.fromISO(rhs.date)){
+ return -1;
+ }else if (DateTime.fromISO(lhs.date) > DateTime.fromISO(rhs.date)){
+ return 1;
+ }
+ else return 0;
+ });
+ sortedRecords.forEach(rec => {
+ console.log(DateTime.fromISO(rec.date).toString());
+ let filterResultsSames = roundsInMatch.filter(round =>
+ (round.losing_player == rec.losing_player && round.losing_deck == rec.losing_deck &&
+ round.victorious_player == rec.victorious_player && round.victorious_deck == rec.victorious_deck)
+ );
+ let filterResultsOpposites = roundsInMatch.filter(round =>
+ (round.victorious_player == rec.losing_player && round.victorious_deck == rec.losing_deck &&
+ round.losing_player == rec.victorious_player && round.losing_deck == rec.victorious_deck)
+ );
+ if(roundsInMatch.length !== 0 && filterResultsSames.length == 0 && filterResultsOpposites.length == 0){
+ logLastMatch();
+ roundsInMatch = [];
+ }
+ roundsInMatch.push({
+ "victorious_deck": rec.victorious_deck,
+ "victorious_player": rec.victorious_player,
+ "losing_deck": rec.losing_deck,
+ "losing_player": rec.losing_player
+ });
+ });
+ logLastMatch();
+
+ let deckNodes = [];
+ let edges = [];
+ matches.forEach(match => {
+ let foundVictorNode = deckNodes.find(dn => dn.deck == match.victorious_deck && dn.player == match.victorious_player);
+ if(foundVictorNode === undefined){
+ foundVictorNode = {"deck": match.victorious_deck, "player": match.victorious_player, id: deckNodes.length};
+ deckNodes.push(foundVictorNode);
+ }else{
+ }
+ let foundLoserNode = deckNodes.find(dn => dn.deck == match.losing_deck && dn.player == match.losing_player);
+ if(foundLoserNode === undefined){
+ foundLoserNode = {"deck": match.losing_deck, "player": match.losing_player, id: deckNodes.length};
+ deckNodes.push(foundLoserNode);
+ }else{
+ }
+ let foundEdge = edges.find(e => e.victorId == foundVictorNode.id && e.loserId == foundLoserNode.id);
+ if(foundEdge === undefined){
+ foundEdge = {"victorId": foundVictorNode.id, "loserId": foundLoserNode.id, count: 0};
+ edges.push(foundEdge);
+ }else{
+ }
+ foundEdge.count++;
+ });
+
+ let dot = `digraph{\n\tbgcolor="silver";\n\tnode [shape="rectangle"];\n`;
+ deckNodes.forEach(dn => {
+ dot += "\td_" + dn.id + " [label=<" + dn.deck + "
" + dn.player + ">];\n"
+ });
+ dot += "\n";
+ edges.forEach(e => {
+ dot += "\td_" + e.victorId + " -> d_" + e.loserId;
+ if(e.count > 1){
+ dot += " [label=\"" + e.count + "\"]";
+ }
+ dot += ";\n";
+ });
+ dot += "}\n";
+ console.log(dot);
+ let writable = fs.createWriteStream(__dirname +'/standings.gv');
+ writable.write(dot);
+});
+parser.on('error', function(err){
+ console.error(err.message)
+});
+fs.createReadStream(__dirname+'/standings complete history.csv').pipe(parser);
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..3c8fbe2
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,52 @@
+{
+ "name": "standings-graph",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "csv": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/csv/-/csv-5.3.2.tgz",
+ "integrity": "sha512-odDyucr9OgJTdGM2wrMbJXbOkJx3nnUX3Pt8SFOwlAMOpsUQlz1dywvLMXJWX/4Ib0rjfOsaawuuwfI5ucqBGQ==",
+ "requires": {
+ "csv-generate": "^3.2.4",
+ "csv-parse": "^4.8.8",
+ "csv-stringify": "^5.3.6",
+ "stream-transform": "^2.0.1"
+ }
+ },
+ "csv-generate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.3.0.tgz",
+ "integrity": "sha512-EXSru4QwEWKwM7wwsJbhrZC+mHEJrhQFoXlohHs80CAU8Qhlv9gaw1sjzNiC3Hr3oUx5skDmEiAlz+tnKWV0RA=="
+ },
+ "csv-parse": {
+ "version": "4.15.0",
+ "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.15.0.tgz",
+ "integrity": "sha512-y2wGeU/ybvUlyw6F+eanM6lxxE4JthCuHuaoTgPXdw6ImmfYXqtP0nrCLqd6Ew/a0FgPEz36y5HznI0W5oJ+cg=="
+ },
+ "csv-stringify": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.1.tgz",
+ "integrity": "sha512-JlQlNZMiuRGSFbLXFNGoBtsORXlkqf4Dfq8Ee0Jo4RVJj3YAUzevagUx24mDrQJLDF7aYz6Ne8kqA8WWBaYt2A=="
+ },
+ "luxon": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.25.0.tgz",
+ "integrity": "sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ=="
+ },
+ "mixme": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.4.0.tgz",
+ "integrity": "sha512-B4Sm1CDC5+ov5AYxSkyeT5HLtiDgNOLKwFlq34wr8E2O3zRdTvQiLzo599Jt9cir6VJrSenOlgvdooVYCQJIYw=="
+ },
+ "stream-transform": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.0.4.tgz",
+ "integrity": "sha512-LQXH1pUksoef5Ijo6+2ihnjLLZtZuoqu1vhut6a7xZ77nrLA/shbbx2FAzVC/nkb6wwrPzOO98700mv4HDQcWg==",
+ "requires": {
+ "mixme": "^0.4.0"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..5de9f78
--- /dev/null
+++ b/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "standings-graph",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "start": "node index.js; dot standings.gv -Tpng -ostandings.png",
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "adam",
+ "license": "ISC",
+ "dependencies": {
+ "csv": "^5.3.2",
+ "luxon": "^1.25.0"
+ }
+}
diff --git a/standings complete history.csv b/standings complete history.csv
new file mode 100644
index 0000000..18b7277
--- /dev/null
+++ b/standings complete history.csv
@@ -0,0 +1,309 @@
+date,victorious_deck,victorious_player,losing_deck,losing_player,notes
+2020-11-11 00:00:00,Niv-Mizzet=#1,Alex,Dat Brudi Doe,Adam,
+2020-11-11 00:00:00,Niv-Mizzet=#1,Alex,Dat Brudi Doe,Adam,
+2020-11-11 00:00:00,Drowning Emrakul,Adam,Chandra,Alex,
+2020-11-11 00:00:00,Zaxara,Alex,Karlov Lifegain,Adam,
+2020-11-11 00:00:00,Zaxara,Alex,Karlov Lifegain,Adam,
+2020-11-11 00:00:00,Zirda,Alex,Noble Rot,Adam,
+2020-12-03 15:15:00,Drowning Emrakul,Adam,K'rrik,Alex,
+2020-12-03 16:07:00,Zaxara,Alex,Noble Rot,Adam,
+2020-12-03 16:46:00,Karlov Lifegain,Adam,Zirda,Alex,
+2020-12-03 17:32:00,Dagrons,Alex,Dat Brudi Doe,Adam,
+2020-12-10 14:19:00,8.5t,Alex,Drowning Emrakul,Adam,
+2020-12-10 15:10:00,Drowning Emrakul,Adam,8.5t,Alex,
+2020-12-10 15:34:00,8.5t,Alex,Drowning Emrakul,Adam,
+2020-12-10 15:51:00,Niv-Mizzet=#1,Alex,Noble Rot,Adam,
+2020-12-10 16:08:00,Niv-Mizzet=#1,Alex,Noble Rot,Adam,
+2020-12-10 16:39:00,Chandra,Alex,Dat Brudi Doe,Adam,
+2020-12-10 17:00:00,Dat Brudi Doe,Adam,Chandra,Alex,
+2020-12-10 17:11:00,Dat Brudi Doe,Adam,Chandra,Alex,
+2020-12-21 02:48:00,Noble Rot,Adam,Zaxara,Alex,
+2020-12-21 03:29:00,Zaxara,Alex,Noble Rot,Adam,
+2020-12-21 03:56:00,Zaxara,Alex,Noble Rot,Adam,
+2020-12-21 04:12:00,Dagrons,Alex,Karlov Lifegain,Adam,c
+2020-12-21 04:28:00,All The World's A Stage,Alex,Dat Brudi Doe,Adam,
+2020-12-21 05:03:00,All The World's A Stage,Alex,Dat Brudi Doe,Adam,
+2020-12-28 01:24:00,Chandra,Alex,Karlov Lifegain,Adam,
+2020-12-28 01:48:00,Chandra,Alex,Karlov Lifegain,Adam,
+2020-12-28 02:20:00,Zaxara,Alex,Drowning Emrakul,Adam,
+2020-12-28 03:03:00,Zaxara,Alex,Drowning Emrakul,Adam,
+2020-12-28 04:03:00,Noble Rot,Adam,K'rrik,Alex,
+2020-12-28 04:36:00,Noble Rot,Adam,K'rrik,Alex,
+2021-01-04 01:42:00,8.5t,Alex,Karlov Lifegain,Adam,
+2021-01-04 02:10:00,8.5t,Alex,Karlov Lifegain,Adam,
+2021-01-04 03:06:00,All The World's A Stage,Alex,Drowning Emrakul,Adam,
+2021-01-04 03:30:00,Drowning Emrakul,Adam,All The World's A Stage,Alex,
+2021-01-04 03:46:00,All The World's A Stage,Alex,Drowning Emrakul,Adam,
+2021-01-04 04:08:00,Noble Rot,Adam,Dagrons,Alex,nullified
+2021-01-04 04:32:00,Noble Rot,Adam,Dagrons,Alex,
+2021-01-11 02:51:00,Dagrons,Alex,Noble Rot,Adam,
+2021-01-11 03:17:00,Dagrons,Alex,Noble Rot,Adam,
+2021-01-11 03:56:00,K'rrik,Alex,Karlov Lifegain,Adam,
+2021-01-11 04:30:00,K'rrik,Alex,Karlov Lifegain,Adam,
+2021-01-18 00:00:00,Liesa,Adam,K'rrik,Alex,
+2021-01-18 00:00:00,K'rrik,Alex,Liesa,Adam,
+2021-01-18 00:00:00,K'rrik,Alex,Liesa,Adam,
+2021-01-18 00:00:00,Krarkashima,Alex,Dat Brudi Doe,Adam,
+2021-01-18 00:00:00,Dat Brudi Doe,Adam,Krarkashima,Alex,
+2021-01-18 00:00:00,Krarkashima,Alex,Dat Brudi Doe,Adam,
+2021-01-18 00:00:00,Drowning Emrakul,Alex,Zirda,Adam,
+2021-01-25 00:00:00,Krarkashima,Alex,Liesa,Adam,
+2021-01-25 00:00:00,Krarkashima,Alex,Liesa,Adam,
+2021-01-25 00:00:00,Chandra,Alex,Noble Rot,Adam,
+2021-01-25 00:00:00,Chandra,Alex,Noble Rot,Adam,
+2021-01-25 00:00:00,8.5t,Alex,Drowning Emrakul,Adam,
+2021-01-25 00:00:00,8.5t,Alex,Drowning Emrakul,Adam,
+2021-02-01 00:00:00,*Marwyn,Adam,Krarkashima,Alex,
+2021-02-01 00:30:00,*Marwyn,Adam,Krarkashima,Alex,
+2021-02-01 01:00:00,Liesa,Adam,Zirda,Alex,
+2021-02-01 02:00:00,Zirda,Alex,Liesa,Adam,
+2021-02-01 03:00:00,Zirda,Alex,Liesa,Adam,
+2021-02-08 03:04:00,Drowning Emrakul,Adam,Krarkashima,Alex,
+2021-02-08 03:33:00,Krarkashima,Alex,Drowning Emrakul,Adam,
+2021-02-08 03:50:00,Drowning Emrakul,Adam,Krarkashima,Alex,
+2021-02-08 04:20:00,Zaxara,Alex,Dat Brudi Doe,Adam,
+2021-02-08 04:30:00,Zaxara,Alex,Dat Brudi Doe,Adam,
+2021-02-15 01:25:00,Brallin,Alex,Kaalia,Adam,
+2021-02-15 01:53:00,Kaalia,Adam,Brallin,Alex,
+2021-02-15 02:07:00,Kaalia,Adam,Brallin,Alex,
+2021-02-15 03:09:00,Krarkashima,Alex,Noble Rot,Adam,
+2021-02-15 03:35:00,Noble Rot,Adam,Krarkashima,Alex,
+2021-02-15 04:14:00,Noble Rot,Adam,Krarkashima,Alex,
+2021-02-15 04:48:00,*Marwyn,Adam,To the Yawgflame,Alex,
+2021-02-22 01:57:00,Yorian,Alex,Kaalia,Adam,
+2021-02-22 02:35:00,Yorian,Alex,Kaalia,Adam,
+2021-02-22 03:18:00,Niv-Mizzet=#1,Alex,Liesa,Adam,
+2021-02-22 03:39:00,Liesa,Adam,Niv-Mizzet=#1,Alex,
+2021-02-22 03:56:00,Niv-Mizzet=#1,Alex,Liesa,Adam,
+2021-02-22 04:19:00,Zirda,Alex,Drowning Emrakul,Adam,
+2021-03-01 01:41:00,*Marwyn,Adam,Zirda,Alex,
+2021-03-01 01:42:00,Zirda,Alex,*Marwyn,Adam,
+2021-03-01 02:28:00,*Marwyn,Adam,Zirda,Alex,
+2021-03-01 03:00:00,Zaxara,Alex,Drowning Emrakul,Adam,
+2021-03-01 03:28:00,Zaxara,Alex,Drowning Emrakul,Adam,
+2021-03-01 03:29:00,Chandra,Alex,Noble Rot,Adam,
+2021-03-08 01:00:00,Niv-Mizzet=#1,Alex,Liesa,Adam,
+2021-03-08 01:00:01,Niv-Mizzet=#1,Alex,Liesa,Adam,
+2021-03-08 01:00:02,8.5t,Alex,Noble Rot,Adam,
+2021-03-08 01:00:03,Noble Rot,Adam,8.5t,Alex,
+2021-03-08 01:00:04,8.5t,Alex,Noble Rot,Adam,
+2021-03-08 01:00:05,Drowning Emrakul,Adam,Mrs. The_Beef,Alex,
+2021-03-15 01:10:22,*Marwyn,Adam,Dagrons,Alex,
+2021-03-15 01:23:26,Dagrons,Alex,*Marwyn,Adam,
+2021-03-15 01:53:46,Zaxara,Alex,Dat Brudi Doe,Adam,
+2021-03-15 02:06:00,Dat Brudi Doe,Adam,Zaxara,Alex,
+2021-03-15 02:24:44,Zaxara,Alex,Dat Brudi Doe,Adam,
+2021-03-15 02:49:07,Mrs. The_Beef,Alex,Kaalia,Adam,
+2021-03-15 03:00:36,Kaalia,Adam,Mrs. The_Beef,Alex,
+2021-03-15 03:30:00,Mrs. The_Beef,Alex,Kaalia,Adam,
+2021-03-15 04:15:12,Liesa,Adam,Colfenor,Alex,
+2021-03-22 01:29:53,Niv-Mizzet=#1,Alex,Kaalia,Adam,
+2021-03-22 01:49:28,Niv-Mizzet=#1,Alex,Kaalia,Adam,
+2021-03-22 02:31:26,Krakashima,Adam,8.5t,Alex,
+2021-03-22 02:44:36,8.5t,Alex,Krakashima,Adam,
+2021-03-22 03:12:35,8.5t,Alex,Krakashima,Adam,
+2021-03-22 03:51:22,To the Yawgflame,Alex,Drowning Emrakul,Adam,
+2021-03-22 04:21:40,To the Yawgflame,Alex,Drowning Emrakul,Adam,
+2021-03-29 01:42:42,Zaxara,Alex,*Marwyn,Adam,
+2021-03-29 02:09:58,*Marwyn,Adam,Zaxara,Alex,
+2021-03-29 02:50:53,8.5t,Alex,Niv-Mizzet=#1,Adam,
+2021-03-29 03:25:41,8.5t,Alex,Niv-Mizzet=#1,Adam,
+2021-03-29 04:05:40,To the Yawgflame,Alex,Kaalia,Adam,
+2021-03-29 04:43:12,To the Yawgflame,Alex,Kaalia,Adam,
+2021-04-05 02:43:21,Zaxara,Adam,8.5t,Alex,
+2021-04-05 03:07:07,8.5t,Alex,Zaxara,Adam,
+2021-04-05 03:45:48,Zaxara,Adam,8.5t,Alex,
+2021-04-05 04:01:54,8.5t,Alex,Zaxara,Adam,
+2021-04-05 05:11:39,8.5t,Alex,Zaxara,Adam,
+2021-04-12 01:57:51,Dat Brudi Doe,Adam,To the Yawgflame,Alex,
+2021-04-12 02:20:07,Dat Brudi Doe,Adam,To the Yawgflame,Alex,
+2021-04-12 02:55:18,Noble Rot,Adam,Mrs. The_Beef,Alex,
+2021-04-12 03:17:41,Noble Rot,Adam,Mrs. The_Beef,Alex,
+2021-04-12 03:38:56,Krarkashima,Alex,Drowning Emrakul,Adam,
+2021-04-12 03:51:01,Drowning Emrakul,Adam,Krarkashima,Alex,
+2021-04-12 04:05:20,Krarkashima,Alex,Drowning Emrakul,Adam,
+2021-04-19 01:31:09,*Marwyn,Adam,8.5t,Alex,
+2021-04-19 01:58:41,8.5t,Alex,*Marwyn,Adam,
+2021-04-19 02:33:12,*Marwyn,Adam,8.5t,Alex,
+2021-04-19 02:53:19,Dat Brudi Doe,Adam,Mrs. The_Beef,Alex,
+2021-04-19 03:09:03,Mrs. The_Beef,Alex,Dat Brudi Doe,Adam,
+2021-04-19 03:29:42,Dat Brudi Doe,Adam,Mrs. The_Beef,Alex,
+2021-04-19 03:57:35,Chandra,Alex,Liesa,Adam,
+2021-04-19 04:21:32,Chandra,Alex,Liesa,Adam,
+2021-04-26 02:40:29,Quantum Quandrix,Alex,Witherbloom Witchcraft,Adam,
+2021-04-26 03:24:31,Quantum Quandrix,Alex,Witherbloom Witchcraft,Adam,
+2021-04-26 04:17:53,Brallin,Alex,Drowning Emrakul,Adam,
+2021-05-03 01:44:33,Adrix And Nev,Alex,monorally,Adam,
+2021-05-03 02:08:26,Adrix And Nev,Alex,monorally,Adam,
+2021-05-03 02:35:59,Adrix And Nev,Alex,monorally,Adam,
+2021-05-03 02:55:33,Mrs. The_Beef,Alex,monorally,Adam,
+2021-05-03 03:15:05,Mrs. The_Beef,Alex,monorally,Adam,
+2021-05-03 04:07:55,Dat Brudi Doe,Adam,Zirda,Alex,
+2021-05-03 04:16:32,Zirda,Alex,Dat Brudi Doe,Adam,
+2021-05-03 04:28:42,Dat Brudi Doe,Adam,Zirda,Alex,
+2021-05-10 01:14:17,Kaalia,Adam,Adrix And Nev,Alex,
+2021-05-10 01:44:01,Adrix And Nev,Alex,Kaalia,Adam,
+2021-05-10 02:06:51,Adrix And Nev,Alex,Kaalia,Adam,
+2021-05-10 02:34:15,Krarkashima,Alex,Liesa,Adam,
+2021-05-10 03:09:30,Krarkashima,Alex,Liesa,Adam,
+2021-05-10 04:11:42,To the Yawgflame,Alex,Noble Rot,Adam,
+2021-05-10 04:33:12,To the Yawgflame,Alex,Noble Rot,Adam,
+2021-05-17 01:52:39,Odecka,Adam,Koma,Alex,
+2021-05-17 02:23:45,Koma,Alex,Odecka,Adam,
+2021-05-17 02:45:00,Koma,Alex,Odecka,Adam,
+2021-05-17 02:51:06,All The World's A Stage,Alex,Tawnos,Adam,
+2021-05-17 03:16:58,All The World's A Stage,Alex,Tawnos,Adam,
+2021-05-17 03:57:39,Mrs. The_Beef,Alex,Tawnos,Adam,
+2021-05-24 01:58:37,Daxos,Alex,Odecka,Adam,
+2021-05-24 01:19:00,Odecka,Adam,Daxos,Alex,
+2021-05-24 02:51:47,Daxos,Alex,Odecka,Adam,
+2021-05-24 03:06:48,*Marwyn,Adam,Koma,Alex,
+2021-05-24 03:27:31,*Marwyn,Adam,Koma,Alex,
+2021-05-24 03:55:10,Drowning Emrakul,Adam,Chandra,Alex,
+2021-05-31 01:34:55,8.5t,Alex,Kaalia,Adam,
+2021-05-31 01:55:44,8.5t,Alex,Kaalia,Adam,
+2021-05-31 02:24:10,To the Yawgflame,Alex,Odecka,Adam,
+2021-05-31 02:54:26,Odecka,Adam,To the Yawgflame,Alex,
+2021-05-31 03:22:16,To the Yawgflame,Alex,Odecka,Adam,
+2021-05-31 04:00:00,Tawnos,Adam,Daxos,Alex,
+2021-06-07 02:13:01,To the Yawgflame,Alex,Tawnos,Adam,
+2021-06-07 02:32:33,To the Yawgflame,Alex,Tawnos,Adam,
+2021-06-07 03:18:52,Krarkashima,Alex,Kaalia,Adam,
+2021-06-07 03:52:36,Krarkashima,Alex,Kaalia,Adam,
+2021-06-07 04:18:49,Mrs. The_Beef,Alex,Kaalia,Adam,
+2021-06-14 01:42:58,Noble Rot,Adam,Zaxara,Alex,
+2021-06-14 02:08:22,Zaxara,Alex,Noble Rot,Adam,
+2021-06-14 02:35:10,Noble Rot,Adam,Zaxara,Alex,
+2021-06-14 02:59:00,Tawnos,Adam,Zirda,Alex,
+2021-06-14 03:16:17,Zirda,Alex,Tawnos,Adam,
+2021-06-14 03:34:10,Zirda,Alex,Tawnos,Adam,
+2021-06-14 03:59:42,Dagrons,Alex,Drowning Emrakul,Adam,
+2021-06-28 02:05:25,Chatterfang,Alex,Noble Rot,Adam,
+2021-06-28 02:20:48,Chatterfang,Alex,Noble Rot,Adam,
+2021-06-28 02:53:35,Odecka,Adam,Krarkashima,Alex,
+2021-06-28 03:15:31,Krarkashima,Alex,Odecka,Adam,
+2021-06-28 03:42:05,Krarkashima,Alex,Odecka,Adam,
+2021-06-28 04:17:12,Kaalia,Adam,Chatterfang,Alex,
+2021-07-05 01:42:05,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-07-05 02:19:54,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-07-05 03:05:47,Niv-Mizzet=#1,Alex,*Marwyn,Adam,
+2021-07-05 03:25:12,Niv-Mizzet=#1,Alex,*Marwyn,Adam,
+2021-07-05 04:00:16,Mrs. The_Beef,Alex,Kaalia,Adam,
+2021-07-12 01:50:31,Chatterfang,Alex,Tawnos,Adam,
+2021-07-12 02:08:59,Chatterfang,Alex,Tawnos,Adam,
+2021-07-12 02:44:53,Noble Rot,Adam,Chandra,Alex,
+2021-07-12 03:11:20,Chandra,Alex,Noble Rot,Adam,
+2021-07-12 03:41:32,Noble Rot,Adam,Chandra,Alex,
+2021-07-12 04:19:30,*Marwyn,Adam,To the Yawgflame,Alex,
+2021-07-19 02:08:15,Chatterfang,Alex,Cooking With Asmoranomardicadaistinaculdacar,Adam,
+2021-07-19 02:57:53,Cooking With Asmoranomardicadaistinaculdacar,Adam,Chatterfang,Alex,
+2021-07-19 03:46:29,Chatterfang,Alex,Cooking With Asmoranomardicadaistinaculdacar,Adam,
+2021-07-19 04:20:23,Noble Rot,Adam,Krarkashima,Alex,
+2021-07-26 02:35:44,Live Longnd,Alex,Asmor,Adam,
+2021-07-26 03:07:07,Live Longnd,Alex,Asmor,Adam,
+2021-07-26 03:51:15,Live Longnd,Alex,Drowning Emrakul,Adam,
+2021-07-26 04:44:13,Live Longnd,Alex,Drowning Emrakul,Adam,
+2021-07-26 05:19:00,Chatterfang,Alex,Tawnos,Adam,
+2021-07-26 05:49:16,Chatterfang,Alex,Tawnos,Adam,
+2021-07-26 06:18:56,Zirda,Alex,Kaalia,Adam,
+2021-07-26 06:40:49,Kaalia,Adam,Zirda,Alex,
+2021-08-02 01:36:09,Kaalia,Adam,Zirda,Alex,
+2021-08-09 01:41:06,*Marwyn,Adam,Live Longnd,Alex,
+2021-08-09 01:49:52,*Marwyn,Adam,Live Longnd,Alex,
+2021-08-09 02:31:27,8.5t,Alex,Drowning Emrakul,Adam,
+2021-08-09 03:02:47,8.5t,Alex,Drowning Emrakul,Adam,
+2021-08-09 03:26:15,Chandra,Alex,Kaalia,Adam,
+2021-08-09 03:34:29,Kaalia,Adam,Chandra,Alex,
+2021-08-09 03:52:49,Kaalia,Adam,Chandra,Alex,
+2021-08-16 01:56:48,Chatterfang,Alex,Ooze,Adam,
+2021-08-16 02:26:47,Chatterfang,Alex,Ooze,Adam,
+2021-08-16 02:54:39,Mrs. The_Beef,Alex,Kaalia,Adam,
+2021-08-16 03:08:16,Kaalia,Adam,Mrs. The_Beef,Alex,
+2021-08-16 03:23:01,Kaalia,Adam,Mrs. The_Beef,Alex,
+2021-08-16 03:48:22,Zaxara,Alex,Tawnos,Adam,
+2021-08-16 04:26:29,Tawnos,Adam,Zaxara,Alex,
+2021-08-16 05:01:33,Zaxara,Alex,Tawnos,Adam,
+2021-08-23 02:06:12,Live Longnd,Alex,Kaalia,Adam,
+2021-08-23 02:09:51,Kaalia,Adam,Live Longnd,Alex,
+2021-08-23 02:28:29,Live Longnd,Alex,Kaalia,Adam,
+2021-08-23 03:11:58,To the Yawgflame,Alex,Ooze,Adam,
+2021-08-23 03:32:20,To the Yawgflame,Alex,Ooze,Adam,
+2021-08-23 04:05:08,Tawnos,Adam,Krarkashima,Alex,
+2021-08-23 04:28:06,Tawnos,Adam,Krarkashima,Alex,
+2021-08-23 04:50:47,Dagrons,Alex,Kaalia,Adam,
+2021-08-23 04:59:48,Kaalia,Adam,Dagrons,Alex,
+2021-08-23 05:11:50,Kaalia,Adam,Dagrons,Alex,
+2021-08-23 05:56:47,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-08-23 06:19:35,Drowning Emrakul,Adam,Chatterfang,Alex,
+2021-08-23 06:37:42,Drowning Emrakul,Adam,Chatterfang,Alex,
+2021-08-30 02:00:45,Mrs. The_Beef,Alex,Tawnos,Adam,
+2021-08-30 02:25:40,Mrs. The_Beef,Alex,Tawnos,Adam,
+2021-08-30 03:26:58,Live Longnd,Alex,Noble Rot,Adam,
+2021-08-30 03:58:42,Noble Rot,Adam,Live Longnd,Alex,
+2021-08-30 04:45:16,Live Longnd,Alex,Noble Rot,Adam,
+2021-08-30 05:24:52,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-08-30 05:45:47,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-09-06 01:51:57,Live Longnd,Alex,Ooze,Adam,
+2021-09-06 02:10:03,Live Longnd,Alex,Ooze,Adam,
+2021-09-06 03:08:43,*Marwyn,Adam,Zirda,Alex,
+2021-09-06 03:22:48,*Marwyn,Adam,Zirda,Alex,
+2021-09-06 05:22:00,8.5t,Alex,Noble Rot,Adam,
+2021-09-13 01:47:03,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-09-13 02:12:30,Drowning Emrakul,Adam,Chatterfang,Alex,
+2021-09-13 02:33:50,Chatterfang,Alex,Drowning Emrakul,Adam,
+2021-09-13 03:13:22,To the Yawgflame,Alex,*Marwyn,Adam,
+2021-09-13 03:37:27,*Marwyn,Adam,To the Yawgflame,Alex,
+2021-09-13 03:54:31,To the Yawgflame,Alex,*Marwyn,Adam,
+2021-09-13 04:24:49,Intet,Alex,Kaalia,Adam,
+2021-09-13 04:42:11,Intet,Alex,Kaalia,Adam,
+2021-09-20 02:13:58,Live Longnd,Alex,Ooze,Adam,
+2021-09-20 02:48:46,Live Longnd,Alex,Ooze,Adam,
+2021-09-20 03:18:57,Noble Rot,Adam,Zaxara,Alex,
+2021-09-20 03:47:48,Zaxara,Alex,Noble Rot,Adam,
+2021-09-20 04:12:53,Zaxara,Alex,Noble Rot,Adam,
+2021-10-04 01:52:15,Krarkashima,Alex,Tawnos,Adam,
+2021-10-04 02:13:59,Krarkashima,Alex,Tawnos,Adam,
+2021-10-04 02:38:43,Ooze,Adam,Mrs. The_Beef,Alex,
+2021-10-04 02:56:57,Mrs. The_Beef,Alex,Ooze,Adam,
+2021-10-04 03:13:06,Ooze,Adam,Mrs. The_Beef,Alex,
+2021-10-04 03:54:55,Live Longnd,Alex,Noble Rot,Adam,
+2021-10-11 01:47:37,Drowning Emrakul,Adam,Brallin,Alex,
+2021-10-11 02:15:22,Brallin,Alex,Drowning Emrakul,Adam,
+2021-10-11 02:38:31,Brallin,Alex,Drowning Emrakul,Adam,
+2021-10-11 03:14:00,Niv-Mizzet=1,Alex,Tawnos,Adam,
+2021-10-11 03:43:40,Niv-Mizzet=1,Alex,Tawnos,Adam,
+2021-10-11 04:13:16,Chandra,Alex,Kaalia,Adam,
+2021-10-11 04:33:34,Kaalia,Adam,Chandra,Alex,
+2021-10-11 05:00:42,Chandra,Alex,Kaalia,Adam,
+2021-10-18 01:32:21,Live Longnd,Alex,*Marwyn,Adam,
+2021-10-18 02:07:34,Live Longnd,Alex,*Marwyn,Adam,
+2021-10-18 02:35:42,Niv-Mizzet=#1,Alex,Drowning Emrakul,Adam,
+2021-10-18 02:57:59,Drowning Emrakul,Adam,Niv-Mizzet=#1,Alex,
+2021-10-18 03:16:30,Niv-Mizzet=#1,Alex,Drowning Emrakul,Adam,
+2021-10-18 03:54:43,Ooze,Adam,Mrs. The_Beef,Alex,
+2021-10-18 04:07:37,Ooze,Adam,Mrs. The_Beef,Alex,
+2021-11-08 02:07:17,Live Longnd,Alex,Korvold,Adam,
+2021-11-08 02:32:28,Live Longnd,Alex,Korvold,Adam,
+2021-11-08 03:12:59,Krarkashima,Alex,Tawnos,Adam,
+2021-11-08 03:25:35,Krarkashima,Alex,Tawnos,Adam,
+2021-11-08 04:06:26,Zirda,Alex,Drowning Emrakul,Adam,
+2021-11-08 04:23:06,Zirda,Alex,Drowning Emrakul,Adam,
+2021-11-08 05:05:31,To The Yawgflame,Alex,*Marwyn,Adam,
+2021-11-08 05:25:14,To The Yawgflame,Alex,*Marwyn,Adam,
+2021-11-15 02:11:12,Live Longnd,Alex,Korvold,Adam,
+2021-11-15 02:51:20,Live Longnd,Alex,Korvold,Adam,
+2021-11-15 05:25:17,Zirda,Alex,Tawnos,Adam,
+2021-11-15 06:27:35,Tawnos,Adam,Zirda,Alex,
+2021-11-15 07:01:51,Zirda,Alex,Tawnos,Adam,
+2021-11-29 02:04:22,Tawnos,Adam,Zaxara,Alex,
+2021-11-29 02:04:23,Zaxara,Alex,Tawnos,Adam,
+2021-11-29 02:22:37,Zaxara,Alex,Tawnos,Adam,
+2021-12-06 01:27:57,Krarkashima,Alex,Korvold,Adam,
+2021-12-06 01:48:00,Korvold,Adam,Krarkashima,Alex,
+2021-12-06 02:05:58,Krarkashima,Alex,Korvold,Adam,
+2021-12-06 02:49:31,Live Longnd,Alex,*Marwyn,Adam,
+2021-12-06 02:58:26,Live Longnd,Alex,*Marwyn,Adam,
+2021-12-06 03:22:50,Chatterfang,Alex,Ooze,Adam,
+2021-12-06 03:48:24,Chatterfang,Alex,Ooze,Adam,
+2021-12-06 04:05:31,Kaalia,Adam,Dagrons,Alex,
+2021-12-06 04:13:02,Kaalia,Adam,Dagrons,Alex,
diff --git a/standings.gv b/standings.gv
new file mode 100644
index 0000000..6f67b5b
--- /dev/null
+++ b/standings.gv
@@ -0,0 +1,156 @@
+digraph{
+ bgcolor="silver";
+ node [shape="rectangle"];
+ d_0 [label=Alex>];
+ d_1 [label=Adam>];
+ d_2 [label=Adam>];
+ d_3 [label=Alex>];
+ d_4 [label=Alex>];
+ d_5 [label=Adam>];
+ d_6 [label=Alex>];
+ d_7 [label=Adam>];
+ d_8 [label=Alex>];
+ d_9 [label=Alex>];
+ d_10 [label=<8.5t
Alex>];
+ d_11 [label=Alex>];
+ d_12 [label=Adam>];
+ d_13 [label=Alex>];
+ d_14 [label=Alex>];
+ d_15 [label=Adam>];
+ d_16 [label=<*Marwyn
Adam>];
+ d_17 [label=Adam>];
+ d_18 [label=Alex>];
+ d_19 [label=Alex>];
+ d_20 [label=Alex>];
+ d_21 [label=Alex>];
+ d_22 [label=Alex>];
+ d_23 [label=Adam>];
+ d_24 [label=Adam>];
+ d_25 [label=Adam>];
+ d_26 [label=Alex>];
+ d_27 [label=Adam>];
+ d_28 [label=Alex>];
+ d_29 [label=Adam>];
+ d_30 [label=Alex>];
+ d_31 [label=Adam>];
+ d_32 [label=Adam>];
+ d_33 [label=Alex>];
+ d_34 [label=Alex>];
+ d_35 [label=Adam>];
+ d_36 [label=Alex>];
+ d_37 [label=Adam>];
+ d_38 [label=Adam>];
+ d_39 [label=Alex>];
+ d_40 [label=Alex>];
+ d_41 [label=Adam>];
+ d_42 [label=Alex>];
+
+ d_0 -> d_1;
+ d_2 -> d_3 [label="2"];
+ d_4 -> d_5;
+ d_6 -> d_7;
+ d_2 -> d_8;
+ d_4 -> d_7 [label="3"];
+ d_5 -> d_6;
+ d_9 -> d_1;
+ d_10 -> d_2 [label="3"];
+ d_0 -> d_7;
+ d_1 -> d_3;
+ d_9 -> d_5;
+ d_11 -> d_1;
+ d_3 -> d_5;
+ d_4 -> d_2 [label="2"];
+ d_7 -> d_8;
+ d_10 -> d_5;
+ d_11 -> d_2;
+ d_9 -> d_7;
+ d_8 -> d_5;
+ d_8 -> d_12;
+ d_13 -> d_1;
+ d_14 -> d_15;
+ d_13 -> d_12 [label="2"];
+ d_3 -> d_7 [label="2"];
+ d_16 -> d_13;
+ d_6 -> d_12;
+ d_2 -> d_13;
+ d_4 -> d_1 [label="2"];
+ d_17 -> d_18;
+ d_7 -> d_13 [label="2"];
+ d_16 -> d_19 [label="2"];
+ d_20 -> d_17;
+ d_0 -> d_12 [label="2"];
+ d_6 -> d_2 [label="2"];
+ d_16 -> d_6 [label="2"];
+ d_10 -> d_7 [label="2"];
+ d_2 -> d_21;
+ d_16 -> d_9;
+ d_21 -> d_17 [label="3"];
+ d_12 -> d_22;
+ d_0 -> d_17;
+ d_10 -> d_23;
+ d_19 -> d_2;
+ d_4 -> d_16;
+ d_10 -> d_24;
+ d_19 -> d_17;
+ d_10 -> d_25;
+ d_1 -> d_19;
+ d_7 -> d_21;
+ d_13 -> d_2;
+ d_16 -> d_10;
+ d_1 -> d_21;
+ d_3 -> d_12;
+ d_26 -> d_27;
+ d_18 -> d_2 [label="2"];
+ d_28 -> d_29;
+ d_21 -> d_29;
+ d_1 -> d_6;
+ d_28 -> d_17;
+ d_19 -> d_7;
+ d_30 -> d_31;
+ d_11 -> d_32;
+ d_21 -> d_32 [label="2"];
+ d_33 -> d_31;
+ d_16 -> d_30;
+ d_10 -> d_17;
+ d_19 -> d_31;
+ d_32 -> d_33;
+ d_19 -> d_32;
+ d_13 -> d_17;
+ d_7 -> d_4;
+ d_6 -> d_32 [label="2"];
+ d_9 -> d_2;
+ d_34 -> d_7;
+ d_13 -> d_31;
+ d_17 -> d_34;
+ d_34 -> d_2 [label="3"];
+ d_0 -> d_16;
+ d_34 -> d_32 [label="2"];
+ d_7 -> d_3;
+ d_34 -> d_35;
+ d_36 -> d_37;
+ d_36 -> d_2;
+ d_17 -> d_6;
+ d_16 -> d_36;
+ d_17 -> d_3;
+ d_34 -> d_38 [label="2"];
+ d_17 -> d_21;
+ d_4 -> d_32 [label="2"];
+ d_36 -> d_17;
+ d_19 -> d_38;
+ d_32 -> d_13;
+ d_17 -> d_9 [label="2"];
+ d_2 -> d_34;
+ d_36 -> d_7 [label="2"];
+ d_36 -> d_38 [label="2"];
+ d_19 -> d_16;
+ d_39 -> d_17;
+ d_13 -> d_32 [label="2"];
+ d_38 -> d_21 [label="2"];
+ d_40 -> d_32;
+ d_3 -> d_17;
+ d_36 -> d_16 [label="2"];
+ d_0 -> d_2;
+ d_36 -> d_41 [label="2"];
+ d_42 -> d_16;
+ d_13 -> d_41;
+}
diff --git a/standings.png b/standings.png
new file mode 100644
index 0000000..edcb583
Binary files /dev/null and b/standings.png differ