Avatar Builder+

Adds a upload image input to the avatar builder.

目前為 2023-02-10 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Avatar Builder+
// @namespace    Vholran.AvatarBuilder+
// @version      2.1
// @description  Adds a upload image input to the avatar builder.
// @author       Vholran (https://gf.qytechs.cn/en/users/841616)
// @match        https://*.drawaria.online/avatar/builder/
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js
// @icon         https://www.google.com/s2/favicons?domain=drawaria.online
// @grant        none
// ==/UserScript==

(($, undefined) => {
    $(() => {
        const avatar = () => {
            $('header').append('<label class="Button" for="image_input">Upload Image</label><input style="display:none" id="image_input" type="file" accept="image/jpeg, image/png, image/webp, image/gif">');
            $('body').on('change', '#image_input', () => {
                const reader = new FileReader();
                reader.addEventListener('load', () => {
                    let base64 = reader.result;
                    let fileType = base64.split(';')[0];
                    let uploaded_image = base64.replace(fileType,'data:image/jpeg');
                    $('label').eq(0).text('Saving...');
                    $('header *').css('pointer-events', 'none');
                    if (LOGGEDIN) {
                        $.post('/saveavatar', {
                            'avatarsave_builder': (`${JSON.stringify(ACCOUNT_AVATARSAVE)}`),
                            'imagedata': (`${uploaded_image}`),
                            'fromeditor': true
                        }, success).fail((jqXHR, textStatus, errorThrown)=> {
                            alert(errorThrown);
                            failed();
                        });
                    } else {
                        localStorage.setItem('avatarimagedata', (`${uploaded_image}`));
                        $.post('/uploadavatarimage', {
                            'imagedata': localStorage.getItem('avatarimagedata')
                        }, success).fail((jqXHR, textStatus, errorThrown) => {
                            alert(errorThrown);
                            failed();
                        });
                    }
                });
                reader.readAsDataURL($('#image_input')[0].files[0]);
            });
            const success = (data) => {
                fetch(`/avatar/cache/${data}.jpg`, {
                    method: 'GET',
                    mode: 'cors',
                    cache: 'reload'
                }).then((data) => {
                    $('label').eq(0).text('Save OK!');
                    let curUrl = location.href;
                    let domain = curUrl.replace('avatar/builder/','');
                    location.href = domain;
                });
            };
            const failed = () => {
                $('label').eq(0).text('Upload Image');
                $('header *').css('pointer-events', 'auto');
            };
        };
        const mainObserver = new MutationObserver(() => {
            if ($('main').length == 1) {
                avatar();
                mainObserver.disconnect();
            }
        });
        mainObserver.observe(document, { childList: true, subtree: true });
    });
})(window.jQuery.noConflict(true));

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址