User:Zhuyifei1999/common.js: Difference between revisions
Jump to navigation
Jump to search
Zhuyifei1999 (talk | contribs) (Created page with "/* easyblock.js - Script to quickly block spambots By Legoktm, with assistance from Ori.livneh and MZMcBride Adds two tabs, "OP: Spambot block" and "...") |
Zhuyifei1999 (talk | contribs) (More) |
||
Line 88: | Line 88: | ||
); | ); | ||
} | |||
/** | |||
* Add custom buttons in the toolbar | |||
* | |||
* @source: http://www.mediawiki.org/wiki/Snippets/Custom_buttons_in_the_toolbar | |||
* @rev: 1 | |||
*/ | |||
if ( $.isArray( window.mwCustomEditButtons ) ) { | |||
// Add button to insert a new wikitable | |||
mwCustomEditButtons[mwCustomEditButtons.length] = { | |||
'imageFile': 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png', | |||
'speedTip': 'Insert new wikitable', | |||
'tagOpen': '{| class="wikitable"\n|-\n', | |||
'tagClose': "\n|}", | |||
'sampleText': "! head 1\n! head 2\n! head 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3" | |||
}; | |||
} | } |
Revision as of 05:45, 24 June 2013
/*
easyblock.js - Script to quickly block spambots
By Legoktm, with assistance from Ori.livneh and MZMcBride
Adds two tabs, "OP: Spambot block" and "Spambot block".
OP will block for 6 months, and regular will do 3.
If the user is an account, it will be indefinite.
The script will forward you to Special:Nuke once done.
This script very likely may contain bugs, use at your
own risk.
Released under the MIT License, see README.txt for details.
*/
if ( mw.config.get('wgPageName').indexOf('Special:Contributions') >= 0 ) {
var opblock = mw.util.addPortletLink( 'p-cactions', '#',
'OP: Spambot block', 'ca-easy-block', 'Open proxy spambot block - 6 months'
);
var spambot = mw.util.addPortletLink( 'p-cactions', '#',
'Spambot block', 'ca-easy-block', 'Spambot block - 3 months'
);
}
// Bind click handler
$( opblock ).click( function () {
block( true );
// doSomeStuff();
//alert( 'It works!' );
});
$( spambot ).click( function () {
block( false );
// doSomeStuff();
//alert( 'It works!' );
});
function block( isproxy ) {
var api = new mw.Api();
// lets figure out the username
var username = mw.util.getParamValue('target') || mw.config.get('wgTitle').substr(14);
//action=query&list=users&ususers=127.0.0.1
//action=query&prop=info&intoken=block&titles=User:Bob&format=jsonfm
api.get( {
action: 'query',
list: 'users',
ususers: username
}).done(
function( data ) {
var obj = data.query.users[0];
console.log(obj);
var exp;
if ( obj.invalid !== undefined ) {
exp = isproxy ? '6 months' : '3 months';
} else {
exp = 'indefinite';
}
api.get( {
action: 'query',
prop: 'info',
intoken: 'block',
titles: 'aksjdhfksdjhfskdfhsjdhfgsjhdfg', //apparently this works
format: 'json'
} ).done(
function( data ) {
var blocktoken = data.query.pages['-1'].blocktoken;
console.log(blocktoken);
api.post( {
action: 'block',
user: username,
expiry: exp,
reason: isproxy ? '{{blocked proxy}}: Spambot' : 'Spambot',
nocreate: '1',
anononly: '1',
token: blocktoken
}).done(
function( data ) {
window.location = '/wiki/Special:Nuke/' + username;
}
);
}
);
}
);
}
/**
* Add custom buttons in the toolbar
*
* @source: http://www.mediawiki.org/wiki/Snippets/Custom_buttons_in_the_toolbar
* @rev: 1
*/
if ( $.isArray( window.mwCustomEditButtons ) ) {
// Add button to insert a new wikitable
mwCustomEditButtons[mwCustomEditButtons.length] = {
'imageFile': 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png',
'speedTip': 'Insert new wikitable',
'tagOpen': '{| class="wikitable"\n|-\n',
'tagClose': "\n|}",
'sampleText': "! head 1\n! head 2\n! head 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"
};
}