Danbooru Tag 提取

Get General tags from Danbooru posts and copy them to clipboard

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Danbooru Tag 提取
// @name:en      Danbooru Tag Crawler
// @namespace    https://danbooru.donmai.us/
// @version      1.01
// @description:zh-cn 一键提取当前图片的General tags并复制到剪贴板
// @description:en Get General tags from Danbooru posts and copy them to clipboard
// @author       LigHT
// @Copyright    2023 LigHT
// @license      MIT
// @match        https://danbooru.donmai.us/*
// @icon         https://www.google.com/s2/favicons?domain=donmai.us
// @grant        GM_setClipboard
// @description Get General tags from Danbooru posts and copy them to clipboard
// ==/UserScript==

(function() {
    'use strict';
    var button = document.createElement("button");
    button.innerHTML = "get tag";
    button.style.position = "fixed";
    button.style.bottom = "1%";
    button.style.right = "1%";
    button.style.zIndex = "9999";
    button.style.opacity = "0.5";
    button.addEventListener("mouseover", function() {
        button.style.opacity = "1";
    });
    button.addEventListener("mouseout", function() {
        button.style.opacity = "0.5";
    });
    document.body.appendChild(button);
    button.addEventListener("click", function() {
        var ul = document.querySelector("ul.general-tag-list");
        if (ul) {
            var lis = ul.querySelectorAll("li[data-tag-name]");
            var tags = [];
            for (var i = 0; i < lis.length; i++) {
                var tag = lis[i].getAttribute("data-tag-name");
                tag = tag.replace(/_/g, ' ');
                tags.push(tag);
            }
            var result = tags.join(",");
            GM_setClipboard(result);
            button.innerHTML = "success";
            setTimeout(function() {
                button.innerHTML = "get tag";
            }, 3000);
        }
    });
})();