// ==UserScript==
// @name Scratch Admin Panel
// @namespace http://tampermonkey.net/
// @version 1.0
// @description これで君もST😎
// @author
// @match https://scratch.mit.edu/*
// @grant none
// @license MIT
// @downloadURL https://update.greasyfork.icu/scripts/536273/Scratch%20Admin%20Panel.user.js
// @updateURL https://update.greasyfork.icu/scripts/536273/Scratch%20Admin%20Panel.meta.js
// ==/UserScript==
(function() {
'use strict';
const collapsedHTML = `>`;
const expandedHTML = `
x
- Tools
-
- Homepage Cache
-
- Page Cache
-
`;
const parentSelector = '#view > div > div:nth-child(2)';
function waitForElement(selector, callback) {
const observer = new MutationObserver(() => {
const el = document.querySelector(selector);
if (el) {
observer.disconnect();
callback(el);
}
});
observer.observe(document.body, { childList: true, subtree: true });
}
waitForElement(parentSelector, (parent) => {
const panel = document.createElement('div');
panel.className = 'admin-panel splash-admin-panel collapsed';
panel.innerHTML = collapsedHTML;
parent.prepend(panel);
panel.addEventListener('click', (e) => {
if (!e.target.classList.contains('toggle')) return;
if (panel.classList.contains('collapsed')) {
panel.classList.remove('collapsed');
panel.innerHTML = expandedHTML;
} else {
panel.classList.add('collapsed');
panel.innerHTML = collapsedHTML;
}
});
});
})();