您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Let's paku tui!
// ==UserScript== // @name tweetdeck paku tweet // @namespace https://tweetdeck.twitter.com/ // @description Let's paku tui! // @version 0.9 // @grant none // @match https://twitter.com/i/tweetdeck* // ==/UserScript== (function() { let FLAG = true; function pakuTweet(e) { // if (!confirm("パクツイしますか?")) return; // この行の先頭の//を消せばパクツイ前に確認する let parent = e.target.closest(".js-tweet"); // parent.querySelector(".js-icon-favorite").click(); // この行の先頭の//を消せばふぁぼする let tweet = parent.querySelectorAll(".tweet-text")[0].innerHTML; tweet = tweet .replace(/<img class="emoji" draggable="false" alt="([^"]*)" src="([^"]*)">/g, "$1") .replace(/<a href="([^"]*)" target="_blank" class="url-ext"[^>]*>[^<]*<\/a>/g, "$1") .replace(/<("[^"]*"|'[^']*'|[^'">])*>/g, "") .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">"); console.log(e.ctrlKey); if (e.ctrlKey) { let s = tweet.match(/\d+$/); if (s !== null) { tweet = tweet.replace(/\d+$/, parseInt(s)+1); } else { tweet = tweet + "2"; } } let textarea = document.querySelector(".js-compose-text"); if (textarea === null) { document.querySelector(".tweet-button").click(); textarea = document.querySelector(".js-compose-text"); } textarea.value = tweet; let event = document.createEvent("HTMLEvents"); event.initEvent("change", false, false); textarea.dispatchEvent(event); if (!e.shiftKey) document.querySelector(".js-send-button").click(); } function appendButton(node) { let target = node.querySelectorAll(".js-tweet-actions .tweet-action-item")[3]; if (target === null || undefined) return; let src= document.createElement("li"); src.className = "tweet-action-item pull-left margin-r--13 margin-l--1"; let src_a = document.createElement("a"); src_a.className = "tweet-action position-rel"; src_a.href = "#"; src_a.textContent = "(´・_・`)"; src.appendChild(src_a); let item = target.parentNode.insertBefore(src, target); item.querySelector("a").addEventListener("click", pakuTweet); } while (FLAG) { if (document.querySelector(".application") !== null) { setTimeout(() => {}, 300); let observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { mutation.addedNodes.forEach((node) => { if (node.nodeType == node.ELEMENT_NODE && node.classList.contains('js-stream-item')) { appendButton(node); } }); }); }); observer.observe(document.body, {childList: true, subtree: true}); FLAG = false; } } })();