diff --git a/index.html b/index.html index 2e84717..ebc7d3d 100644 --- a/index.html +++ b/index.html @@ -31,7 +31,7 @@

- Data source: OpenFootball. There are a few errors. + Data source: OpenFootball. Transform and reduce scripts are built in Haskell, publically available in the source code.

@@ -55,12 +55,31 @@
TODO
- Check all ribbon hovers for strange ET/P - No finals in 1954 (Germany Hungary) - No finals in 1962 (Chile Brazil), strange Brazil-Czech + 1930: OK + 1934: Lots of errors? + 1938: + 1950: + 1954: No finals (Germany Hungary) + 1958: + 1962: No finals (Chile Brazil), strange Brazil-Czech Cause: teams already played eachother (uh oh) Solution: Add "multi" flag to something. Split diagram harder. Redraw chords within arc to have new ones. + 1966: + 1970: + 1974: + 1978: + 1982: + 1986: + 1990: + 1994: + 1998: + 2002: + 2006: + 2010: + 2014: + update gogs + update drone tweet it!
diff --git a/js/bundle.js b/js/bundle.js index 8adf75c..f295d3b 100644 --- a/js/bundle.js +++ b/js/bundle.js @@ -244,6 +244,25 @@ return v.tId === g.t2; }); + var s1 = matrix[i1][i2] || 0; + var s2 = matrix[i2][i1] || 0; + + if (g.sp1) { + s1 += g.sp1; + } else if (g.se1) { + s1 += g.se1; + } else { + s1 += g.s1; + } + + if (g.sp2) { + s2 += g.sp2; + } else if (g.se2) { + s2 += g.se2; + } else { + s2 += g.s2; + } + matrix[i1][i2] = g.s1 + g.se1 + g.sp1; matrix[i2][i1] = g.s2 + g.se2 + g.sp2; }, []); @@ -490,13 +509,30 @@ var s1 = game.t1 === t1.tId ? game.s1 : game.s2; var s2 = game.t2 === t2.tId ? game.s2 : game.s1; - var e1 = game.se1 ? '(+' + game.se1 + ' in extended time)' : ''; - var e2 = game.se2 ? '(+' + game.se2 + ' in extended time)' : ''; + if (game.sp1 && game.sp2) { + s1 = game.t1 === t1.tId ? game.sp1 : game.sp2; + s2 = game.t2 === t2.tId ? game.sp2 : game.sp1; + + s1 += " (Penalties)"; + s2 += " (Penalties)"; + } else if (game.se1 && game.se2) { + s1 = game.t1 === t1.tId ? game.se1 : game.se2; + s2 = game.t2 === t2.tId ? game.se2 : game.se1; + + s1 += " (Extended time)"; + s2 += " (Extended time)"; + } - var p1 = game.sp1 ? '(+' + game.sp1 + ' in penalties)' : ''; - var p2 = game.sp2 ? '(+' + game.sp2 + ' in penalties)' : ''; + // const s1 = game.t1 === t1.tId ? game.s1 : game.s2; + // const s2 = game.t2 === t2.tId ? game.s2 : game.s1; + // + // const e1 = game.se1 ? `(+${game.se1} in extended time)` : ''; + // const e2 = game.se2 ? `(+${game.se2} in extended time)` : ''; + // + // const p1 = game.sp1 ? `(+${game.sp1} in penalties)` : ''; + // const p2 = game.sp2 ? `(+${game.sp2} in penalties)` : ''; - return c1 + ': ' + s1 + ' ' + e1 + ' ' + p1 + '\n' + c2 + ': ' + s2 + ' ' + e2 + ' ' + p2 + '\n' + data.rounds[game.rId]; + return c1 + ': ' + s1 + '\n' + c2 + ': ' + s2 + '\n' + data.rounds[game.rId]; }); group.append("text").each(function (d) { diff --git a/js/diagram.js b/js/diagram.js index 134a017..d5985cc 100644 --- a/js/diagram.js +++ b/js/diagram.js @@ -223,16 +223,34 @@ const Diagram = { return (v.t1 === t1.tId || v.t1 === t2.tId) && (v.t2 === t1.tId || v.t2 === t2.tId); }); - const s1 = game.t1 === t1.tId ? game.s1 : game.s2; - const s2 = game.t2 === t2.tId ? game.s2 : game.s1; - - const e1 = game.se1 ? `(+${game.se1} in extended time)` : ''; - const e2 = game.se2 ? `(+${game.se2} in extended time)` : ''; + let s1 = game.t1 === t1.tId ? game.s1 : game.s2; + let s2 = game.t2 === t2.tId ? game.s2 : game.s1; - const p1 = game.sp1 ? `(+${game.sp1} in penalties)` : ''; - const p2 = game.sp2 ? `(+${game.sp2} in penalties)` : ''; + if (game.sp1 && game.sp2) { + s1 = game.t1 === t1.tId ? game.sp1 : game.sp2; + s2 = game.t2 === t2.tId ? game.sp2 : game.sp1; - return `${c1}: ${s1} ${e1} ${p1}\n${c2}: ${s2} ${e2} ${p2}\n${data.rounds[game.rId]}`; + s1 += " (Penalties)"; + s2 += " (Penalties)"; + } + else if (game.se1 && game.se2) { + s1 = game.t1 === t1.tId ? game.se1 : game.se2; + s2 = game.t2 === t2.tId ? game.se2 : game.se1; + + s1 += " (Extended time)"; + s2 += " (Extended time)"; + } + + // const s1 = game.t1 === t1.tId ? game.s1 : game.s2; + // const s2 = game.t2 === t2.tId ? game.s2 : game.s1; + // + // const e1 = game.se1 ? `(+${game.se1} in extended time)` : ''; + // const e2 = game.se2 ? `(+${game.se2} in extended time)` : ''; + // + // const p1 = game.sp1 ? `(+${game.sp1} in penalties)` : ''; + // const p2 = game.sp2 ? `(+${game.sp2} in penalties)` : ''; + + return `${c1}: ${s1}\n${c2}: ${s2}\n${data.rounds[game.rId]}`; }); group.append("text") diff --git a/js/matrices.js b/js/matrices.js index 9c16cc4..80696e8 100644 --- a/js/matrices.js +++ b/js/matrices.js @@ -14,6 +14,29 @@ const Matrices = { const i1 = teams.findIndex(v => v.tId === g.t1); const i2 = teams.findIndex(v => v.tId === g.t2); + let s1 = matrix[i1][i2] || 0; + let s2 = matrix[i2][i1] || 0; + + if (g.sp1) { + s1 += g.sp1; + } + else if (g.se1) { + s1 += g.se1; + } + else { + s1 += g.s1; + } + + if (g.sp2) { + s2 += g.sp2; + } + else if (g.se2) { + s2 += g.se2; + } + else { + s2 += g.s2; + } + matrix[i1][i2] = g.s1 + g.se1 + g.sp1; matrix[i2][i1] = g.s2 + g.se2 + g.sp2; }, []);