Get General tags from Danbooru posts and copy them to clipboard
Tính đến
// ==UserScript==
// @name Danbooru Tag 提取
// @name:en Danbooru Tag Crawler
// @namespace https://danbooru.donmai.us/
// @version 1.0
// @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';
// Create a button in the bottom right corner
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";
// Add a mouseover event listener to change opacity on hover
button.addEventListener("mouseover", function() {
button.style.opacity = "1";
});
// Add a mouseout event listener to change opacity back on mouseout
button.addEventListener("mouseout", function() {
button.style.opacity = "0.5";
});
document.body.appendChild(button);
// Add a click event listener to the button
button.addEventListener("click", function() {
// Find the ul element with class "general-tag-list"
var ul = document.querySelector("ul.general-tag-list");
if (ul) {
// Get all the li elements with attribute "data-tag-name"
var lis = ul.querySelectorAll("li[data-tag-name]");
// Create an array to store the tag names
var tags = [];
// Loop through the li elements and push the tag names to the array
for (var i = 0; i < lis.length; i++) {
var tag = lis[i].getAttribute("data-tag-name");
tags.push(tag);
}
// Join the array with commas
var result = tags.join(",");
// Copy the result to clipboard
GM_setClipboard(result);
// Change the button text to "success"
button.innerHTML = "success";
// Set a timeout to change the button text back to "get tag" after 3 seconds
setTimeout(function() {
button.innerHTML = "get tag";
}, 3000);
}
});
})();