This is spihelper, a script to help CheckUsers, SPI clerks, and patrolling admins with sockpuppet investigation case pages.

How to install

spihelper.js
DescriptionSockpuppet investigations helper script
Author(s)Original script by Timotheus Canens, overhauled and expanded by GeneralNotability
Maintainer(s)GeneralNotability
StatusMostly stable
Version2.5.1 "Ignore all essays"
UpdatedMay 13, 2024
    (32 days ago)
SourceUser:GeneralNotability/spihelper.js
Method 1 – Automatic
  1. Go in the 'Gadgets' tab of your preferences and select the 'Install scripts without having to edit JavaScript files' option at the bottom of the 'Editing' section.
  2. Click on the 'Install' button in the infobox on the right, or at the top of the source page.
Method 2 – Manual
  1. Go to Special:MyPage/common.js. Alternatively, you can go to Special:MyPage/skin.js to make the script apply only to your current skin.
  2. Add ((subst:lusc|User:GeneralNotability/spihelper.js)) to the page (you may need to create it).
  3. Save the page and bypass your cache to make sure the changes take effect.

How it works

To use spihelper, navigate to a sockpuppet investigations case page (it must have at least one active case), and then navigate to the "SPI" link on your navigation bar (on the Vector skin, this will be at the top right of your screen, possibly under the "More" drop-down". There may also be an SPI-Archive button, more on that later.

Top menu

The initial menu has several inputs. Your selections here will determine which actions are presented to you later. You will have a section selection drop-down with one entry per case section, plus an "All sections" option. You also will have the following checkboxes, some of which may be disabled depending on the current status of the case:

Once you click "Continue," you will be presented with actions to take based on which boxes you checked.

Case status

This lets you change the case status, such as requesting, endorsing, or declining checkuser, requesting more information, or placing the case on hold. The available options will depend on the current case status - for example, you can't decline checkuser if checkuser has not been requested.

Block/tag socks

This interface allows you to block and tag socks. The list of possible socks is generated by searching the section's text for usernames in the following templates:

This section has a number of boxes to check. Some of the less-obvious ones:

Comment

You only need to select this if you only want to comment - all actions will open the comment box anyway (it won't hurt anything if you do select it, though). Has drop-downs for frequently used templates. If you are an admin, checkuser, or have clerk set to true, the comment will go in the "clerks, checkusers, and patrolling admin" section, otherwise the comment will go in the "comments by other users" section.

Close case

Closes the case.

Move/merge case

You will be prompted for the name of the new sockmaster. This function has different behavior depending on whether "All sections" or a specific section was selected.

All sections

If the target page does not exist, this will move the investigation to that page. If the target page exists, this will perform a history merge (delete the target page, move this page, restore the target page's history). In the latter case, the script will check if you are an admin - if you are, it will request confirmation, if you are not it will stop editing (since non-admins can't do history merges). In either case it will also leave an ((SPIarchive notice)) at the old page with the new case name and add the previous sockmaster to the socks list for the new case.

Specific section

This option is disabled by default. See #Config file for directions on how to enable it. Don't enable it unless you understand the difference between this option and the one above.

The section will be moved to the target case via a cut-and-paste move (the edit summary will link to the current case for attribution). If there was not a page there before this will add the basic sockpuppet templates (archive notice and prior cases) to the page as well. This option should be used if a specific section was filed against the wrong sockmaster and belongs under a different one (for example, a case is filed under longtime sockmaster A but checkuser indicates that the socks are actually other longtime sockmaster B), but the case as a whole should stay where it is.

Archive case

If a specific section is selected, it will be archived. If "All sections" is selected, all cases with the status "closed" will be archived.

SPI-Archive

This button only appears when at least one case has the "closed" status. It archives all closed cases.

Feature requests and bug reports

Make them on the github page (if you don't have a GitHub account, you can leave a message on the talk page and I'll file it for you).

Config file

There are a handful of user-configurable settings in spihelper. To change them, create Special:MyPage/spihelper-options.js with the following content:

spiHelperCustomOpts = {
	watchCase: 'preferences',
	watchCaseExpiry: 'indefinite',
	watchArchive: 'nochange',
	watchArchiveExpiry: 'indefinite',
	watchTaggedUser: 'preferences',
	watchTaggedUserExpiry: 'indefinite',
	watchNewCats: 'nochange',
	watchNewCatsExpiry: 'indefinite',
	watchBlockedUser: true,
	watchBlockedUserExpiry: 'indefinite',
	clerk: true,
	log: false,
	iUnderstandSectionMoves: false,
}

You only need to include settings you want to change from their spihelper defaults. Explanations of the various settings:

Relation to User:Timotheus Canens/spihelper.js

This script began as a handful of feature patches to Timotheus Canens's spihelper.js script, but expanded into a significant rewrite, modernization, and feature expansion. Credit for the original idea and most of the script's "bones" goes to Tim, I wouldn't have been able to write this from scratch.

See also

((User wikipedia/spihelper)), a userbox indicating an editor uses spihelper