CustomsForge min songs filter

Add minimum songs filter to CustomsForge artist search

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         CustomsForge min songs filter
// @license      WTFPL; http://www.wtfpl.net/
// @namespace    http://ttmyller.azurewebsites.net/
// @version      0.1
// @description  Add minimum songs filter to CustomsForge artist search
// @author       Teemu Myller
// @match        http://ignition.customsforge.com/search/artists
// @require      https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var minSongs = $('<span>Min songs: &nbsp; <select id="minSongs" /> &nbsp; </span>');
    var select = $('#minSongs', minSongs);
    for (var i=1; i<=50; i++) {
        $('<option value="' + i + '">' + i + '</option>').appendTo(select);
    }
    select.change(function() { hideArtistsWithSongsLessThan(this.value); });
    $('nav', '#content-header-artists').prepend(minSongs);
})();

function hideArtistsWithSongsLessThan(count) {
    if (count < 1) {
        $('a', '#artists-column').show();
    } else {
        var regex = /\((\d+)\)/;
        $('a', '#artists-column').each(function() {
            var item = $(this);
            var songs = parseInt(item.text().match(regex)[1]);
            if (songs < count) {
                item.hide();
            } else {
                item.show();
            }
        });
    }
}