Greasy Fork

Greasy Fork is available in English.

edusrc粘贴上传

edusrc粘贴图片上传

当前为 2022-02-14 提交的版本,查看 最新版本

// ==UserScript==
// @name         edusrc粘贴上传
// @namespace    http://l.mo60.cn/
// @version      0.1.1
// @description  edusrc粘贴图片上传
// @author       http://l.mo60.cn/
// @match        https://src.sjtu.edu.cn/add/
// @icon         https://www.google.com/s2/favicons?domain=sjtu.edu.cn
// @run-at document-end
// @grant        none
 // @license MIT
// ==/UserScript==

window.onload = function () {
    console.log('author blog http://l.mo60.cn/');
}
$(document).ready(function () {
      var uploadUrl = 'https://src.sjtu.edu.cn/upload-images/';
        var textarea = document.getElementById("id_content");
        var editor = CodeMirror.fromTextArea(textarea, {
        lineNumbers: true,
        mode: {
            name: 'markdown',
            underscoresBreakWords: false
        },
        theme: "neat",
        indentUnit: 4,
        lineWrapping: true
    });

    function getCookie(cookieName) {
        var strCookie = document.cookie;
        var arrCookie = strCookie.split("; ");
        for(var i = 0; i < arrCookie.length; i++){
            var arr = arrCookie[i].split("=");
            if(cookieName == arr[0]){
                return arr[1];
            }
        }
        return "";
    }
        function uploadFile(file) {
        var index = Math.random().toString(10).substr(2, 5) + '-' + Math.random().toString(36).substr(2);
        var fileName = index + '.png';
        var formData = new FormData();
        formData.append('name', fileName);
        formData.append('file', file, fileName);
        $.ajax({
            method: 'post',
            url: uploadUrl,
            data: formData,
            contentType: false,
            processData: false,
            beforeSend:  function (XMLHttpRequest) {
                    XMLHttpRequest.setRequestHeader("x-csrftoken", getCookie('csrftoken'));
                },
            success: function (data) {
                if(data['status'] == 'success') {
                    //alert('上传成功!');
                    var file_name=data['name'];
                    var file_path=data['url'];
                     var img = "\n![" + file_name + "](" + file_path + ")\n";
                    editor.replaceSelection(img)
                }
            },
            error: function (error) {
               alert('上传失败');
            }
        });
    }

   document.addEventListener('paste', function (e) {
      var clipboardData = e.clipboardData;
      var items = clipboardData.items;
      for (var i = 0; i < items.length; i++) {
        if (items[i].kind === 'file') {
          e.preventDefault();
          uploadFile(items[i].getAsFile());
          break;
        }
      }
    });
})