Achievement Filter

Filter cheevos on the cheevo page.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Achievement Filter
// @namespace    pxgamer
// @version      0.7
// @description  Filter cheevos on the cheevo page.
// @author       pxgamer
// @include      *kat.cr/achievements/
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var year = new Date().getFullYear();

    var assigned   = $('table.achTable tbody tr td.width100perc ul li span.achBadge.assignedAchievement').length;
    var unassigned = $('table.achTable tbody tr td.width100perc ul li span.achBadge').length - assigned;

    $('table.achTable').before('<div style="margin-bottom: 5px;"><span class="showAllCheevos kaButton smallButton normalText">Show All</span> <span class="showOnlyCollected kaButton smallButton normalText">Show Only Achieved ('+assigned+')</span> <span class="showNonCollected kaButton smallButton normalText">Show Non-Collected Achievements ('+unassigned+')</span> <span class="showCurrentCheevos kaButton smallButton normalText">Show Current Achievements</span></div><hr>');

    // Only show achievements you've already got
    $('.showOnlyCollected').on('click', function() {
        $('table.achTable tbody tr td.width100perc ul li').each(function() {
            $(this).show();
        });
        $('table.achTable tbody tr td.width100perc ul li span.achBadge').each(function() {
            if (!$(this).hasClass('assignedAchievement')) {
                $(this).parent().hide();
            }
        });
    });

    // Only show achievements you haven't got
    $('.showNonCollected').on('click', function() {
        $('table.achTable tbody tr td.width100perc ul li').each(function() {
            $(this).show();
        });
        $('table.achTable tbody tr td.width100perc ul li span.achBadge').each(function() {
            if ($(this).hasClass('assignedAchievement')) {
                $(this).parent().hide();
            }
        });
    });

    // Only current achievements
    $('.showCurrentCheevos').on('click', function() {
        $('table.achTable tbody tr td.width100perc ul li').each(function() {
            $(this).show();
        });
        $('table.achTable tbody tr td.width100perc ul li span.achBadge').each(function() {
            if (!$(this).hasClass('assignedAchievement') && $(this).children('a').children('span.achTitle').text().substring(0, 4) < year) {
                $(this).parent().hide();
            }
            if (!$(this).hasClass('assignedAchievement') && $(this).children('a').children('span.achTitle').text().substring($(this).children('a').children('span.achTitle').text().length - 4) < year) {
                $(this).parent().hide();
            }
        });
    });

    // Show all cheevos (reset)
    $('.showAllCheevos').on('click', function() {
        $('table.achTable tbody tr td.width100perc ul li').each(function() {
            $(this).show();
        });
    });
})();