User:Martin Urbanec/vanisher.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
// Taken from https://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript
function makeid(length) {
let result = '';
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const charactersLength = characters.length;
let counter = 0;
while (counter < length) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
counter += 1;
}
return result;
}
function getVanishUserURLFromCA( renameEl, ticketId ) {
const newUsername = 'Renamed user ' + makeid( 20 );
return renameEl.href + '?newname=' + newUsername + '&reason=' + encodeURIComponent(
'vanishing per request in [[ticket:' + ticketId + ']]'
);
}
function addVanishButton() {
const renameEls = document.querySelectorAll( '#mw-centralauth-info a[href^="/wiki/Special:GlobalRenameUser"]' );
if ( renameEls.length !== 1 ) {
console.error( 'Error: More than one rename element present' );
return;
}
const renameEl = renameEls[0];
const vanishEl = document.createElement( 'a' );
vanishEl.appendChild( document.createTextNode( 'vanish' ) );
vanishEl.addEventListener( 'click', ( e ) => {
e.preventDefault();
const ticketId = window.prompt( 'Enter the ticket ID' );
window.location.replace( getVanishUserURLFromCA( renameEl, ticketId ) );
} );
renameEl.parentElement.appendChild( vanishEl );
}
if ( mw.config.get('wgCanonicalSpecialPageName') === 'CentralAuth' ) {
addVanishButton();
}