Greasy Fork is available in English.

2022 Snopes tldr; (fact-check page:Show hidden Answers at top)

Enhance Snopes.com site by grabbing the "answer" from topics so that I dont have to read the entire article, I can just skim the interesting ones.

// ==UserScript==
// @name           2022 Snopes tldr; (fact-check page:Show hidden Answers at top)
// @namespace      http://www.hivemindtechnology.com
// @author         m1m1k
// @license MIT
// @version        2.0
// @description    Enhance Snopes.com site by grabbing the "answer" from topics so that I dont have to read the entire article, I can just skim the interesting ones.
// @include        https://www.snopes.com/fact-check/*
// @include        https://snopes.com/fact-check/*
// @grant    GM_addStyle
// ==/UserScript==


function isNullOrWhitespace( input ) {
  return !input || !input.trim();
}
function defaultIfNull(arg, defaultValue) { return isNullOrWhitespace(arg) ? defaultValue : arg; }

function RegexReplace(strInput, iMatchNum = 1, strPattern) {
  strInput = defaultIfNull(strInput, "https://www.snopes.com/fact-check/rating/unknown");
  strPattern = defaultIfNull(strPattern, "https?://(.*)/fact-check/rating/(.*)");
  var esc_Input = unescape(strInput);
  var exp = new RegExp(strPattern, "gi");
  return esc_Input.replace(exp,"$"+iMatchNum);
}

function Trim(strInput, strCharToTrim = '\s')
{
    strInput = defaultIfNull(strInput, "");
    // only kill them at beginning or end, similar to trim()
    var myRegex = new RegExp("/^"+ strCharToTrim + "+|" +
                           strCharToTrim + "+$", "gm");
    return strInput.replace(myRegex,'');
}

function getBuriedAnswerFromPageContent() {
    var factCheckAnswer = "unknown";
    // String-of-waterfalls Fallback-to-older-styled-articles scheme: (Latest-To-Oldest)
    // 2022 LATEST "fact-check" Articles have a "rating" (stopsign) SVG vector icon, the a link to the icon is named "false", "true", "misattributed", "etc"
    var v2015_imgLinks = document.querySelectorAll("#article-content img");
    var v2013_SVGLinks = document.querySelectorAll("a.rating_link_wrapper");
    var v2010_Table = document.querySelectorAll("#article-content font.status_color");
    var v2009_PTags = document.querySelectorAll("#article-content font");

    var v2008_Status = document.querySelectorAll("#article-content font.sect_font_style");
    var innerTextTitles = [];
    if(v2015_imgLinks.length != 0) // this is an "older" style page, which doesn't contain the newer fact-check icons, try for a table instead
    {
        // https://www.snopes.com/fact-check/trump-mexicans-puerto-rico/
        factCheckAnswer = RegexReplace(v2015_imgLinks[0].src, 1, "https://www.snopes.com/images/m/(.*).png");
    }
    if(v2013_SVGLinks.length != 0) // this is an "older" style page, which doesn't contain the newer fact-check icons, try for a table instead
    {
        factCheckAnswer = RegexReplace(v2013_SVGLinks[0].href, 2);
    }
    else if(v2010_Table.length != 0)
    {
        // https://www.snopes.com/fact-check/vin-car-thieves/
        // example: https://www.snopes.com/fact-check/vitamin-see/
        // <table><tbody><tr><td valign="CENTER"><img src="/images/mixture.gif" pinger-seen="true"></td><td valign="TOP"><font size="5" color="" class="status_color"><b>MIXTURE</b></font></td></tr></tbody></table>
        // factCheckAnswer = v2010_Table[0].innerText;  // works for the "first" one

        v2010_Table.forEach(function (tableRow) {
            innerTextTitles.push(Trim(tableRow.innerText, "[\:]"));
        });
        factCheckAnswer = innerTextTitles.join();
    }
    else if(v2009_PTags.length != 0)
    {
        // https://www.snopes.com/fact-check/four-legged-flusher/
        //factCheckAnswer = Trim(v2009_PTags[1].nextSibling.innerText);
        var RED = "#FF0000";
        var RED2 = "#CC0000";
        var GREEN = "#37628D";
        v2009_PTags.forEach(function (fontElement) {
            if (fontElement.hasAttribute("color") &&
                (fontElement.getAttribute("color") == RED ||
                 fontElement.getAttribute("color") == RED2 ||
                 fontElement.getAttribute("color") == GREEN)) {
                //innerTextTitles.push(RegexReplace(fontElement.innerText, 1, "(\s*)[\:\.]"));
                innerTextTitles.push(Trim(fontElement.innerText, "[\:\.]"));
            }
        });
        factCheckAnswer = innerTextTitles.join();
    }
    else if(v2008_Status.length != 0)
    {
        // example: https://www.snopes.com/fact-check/anti-freeze-in-vitamin-water/
        factCheckAnswer = Trim(v2008_Status[0].innerText, '[\.]');
    }
    else{
        // "UNKNOWN"
        // TBD: Handle these Fallthrough example, no "answer"
        // https://www.snopes.com/fact-check/recall-church-vitamin-gummies/
        // https://www.snopes.com/fact-check/republicans-trump-supporters-grammar/
        // https://www.snopes.com/fact-check/trump-national-guard-troops-hotel/
        // https://www.snopes.com/fact-check/who-brought-the-cat/
        // https://www.snopes.com/fact-check/nokia/
        // https://www.snopes.com/fact-check/jest-in-time-iii/
        // https://www.snopes.com/fact-check/trump-cecil-legal-fees/

        // FIX ME: Broken
        // https://www.snopes.com/fact-check/isis-middle-eastern-men-dealership/
    }
    console.log('factCheckAnswer:' + factCheckAnswer);
    factCheckAnswer = defaultIfNull(factCheckAnswer, "unknown");
    return factCheckAnswer;
}
const factCheckAnswer = getBuriedAnswerFromPageContent();




// allow text selection by disabling anything that can prevent copy+pasta
void(document.onselectstart=null)

function colorFactCheckTags( colorLeft = "gray", colorRight ) {
    colorRight = defaultIfNull(colorRight, colorLeft);
GM_addStyle ( `
main .section_title_wrap span.section_title:after {
    background: `+colorRight+`;
}
main .section_title_wrap .section_title_arrow,
main .section_title_wrap span.section_title {
    background: `+colorLeft+`;
}
`
);
}

// Implement Missing Handy Language Funcs (Dictionary)
// https://stackoverflow.com/questions/11393200/how-to-find-value-using-key-in-javascript-dictionary
var dict = {};
var DictSetPair = function (myKey, myValue) {
    dict[myKey.toLowerCase()] = myValue;
};
var DictGetValue = function (myKey) {
    return dict[myKey.toLowerCase()];
};


// ---------------- Harmless / Satire / Inaccurate ----------------
DictSetPair("misattributed", "#bedbed"); // lightblue
DictSetPair("miscaptioned", "#bedbed");  // lightblue
DictSetPair("INCORRECTLY ATTRIBUTED", "#bedbed");  // lightblue
DictSetPair("labeled-satire", "lavender");
DictSetPair("originated-as-satire", "lavender");
DictSetPair("Real video; inaccurate description", "lavender");
DictSetPair("REAL PHOTOGRAPHS; INACCURATE DESCRIPTION", "lavender");

// ----------------BAD / FALSE / INCORRECT ----------------
DictSetPair("false", "red");             // red
DictSetPair("scam", "red");              // red
DictSetPair("unproven", "#fedfed");      // lightred
DictSetPair("LEGEND", "#fedfed");        // lightred
DictSetPair("mostly-false", "#fedfed");  // lightred

// ----------------GOOD / TRUE / CORRECT ----------------
DictSetPair("true", "#58f58f");          // green
DictSetPair("mostly-true", "lightgreen");          // green
DictSetPair("correct-attribution", "#58f58f");// green
DictSetPair("recall", "#58f58f");// green

// ----------------UNKNOWN / NA / Not enough data ----------------
DictSetPair("news", "#fbd458");          // default/normal/yellow
DictSetPair("post", "#fbd458");          // default/normal/yellow
DictSetPair("MIX", "gray");
DictSetPair("Undetermined", "gray");
DictSetPair("outdated", "#fedfed");
DictSetPair("unknown", "gray");


// Set the SectionTitle text to the "answer" plus color it accordingly.
const sectionTitle = document.querySelectorAll("span.section_title")[0];
sectionTitle.innerHTML = factCheckAnswer;
var colorPairReturned = DictGetValue(factCheckAnswer);
console.log('colorPairReturned:' + colorPairReturned);
if(typeof(colorPairReturned) !== 'undefined')
{
    colorFactCheckTags(colorPairReturned);
}
else
{
    // Iterate through the object
    for (const key in dict) {
        if (dict.hasOwnProperty(key) && factCheckAnswer.toLowerCase().includes(key))
        {
            colorFactCheckTags(DictGetValue(factCheckAnswer), "lightgreen");
        }
    };
}