derStandard Smart + PUR

Bring back looking at who up/down voted and sort by positive/negative comments in the derStandard forum.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         derStandard Smart + PUR
// @description  Bring back looking at who up/down voted and sort by positive/negative comments in the derStandard forum.
// @version      1.0
// @namespace    GazonkFoo
// @license      EUPL-1.2
// @icon         https://www.derstandard.at/favicon.ico
// @match        https://*.derstandard.at/*
// @match        https://*.derstandard.de/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

const GROUPS_TO_ADD = ["pur", "sco", "sne"];
const GROUP_FIELD = "cognito:groups";

const jsonParse = JSON.parse;
JSON.parse = function () {
  const jwt = jsonParse.apply(this, arguments);

  if (jwt?.token_use === "id")
    jwt[GROUP_FIELD] = GROUPS_TO_ADD.concat(jwt[GROUP_FIELD] || []);

  return jwt;
};

document.onreadystatechange = function () {
  document.body.dataset.pur = true;
}