您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
ブロマガにクリップボードから画像アップロード
当前为
- // ==UserScript==
- // @name Blomaga Image Paste
- // @namespace https://github.com/segabito/
- // @version 0.0.5
- // @description ブロマガにクリップボードから画像アップロード
- // @author segabito macmoto
- // @match *://ch.nicovideo.jp/tool/blomaga/edit?article_id=*
- // @match *://ch.nicovideo.jp/tool/blomaga/edit
- // @grant none
- // @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js
- // @license public domain
- // @noframes
- // ==/UserScript==
- (function() {
- const monkey = function() {
- const $ = window.jQuery;
- const Blomaga = window.Blomaga;
- const Editor = Blomaga.Editor;
- const post = function(file) {
- const transfer = new Blomaga.EditorUploader.FileReadTransfer();
- const progressBar = new Blomaga.EditorUploader.ProgressBar();
- progressBar.setPercent(0);
- transfer.progress_bar = progressBar;
- progressBar.show();
- transfer.onProgress = (per) => {
- progressBar.setPercent(per);
- };
- transfer.onLoad = (resp) => {
- console.info('success: ', resp);
- progressBar.setPercent(100);
- progressBar.showSuccess();
- window.setTimeout(() => { progressBar.hide(); }, 1000);
- Blomaga.EditorSideBar.Image.addList(
- resp.src,
- resp.image_id,
- resp.width,
- resp.height,
- resp.csrf_token,
- resp.csrf_token_time
- );
- Editor.insertUploadImage(
- resp.image_id,
- resp.src,
- resp.width,
- resp.height
- );
- };
- transfer.onError = (json) => {
- progressBar.showError(json);
- };
- transfer.upload(file);
- };
- const onPaste = function(e) {
- let file;
- const items =
- (e.clipboardData || e.originalEvent.clipboardData).items;
- console.info('clipboard items', e, JSON.stringify(items));
- for (let i = 0, len = items.length; i < len; i++) {
- let item = items[i];
- if (item.type.match(/^image/i)) {
- file = item.getAsFile();
- break;
- }
- }
- if (!file) { return; }
- e.preventDefault();
- e.stopPropagation();
- post(file);
- };
- const initialize = function() {
- Editor.insertUploadImage =
- _.debounce(Editor.insertUploadImage.bind(Editor), 300);
- window.setTimeout(() => {
- $('iframe#wysiwyg_editor_ifr')
- .contents().find('html').on('paste', onPaste);
- }, 1000);
- };
- initialize();
- };
- const script = document.createElement('script');
- script.setAttribute('type', 'text/javascript');
- script.setAttribute('charset', 'UTF-8');
- script.appendChild(document.createTextNode('(' + monkey + ')()'));
- document.body.appendChild(script);
- })();