MyFigureCollection: doujinshi links

Add clipboard, Suruga-ya, Toranoana, ExHentai, DoujinshiDB links.

// ==UserScript==
// @name         MyFigureCollection: doujinshi links
// @namespace    https://myfigurecollection.net/profile/darkfader
// @version      0.4
// @description  Add clipboard, Suruga-ya, Toranoana, ExHentai, DoujinshiDB links.
// @author       Rafael Vuijk
// //@require      http://code.jquery.com/jquery-latest.js
// //@require      https://rawgit.com/polygonplanet/encoding.js/master/encoding.min.js
// @match        http*://myfigurecollection.net/*
// @grant        none
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

$(document).ready(function() {
    'use strict';

    $('div.item-picture').each(function() {
        var img = $(this).find('a > img')[0];
        var a = document.createElement('a');
        a.setAttribute('href', 'http://www.doujinshi.org/IMGSERV/socket.php?img=&COLOR=4&URL=' + img.src.replace('https','http').replace(/\?.*/, ''));
        a.setAttribute('target', "_blank");
        a.innerText = " (ddb)";
        a.style = "color: #4f535b";
        $(this).append(a);
    });

    $('div.form > div.form-field').each(function() {
        var T = null;

        var ex = null;
        var surugaya = null;
        var mandarake = "https://order.mandarake.co.jp/order/listPage/serchKeyWord?keyword=";
        var toranoana = null;

        switch ($(this).find('div.form-label').text()) {
            case "Title":
                T = "objects";
                ex = "";
                surugaya = "http://www.suruga-ya.jp/search?search_word=";
                toranoana = "nam";
                break;
            case "Origin":
                T = "parody";
                ex = 'parody:';
                break;
            case "Characters":
                T = "character";
                toranoana = "mch";
                break;
            case "Company":
                T = "circle";
                ex = 'group:';
                surugaya = "http://www.suruga-ya.jp/search?category=&search_word=&restrict[]=brand=";
                toranoana = "mak";
                break;
            case "Artist":
                T = "author";
                ex = 'artist:';
                surugaya = "http://www.suruga-ya.jp/search?category=&search_word=&restrict[]=person=";
                toranoana = "act";
                break;
            case "Event":
                T = "convention";
                break;
        }

        if (T != null) {

            // doujinshi
            $(this).find('a').each(function() {

                var sw = null;
                if (true) {// already switched to Japanese
                    sw = $(this).contents().map(function() { if(this.nodeType == 3) return this.nodeValue; }).get().join('');
                    if (sw === ' ') {
                        sw = $(this).find('span').contents().map(function() { if(this.nodeType == 3) return this.nodeValue; }).get().join('');
                    }
                } else {
                    sw = $(this).attr('switch');
                    if (typeof(sw) === 'undefined') {
                        sw = $(this).find('span').attr('switch');
                    }
                }

                // copy to clipboard
                {
                    var ta = document.createElement('textarea');
                    ta.value = sw;
                    ta.style = "position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;";
                    $(this).append(ta);

                    var a = document.createElement('a');
                    a.setAttribute('href', "javascript:void(0);");
                    a.innerText = " 📋";
                    a.title = "clipboard";
                    a.style = "color: #080";
                    a.addEventListener('click', function(event) {
                        ta.select();
                        document.execCommand('copy');
                        return false;
                    });
                    $(this).append(a);
                }

                // surugaya
                if (surugaya !== null) {
                    var a = document.createElement('a');
                    a.setAttribute('href', surugaya + encodeURIComponent(sw));
                    a.setAttribute('target', "_blank");
                    a.innerText = " 駿河屋";
                    a.title = "Suruga-ya";
                    a.style = "color: #00f";
                    $(this).append(a);
                }

                // Mandarake
                if (mandarake !== null) {
                    var a = document.createElement('a');
                    a.setAttribute('href', mandarake + encodeURIComponent(sw));
                    a.setAttribute('target', "_blank");
                    a.innerText = " ま";
                    a.title = "Mandarake";
                    a.style = "color: #f00";
                    $(this).append(a);
                }

                // toranoana
                if (toranoana !== null) {
                    var f = document.createElement('form');
                    f.style = "display: inline";
                    f.action = "http://www.toranoana.jp/cgi-bin/R2/d_search.cgi";
                    f.method = 'post';
                    f.target = '_blank';
                    f.setAttribute('accept-charset', 'shift-jis');

                    var inp = function(name, value) {
                        var i = document.createElement('input');
                        i.type = 'hidden';
                        i.name = name;
                        i.value = value;
                        return i;
                    };

                    $(f).append(inp(toranoana, sw));
                    $(f).append(inp('stk', '1'));
                    $(f).append(inp('img', '1'));
                    $(f).append(inp('item_kind', '0401'));

                    var a = document.createElement('a');
                    a.setAttribute('href', 'javascript:;');
                    a.setAttribute('target', "_blank");
                    $(a).on('click', function (event) { $(this).closest("form").submit(); });
                    a.innerText = " と";
                    a.title = "Toranoana";
                    a.style = "color: #fc0";
                    $(f).append(a);

                    $(this).append(f);
                }

                // Ex-Hentai
                if (ex !== null) {
                    var a = document.createElement('a');
                    a.setAttribute('href', "https://exhentai.org/?f_doujinshi=1&f_manga=1&f_artistcg=1&f_gamecg=1&f_western=1&f_non-h=1&f_imageset=1&f_cosplay=1&f_asianporn=1&f_misc=1&f_apply=Apply+Filter&f_search=" + ex + encodeURIComponent('"' + sw + '"'));
                    a.setAttribute('target', "_blank");
                    a.innerText = " ⑱";
                    a.title = "ExHentai";
                    a.style = "color: #4f535b";
                    $(this).append(a);
                }

                // doujinshi DB
                {
                    var a = document.createElement('a');
                    a.setAttribute('href', "http://www.doujinshi.org/search/simple/?T=" + T + "&sn=" + encodeURIComponent(sw));
                    a.setAttribute('target', "_blank");
                    a.innerText = " 📖";
                    a.title = "Doujinshi DB";
                    a.style = "color: #5b8ef4";
                    $(this).append(a);
                }
            });
        }
    });
});