Skip to content

Instantly share code, notes, and snippets.

@botic
Last active October 13, 2020 20:36
Show Gist options
  • Save botic/05402e4020a5491764d4527a46c0f902 to your computer and use it in GitHub Desktop.
Save botic/05402e4020a5491764d4527a46c0f902 to your computer and use it in GitHub Desktop.
Wiener Bezirksvertretungswahlen 2020
{
"90100": [
{
"name": "SPÖ",
"mandate": 10,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 2,
"mandate_plusminus": -6
},
{
"name": "GRÜNE",
"mandate": 7,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 17,
"mandate_plusminus": 7
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 0
}
],
"90200": [
{
"name": "SPÖ",
"mandate": 23,
"mandate_plusminus": 6
},
{
"name": "FPÖ",
"mandate": 3,
"mandate_plusminus": -11
},
{
"name": "GRÜNE",
"mandate": 19,
"mandate_plusminus": -3
},
{
"name": "ÖVP",
"mandate": 8,
"mandate_plusminus": 5
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
}
],
"90300": [
{
"name": "SPÖ",
"mandate": 22,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 2,
"mandate_plusminus": -10
},
{
"name": "GRÜNE",
"mandate": 13,
"mandate_plusminus": 2
},
{
"name": "ÖVP",
"mandate": 10,
"mandate_plusminus": 4
},
{
"name": "NEOS",
"mandate": 5,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
}
],
"90400": [
{
"name": "SPÖ",
"mandate": 15,
"mandate_plusminus": 2
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -5
},
{
"name": "GRÜNE",
"mandate": 12,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 8,
"mandate_plusminus": 1
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"90500": [
{
"name": "SPÖ",
"mandate": 15,
"mandate_plusminus": -1
},
{
"name": "FPÖ",
"mandate": 2,
"mandate_plusminus": -6
},
{
"name": "GRÜNE",
"mandate": 12,
"mandate_plusminus": 2
},
{
"name": "ÖVP",
"mandate": 6,
"mandate_plusminus": 3
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 1
}
],
"90600": [
{
"name": "SPÖ",
"mandate": 16,
"mandate_plusminus": 2
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -5
},
{
"name": "GRÜNE",
"mandate": 13,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 6,
"mandate_plusminus": 1
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"90700": [
{
"name": "SPÖ",
"mandate": 9,
"mandate_plusminus": -1
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -4
},
{
"name": "GRÜNE",
"mandate": 19,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 6,
"mandate_plusminus": 2
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 2
}
],
"90800": [
{
"name": "SPÖ",
"mandate": 8,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -3
},
{
"name": "GRÜNE",
"mandate": 14,
"mandate_plusminus": 2
},
{
"name": "ÖVP",
"mandate": 13,
"mandate_plusminus": 0
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"90900": [
{
"name": "SPÖ",
"mandate": 13,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -5
},
{
"name": "GRÜNE",
"mandate": 13,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 8,
"mandate_plusminus": 2
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91000": [
{
"name": "SPÖ",
"mandate": 30,
"mandate_plusminus": 5
},
{
"name": "FPÖ",
"mandate": 6,
"mandate_plusminus": -18
},
{
"name": "GRÜNE",
"mandate": 5,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 11,
"mandate_plusminus": 7
},
{
"name": "NEOS",
"mandate": 2,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "SÖZ",
"mandate": 2,
"mandate_plusminus": 2
}
],
"91100": [
{
"name": "SPÖ",
"mandate": 26,
"mandate_plusminus": 1
},
{
"name": "FPÖ",
"mandate": 18,
"mandate_plusminus": -8
},
{
"name": "GRÜNE",
"mandate": 4,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 7,
"mandate_plusminus": 4
},
{
"name": "NEOS",
"mandate": 2,
"mandate_plusminus": 0
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "SÖZ",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91200": [
{
"name": "SPÖ",
"mandate": 26,
"mandate_plusminus": 2
},
{
"name": "FPÖ",
"mandate": 4,
"mandate_plusminus": -14
},
{
"name": "GRÜNE",
"mandate": 9,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 10,
"mandate_plusminus": 5
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 1
},
{
"name": "PH",
"mandate": 1,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "SÖZ",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91300": [
{
"name": "SPÖ",
"mandate": 10,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -6
},
{
"name": "GRÜNE",
"mandate": 6,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 19,
"mandate_plusminus": 3
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 2
}
],
"91400": [
{
"name": "SPÖ",
"mandate": 22,
"mandate_plusminus": 2
},
{
"name": "FPÖ",
"mandate": 3,
"mandate_plusminus": -13
},
{
"name": "GRÜNE",
"mandate": 10,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 14,
"mandate_plusminus": 6
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91500": [
{
"name": "SPÖ",
"mandate": 20,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 3,
"mandate_plusminus": -10
},
{
"name": "GRÜNE",
"mandate": 12,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 7,
"mandate_plusminus": 4
},
{
"name": "NEOS",
"mandate": 2,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 3,
"mandate_plusminus": 2
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "SÖZ",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91600": [
{
"name": "SPÖ",
"mandate": 25,
"mandate_plusminus": 1
},
{
"name": "FPÖ",
"mandate": 3,
"mandate_plusminus": -14
},
{
"name": "GRÜNE",
"mandate": 13,
"mandate_plusminus": 3
},
{
"name": "ÖVP",
"mandate": 11,
"mandate_plusminus": 6
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "SÖZ",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91700": [
{
"name": "SPÖ",
"mandate": 15,
"mandate_plusminus": 1
},
{
"name": "FPÖ",
"mandate": 2,
"mandate_plusminus": -8
},
{
"name": "GRÜNE",
"mandate": 11,
"mandate_plusminus": 3
},
{
"name": "ÖVP",
"mandate": 8,
"mandate_plusminus": 3
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 1,
"mandate_plusminus": 1
}
],
"91800": [
{
"name": "SPÖ",
"mandate": 7,
"mandate_plusminus": -2
},
{
"name": "FPÖ",
"mandate": 1,
"mandate_plusminus": -4
},
{
"name": "GRÜNE",
"mandate": 17,
"mandate_plusminus": 5
},
{
"name": "ÖVP",
"mandate": 12,
"mandate_plusminus": 1
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 0
}
],
"91900": [
{
"name": "SPÖ",
"mandate": 14,
"mandate_plusminus": 0
},
{
"name": "FPÖ",
"mandate": 2,
"mandate_plusminus": -7
},
{
"name": "GRÜNE",
"mandate": 8,
"mandate_plusminus": 3
},
{
"name": "ÖVP",
"mandate": 19,
"mandate_plusminus": 3
},
{
"name": "NEOS",
"mandate": 5,
"mandate_plusminus": 1
}
],
"92000": [
{
"name": "SPÖ",
"mandate": 27,
"mandate_plusminus": 2
},
{
"name": "FPÖ",
"mandate": 4,
"mandate_plusminus": -14
},
{
"name": "GRÜNE",
"mandate": 10,
"mandate_plusminus": 3
},
{
"name": "ÖVP",
"mandate": 8,
"mandate_plusminus": 5
},
{
"name": "NEOS",
"mandate": 2,
"mandate_plusminus": 0
},
{
"name": "LINKS",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "HC",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "SÖZ",
"mandate": 1,
"mandate_plusminus": 1
}
],
"92100": [
{
"name": "SPÖ",
"mandate": 29,
"mandate_plusminus": 5
},
{
"name": "FPÖ",
"mandate": 6,
"mandate_plusminus": -17
},
{
"name": "GRÜNE",
"mandate": 5,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 11,
"mandate_plusminus": 7
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "WIFF",
"mandate": 3,
"mandate_plusminus": 0
}
],
"92200": [
{
"name": "SPÖ",
"mandate": 29,
"mandate_plusminus": 3
},
{
"name": "FPÖ",
"mandate": 6,
"mandate_plusminus": -17
},
{
"name": "GRÜNE",
"mandate": 7,
"mandate_plusminus": 2
},
{
"name": "ÖVP",
"mandate": 12,
"mandate_plusminus": 8
},
{
"name": "NEOS",
"mandate": 3,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
}
],
"92300": [
{
"name": "SPÖ",
"mandate": 26,
"mandate_plusminus": 1
},
{
"name": "FPÖ",
"mandate": 5,
"mandate_plusminus": -15
},
{
"name": "GRÜNE",
"mandate": 7,
"mandate_plusminus": 1
},
{
"name": "ÖVP",
"mandate": 14,
"mandate_plusminus": 8
},
{
"name": "NEOS",
"mandate": 4,
"mandate_plusminus": 1
},
{
"name": "PRO",
"mandate": 1,
"mandate_plusminus": 1
},
{
"name": "HC",
"mandate": 2,
"mandate_plusminus": 2
},
{
"name": "BIER",
"mandate": 1,
"mandate_plusminus": 1
}
]
}
let data = [];
let mandates = document.querySelectorAll(".mandate-party");
mandates.forEach(mandate => {
const [match, count, sign, diff] = /(\d+) \((.)(\d+)\)/.exec(mandate.querySelector(".mandate-num").textContent);
const party = mandate.querySelector("abbr").textContent;
const change = (sign === "-" ? -1 : 1) * parseInt(diff);
data.push({
name: party,
mandate: parseInt(count),
mandate_plusminus: change,
mandate_plusminusText: (change === 0 ? "±0" : `${change < 0 ? "-" : "+"}${Math.abs(change)}`),
});
});
copy(`"${(/(\d+)\.html$/.exec(document.location))[1]}00": ` + JSON.stringify(data.filter(party => party.mandate > 0), null, 4));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment