User:Ale jrb/Scripts

(script tracker) This page holds my script collection which provide additional functionality that I've found useful. These scripts may not be up-to-date.

NB. Any script I make that edits automatically will link here in its edit summary.

If you have any feedback, questions, comments or suggestions, please let me know on my talk page.

igloo
My browser-based, JavaScript anti-vandalism program is in testing. Learn more.

CSDH (CSD Helper)
A script that helps admins delete speedy deletions much more quickly, including changing rationales, and assists everyone in declining/contesting speedy deletions and changing speedy deletions to PRODs.
 *  importScript('User:Ale_jrb/Scripts/csdhelper.js'); //User:Ale_jrb/Scripts 
 * Vars: (there are a large number of configuration settings - all are optional)
 * var notifyByDefaultDel = true/false; --- whether to automatically check the 'notify user' box when changing a speedy deletion rationale
 * var notifyByDefaultDec = true/false; --- whether to automatically check the 'notify user' box when declining a speedy deletion
 * var notifyByDefaultPrd = true/false; --- whether to automatically check the 'notify user' box when converting a speedy deletion to a PROD
 * var notifyByDefaultNew = true/false; --- whether to automatically check the 'use newbie message' box when notifying a user
 * var csdhDisplayAlways = true/false; --- whether to show the tab all the time (true) or only when a speedy template is detected (false, default)
 * var csdhDoRedirect = true/false; --- whether to redirect after a deletion
 * var notifyLimit = 1-15; --- how many revisions to check for the user who tagged the page
 * var notifyTemplate = 'template page name'; --- the template to use when posting any notifications
 * var redirectAfterDel = URL [as string]; --- the URL to redirect to after deleting a speedy page (default: CSD category)
 * var overwriteDeclineReasons = true/false; --- whether to overwrite the existing decline reasons with the user-provided array (if false, user options will be appended)
 *  var myDeclineReasons = new Array(['A', 'A dec reason.'], ['B', 'B dec reason.'], ['C', 'C dec reason.']);  -- an array of additional decline reasons in the form ['code', 'description'] . Separate options with a comma, as shown.
 *  var myDeleteReasons = new Array(['A', 'A del reason.'], ['B', 'B del reason.'], ['C', 'C del reason.']);  -- an array of additional deletion reasons in the form ['code', 'description'] . Separate options with a comma, as shown.
 * var myDeclineListing = '%CRITERION% - %REASON%'; --- the string to use in the drop-down selection box. Parameters include: %CRITERION% (criterion specified), %REASON% (reason specified).
 * var myDeclineSummary = 'Text - %REASON%'; --- the string to use as the edit summary for 'normal' decline cases (invalid criterion). Parameters include: %ACTION% (declined/contested depending on sysop), %CRITERION% (criterion specified), %REASON% (reason specified).
 * var myDeclineSummarySpecial = 'Test - %REASON%'; --- the string to use as the edit summary for 'special' decline cases (no criterion provided etc). Parameters include: %ACTION% (declined/contested depending on sysop), %REASON% (reason specified).
 * var logOnDecline = true/false; --- whether to log decline actions.
 * var logOnDeclinePath = 'Wikipage'; --- where to log decline actions.

CSD Check
A tiny script that cleans the deletion reasons, so you aren't distracted by the Wiki-code. That is all. (I think sysop.js used to do this. Then it stopped. I have no idea about now.)
 *  importScript('User:Ale_jrb/Scripts/csdcheck.js'); //User:Ale_jrb/Scripts 

Status Check
A small script that displays whether a user is on- or offline when viewing their user page, user talk page and contributions. Based on most recent action (edit or log).
 *  importScript('User:Ale_jrb/Scripts/statusCheck.js'); //User:Ale_jrb/Scripts 
 * Vars:
 * var offlineAfter = [integer]; --- the number of seconds after which someone is considered 'offline' (default: 15 * 60 seconds = 15 minutes)
 * var statCloseOnClick = true/false; --- whether the on/offline message should disappear when clicked on (default: true)
 * var statPosition = new Array(left as [integer], top as [integer], [optional] right as [integer], [optional] bottom as [integer]); --- position of the status message on the screen (default: left: 20, top: 600). If provided, right will supercede left and bottom will supercede top.

User History
This script adds a box to the page history that allows you to display only edits made by a certain user. Useful if you're reviewing contributions, or trying to remember what changes you made to a specific page etc.
 *  importScript('User:Ale_jrb/Scripts/userhist.js'); //User:Ale_jrb/Scripts 

unblock
A small script that adds a button to the unblock interface that allows you to perform an AJAX unblock - it avoids loading the slow block list. It's also quite a lot faster than loading any page at all, because it uses the API.
 *  importScript ( 'User:Ale_jrb/Scripts/unblock.js' ); // User:Ale_jrb/Scripts 

contreverse
A small script that flips the (diff | hist) links on contribution pages back to (hist | diff). As a request. Incompatible with userhist.
 *  importScript ( 'User:Ale_jrb/Scripts/contreverse.js' ); // User:Ale_jrb/Scripts 

waLib/waLib2
My Javascript libraries. Together, they allow complex chainable AJAX API calls (e.g. wa(':api').get('requestid','User:Ale_jrb',2).wait(function{/*run on done*/}).run; and so on) and GUI creation and manipulation. Could be useful for coders - I use it for all my scripts. To use, place the import code somewhere in your file (at the top if using procedural code) and you can call its functions.
 *  importScript('User:Ale_jrb/Scripts/waLib.js');importScript('User:Ale_jrb/Scripts/waLib2.js'); 

commons: descwatch
This script automatically determines whether there is a description for the file you are viewing that matches your language (the language you have set the MediaWiki interface too), and if not, uses Google Translate to load (in the background) and display a translation of the description for you. It should work for most of the pref-language options, and is extremely fast.
 *  importScript ( 'User:Ale_jrb/Scripts/descwatch.js' ); // User:Ale_jrb/Scripts