Add button on exhentai searchbox from tag button

Add your favorite keyword/tag on the searchbox from tag button

От 13.12.2022. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Add button on exhentai searchbox from tag button
// @description  Add your favorite keyword/tag on the searchbox from tag button
// @license      MIT
// @version      0.4
// @match        https://exhentai.org/g/*
// @run-at       context-menu
// @namespace https://greasyfork.org/users/383371
// ==/UserScript==


function capitalize(str) {
   var tmp = str.toLowerCase().split(' ');
   for(let i = 0; i < tmp.length; i++) {
       tmp[i] = tmp[i].charAt(0).toUpperCase() + tmp[i].substring(1);
   }
   return tmp.join(' ');
}

function add_tag(tag, name){
    let config = JSON.parse(window.localStorage.getItem('config'));
    if(!config){
        config = [];
    }
    config.push([tag, name]);
    window.localStorage.setItem('config', JSON.stringify(config));
    let search_tag_config = JSON.parse(window.localStorage.getItem('search_tag_config'));
    if(!search_tag_config){
        search_tag_config = [];
        if(config){
            for(let ele of config){
                search_tag_config.push(
                    {
                        'key': ele[1],
                        'value': ele[0],
                        'color': '',
                    }
                );
            }
        }
    }else{
        search_tag_config.push(
            {
                'key': name,
                'value': tag,
                'color': '',
            }
        );
    }
    window.localStorage.setItem('search_tag_config', JSON.stringify(search_tag_config));
}

(function() {
    if(document.activeElement.id.substring(0, 2) == 'ta'){
        let tag = document.activeElement.href.substring(document.activeElement.href.indexOf('tag/') + 4).replaceAll('+', ' ');
        let tmp = tag.split(':');
        let tag_namespace = tmp[0];
        let tag_value = tmp[1];
        tag_value += '$';
        if(tag_value.includes(' ')){
            tag_value = `"${tag_value}"`;
        }
        let name = prompt('name', capitalize(document.activeElement.innerText));
        if(!name){
            return;
        }
        add_tag(`${tag_namespace}:${tag_value}`, name);
        alert(`${tag_namespace}:${tag_value} added`);
    }else if(document.activeElement.href.includes('uploader')){
        let uploader = document.activeElement.text;
        let tag = `uploader:${uploader}`;
        let name = prompt('name', capitalize(uploader));
        if(!name){
            return;
        }
        add_tag(`${tag}`, name);
        alert(`${tag} added`);
    }
})();