Sleazy Fork is available in English.

Danbooru Artist Search Tweaks

Make Danbooru Artist search slightly, subjectively better.

Από την 04/12/2016. Δείτε την τελευταία έκδοση.

// ==UserScript==
// @name         Danbooru Artist Search Tweaks
// @version      2.0.0
// @description  Make Danbooru Artist search slightly, subjectively better.
// @author       ForgottenUmbrella
// @match        https://danbooru.donmai.us/artists*
// @namespace    https://greasyfork.org/users/83187
// ==/UserScript==

(function() {
    'use strict';
    var query = document.getElementById("search_name").value;
    var domains = [/.com(\/|$)/, /.net(\/|$)/, /.jp(\/|$)/];
    if (domains.some(function(elem){ return ~query.search(elem); }) ||
        (query.match(/\./g).length > 1
        && query.split(".").every(function(elem){ return elem > 1; })
        && query.substr(query.length) != ".")) {
        //If query contains domain, or is custom
        var is_tweaked = false;

        if (!query.startsWith("http")) {
            query = "http://" + query;
            is_tweaked = true;
        }

        if (query.includes("pixiv")) {
            if (query.includes("/whitecube/user/")) {
                query = query.replace("/whitecube/user/", "/member.php?id=");
		if (query.includes("/illust/")) {
	            query = query.replace(/\/illust\/.*/, "");
		}
                is_tweaked = true;
            }
            if (query.includes("#_=_")) {
	        query = query.replace("#_=_", "");
		is_tweaked = true;
            }
        }

        if (query.includes("twitter")) {
            if (query.includes("/mobile.")) {
                query = query.replace("/mobile.", "");
		if (query.includes("?p=s")) {
                    query = query.replace("?p=s", "");
	        }
		if (query.includes("/status/")) {
		    query = query.replace(/\/status\/.*/, "");
		}
                is_tweaked = true;
            }
        }

    	if (query.includes("tumblr")) {
    	    if (!query.substr(query.length-4).includes("com")) {
        		query = query.substr(0, query.search("com")+3);
    	    	is_tweaked = true;
    	    }
    	}

        if (is_tweaked) {
            document.getElementById("search_name").value = query;
            document.getElementsByName("commit")[0].click();
        }
    }

    var artists_list = document.getElementsByTagName("tbody")[1];
    if (artists_list.childElementCount === 1) {
        //Redundant variables because it would otherwise be too unwieldy.
        var first_artist = artists_list.firstElementChild;
        var artist_table_data = first_artist.getElementsByTagName("td")[0];
        var url = artist_table_data.getElementsByTagName("a")[0].href;
        document.location = url;
    }
})();