Greasy Fork is available in English.

Geekhub

geekhub增强插件

От 20.10.2020. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Geekhub
// @namespace    https://geekhub.com
// @version      1.0
// @description  geekhub增强插件
// @author       Leetao
// @match        https://geekhub.com/*
// @require      https://cdn.jsdelivr.net/npm/marked/marked.min.js
// @grant GM_xmlhttpRequest
// ==/UserScript==

(function() {
    'use strict';

    var initMarkdown = function() {
        var divNode = document.createElement('div');
        divNode.setAttribute('id','markdown-preview-comment');
        var comment = document.getElementById("comment-box");
        if(comment != null) {
            comment.parentElement.appendChild(divNode);
        };
        var el = document.getElementById('comment-box');
        if(el != null){
            el.addEventListener('input',function () {
                var value = document.getElementById('comment-box').value;
                console.log(value);
                if(value != null) {
                    document.getElementById('markdown-preview-comment').innerHTML = marked(value);
                }
            });
        }

        var postDivNode = document.createElement('div');
        postDivNode.setAttribute('id','markdown-preview-post');
        var post = document.getElementById("post_content");
        if(post != null) {
            post.parentElement.appendChild(postDivNode);
        };
        var e2 = document.getElementById('post_content');
        if(e2 != null){
            e2.addEventListener('input',function () {
                var value = document.getElementById('post_content').value;
                if(value != null) {
                    document.getElementById('markdown-preview-post').innerHTML = marked(value);
                }
            });
        }
    }


    var upload = function(fileList) {
        for(var j = 0; j < fileList.length; j++) {
            var formData = new FormData();
            formData.append('smfile', fileList[j]);
            var response = GM_xmlhttpRequest({
                method: "post",
                url: 'https://sm.ms/api/v2/upload',
                data: formData,
                onload: function(r) {
                    var json = JSON.parse(r.responseText);
                    if (json.success == true){
                        var url = json.data.url;
                        var name = json.data.storename;
                        if(document.getElementById('comment-box') != null) {
                            document.getElementById('comment-box').value += "![alt "+ name +"](" + url + ")";
                        }
                        if(document.getElementById("post_content") != null) {
                            document.getElementById('post_content').value += "![alt "+ name +"](" + url + ")";
                        }
                    } else {
                        alert("上传失败");
                    }
                }
            });
        }

    }



    document.addEventListener('paste', function (event) {
        var items = event.clipboardData && event.clipboardData.items;
        var fileList = [];
        var urlList = [];
        if (items && items.length) {
            // 检索剪切板items
            for (var i = 0; i < items.length; i++) {
                if (items[i].type.indexOf('image') !== -1) {
                    fileList.push(items[i].getAsFile());
                }
            }
        }
        // 此时fileList就是剪切板中的图片文件列表
        if(fileList.length !== 0) { // 不为0,则上传到 sm.ms
            upload(fileList);
        }
    });

    initMarkdown();

})();