您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Paste images on a thread directly from clipboard
// ==UserScript== // @name Paste functionality // @namespace http://tripchan.org // @version 0.1 // @description Paste images on a thread directly from clipboard // @author yuifag // @match https://tripchan.org/att/* // @grant none // ==/UserScript== const dataURItoBlob = (dataURI) => { const binary = atob(dataURI.split(',')[1]); const array = []; for(let i = 0; i < binary.length; i++) { array.push(binary.charCodeAt(i)); } return new Blob([new Uint8Array(array)], {type: "image/png"}); } const sendImage = (oRequestData) => { const uploadFormData = new FormData(); uploadFormData.append("op", oRequestData.op); uploadFormData.append("image", oRequestData.blob, "clipboard.png"); const url = `https://tripchan.org/upload/?id=${oRequestData.id}`; const xhr = new XMLHttpRequest; xhr.open("POST", url); xhr.send(uploadFormData); } document.addEventListener("paste", (event) => { if (!document.querySelector(".mine")){ document.querySelector("aside.act > a").click(); } const file = (event.clipboardData.items[0].getAsFile() || event.clipboardData.files[0]); if (file){ const reader = new FileReader(); reader.onload = (event) => { const oRequest = {}; oRequest.blob = dataURItoBlob(event.target.result); oRequest.op = window.location.pathname.replace(/[^0-9.]/g, ""); oRequest.id = window.CONN_ID; sendImage(oRequest); }; reader.readAsDataURL(file); } });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址