您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a upload image input to the avatar builder.
当前为
// ==UserScript== // @name Avatar Builder+ // @namespace Vholran.AvatarBuilder+ // @version 2.1 // @description Adds a upload image input to the avatar builder. // @author Vholran (https://greasyforks.org/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));