mirkoczat wrzucanie obrazków

przeciągnij zdjęcie na okno mirkoczata, żeby je automatycznie wrzucić.

// ==UserScript==
// @name        mirkoczat wrzucanie obrazków
// @namespace   https://mirkoczat.pl/t
// @description przeciągnij zdjęcie na okno mirkoczata, żeby je automatycznie wrzucić.
// @include     http://mirkoczat.pl/t/*
// @include     https://mirkoczat.pl/t/*
// @include     https://api.imgur.com/*
// @version     1.0
// @icon        https://mirkoczat.pl/images/icon.png
// @locale      pl
// ==/UserScript==

function append (text) {
    var c = $('#message-input').val();
    if (c.length > 0 && c.substring(c.length - 1) !== ' ') c += ' ';
    c += text;

    $('#message-input').val(c);
}

function info (text) {
    $('#message-input').attr('placeholder', text);
}

var uploading = 0;
function upload (file) {
    uploading++;
    $("body").css("cursor", "progress");

    var fd = new FormData();
    fd.append('image', file);

    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function () {
        if (xhr.readyState !== 4)
            return;

        uploading--;
        if (uploading === 0) {
            info('');
            $("body").css("cursor", "default");
        }

        if (xhr.status !== 200)
            return append('[nie można wrzucić obrazka]');

        var res = JSON.parse(xhr.responseText);
        if (!res.success)
            return append('[nie można wrzucić obrazka]');

        append(res.data.link);
        info('');
    };

    xhr.upload.onprogress = function (e) {
        var progress = e.loaded / e.total;

        info('[' + (progress * 100).toFixed(0) + '%]');
    };

    xhr.open('POST', 'https://api.imgur.com/3/image');
    xhr.setRequestHeader('Authorization', 'Client-ID ac0c5524d5f66a4');
    xhr.send(fd);
}

document.body.addEventListener('dragover', function (e) {
    e.stopPropagation();
    e.preventDefault();
    e.dataTransfer.dropEffect = 'copy';

    info('[upuść, aby wrzucić obrazek]');
});

document.body.addEventListener('dragleave', function (e) {
    info('');
});

document.body.addEventListener('drop', function (e) {
    info('');

    e.stopPropagation();
    e.preventDefault();

    var files = e.dataTransfer.files;
    for (var i = 0; i < files.length; i++) {
        upload(files[i]);
    }
});