hatjitsu Admin Manager

Grant and revoke admin rights for the hatjitsu tool.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        hatjitsu Admin Manager
// @namespace   Violentmonkey Scripts
// @icon        data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABX0lEQVQ4T72QPUsDQRCG39nLmUsuiQhCggpaCGLQQhS0MIraWfiL7AR7SxsFO1EQ7EMKxcYioBLBz1hENB9qcUYwt7eyK7dGSQJB8Wl2hp15ZnbpML0j8AvozwWDyTEd+1zlsjr+yTdBo2afZhItaNXs00jyv4K3qoNC/lJPl7S1wUuliPJjQeeStgQt/yBkR5HoHUAmnUGHGcDM/Jxfo+Cui9uLU537aMHZ+R36ehIgRvC4B845plLTqqhZs0QJSmUHxBisoIlajYOIIIQACOjqtHRxI2h1ZVmMJofURMaYOg3DUJtwlwPEcH2Tx+TEsG6qh/a2N4UnpwFgRGoTeapLRhDe5132JIeF2XEV10P7u1tCrmyaBoqlJ8RiUTivVdghS8s8z1NbyWfdPxQxMtz/JdhYXxORSBjvNRce5wiYAQQMA45TRTzejUrlGbYdhmUF1ZPkMMnB0TGWFlP4AHefpMF5BmMVAAAAAElFTkSuQmCC
// @license MIT
// @version     1.0.0
//
// @match       https://hatjitsu.toolforge.org/*
// @grant       GM.cookie
// @grant       GM.registerMenuCommand
//
// @author      kleinph
// @description Grant and revoke admin rights for the hatjitsu tool.
// ==/UserScript==

const id = window.location.pathname?.replace('/', '');
const cookieName = `admin-${id}`;

GM.cookie.list({ name: cookieName }).then(cookies => {
  if (cookies.length > 0) {
    GM.registerMenuCommand('User', removeAdmin, { title: 'Revoke admin privileges', icon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjc1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxwYXRoIGQ9Ik0xMiAyIEwyMCA1IFYxMSBDMjAgMTYgMTYuNSAyMC41IDEyIDIyIEM3LjUgMjAuNSA0IDE2IDQgMTEgVjUgWiIvPgogIDxwYXRoIGQ9Ik0zIDMgTDIxIDIxIi8+Cjwvc3ZnPgo=' });
  } else {
    GM.registerMenuCommand('Admin', makeAdmin, { title: 'Grant admin privileges', icon: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij4KICA8cGF0aCBkPSJNMTIgMiBMMjAgNSBWMTEgQzIwIDE2IDE2LjUgMjAuNSAxMiAyMiBDNy41IDIwLjUgNCAxNiA0IDExIFY1IFoiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=' });
  }
});


function makeAdmin() {
  GM.cookie.set({ name: cookieName, value: 'false' })
    .then(() => window.location.reload())
    .catch(error => console.log('Making Admin failed:', error));
}

function removeAdmin() {
  GM.cookie.delete({ name: cookieName })
    .then(() => window.location.reload())
    .catch(error => console.log('Losing Admin failed:', error));
}