您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically pastes BBCode image links in any textarea on osu! website when you use Ctrl V and an image is in the clipboard.
// ==UserScript== // @name osu! QuickPaste Image to BBCode // @namespace https://osu.ppy.sh/users/24332734 // @version 1.0 // @description Automatically pastes BBCode image links in any textarea on osu! website when you use Ctrl V and an image is in the clipboard. // @author Behrauder // @match https://osu.ppy.sh/* // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; const API_KEY = 'YOUR_API_KEY_HERE'; // Put your imgbb API key here // Listen to the "paste" event on the document document.addEventListener('paste', async function(e) { const clipboardData = e.clipboardData || window.clipboardData; const items = clipboardData.items; for (const item of items) { if (item.type.startsWith('image')) { const blob = item.getAsFile(); const formData = new FormData(); formData.append('image', blob); formData.append('key', API_KEY); formData.append('expiration', 0); // Never expire // Upload the image const response = await fetch('https://api.imgbb.com/1/upload', { method: 'POST', body: formData }); const data = await response.json(); if (data.success) { const bbcodeFull = `[img]${data.data.url}[/img]`; insertTextAtCursor(bbcodeFull); } else { console.error('Upload failed:', data.status_txt); } break; // Exit the loop after the first image item } } }); // Function to insert text at the cursor position in a textarea function insertTextAtCursor(text) { const textarea = document.activeElement; if (textarea.tagName === 'TEXTAREA') { const start = textarea.selectionStart; const end = textarea.selectionEnd; const value = textarea.value; textarea.value = value.substring(0, start) + text + value.substring(end); textarea.selectionStart = textarea.selectionEnd = start + text.length; } } })();