From DoomWiki.org

XymphBot is an account for use in MediaWiki API queries. It is owned by Xymph, and used via bot scripts written in PHP based on the Wikimate library. After a coding and testing period, it commenced automated edits in October 2016.

The overall goal of these scripts is to put as much computer-creatable content into map pages as feasible, and check that existing content is as complete and consistent as possible, so that human contributors can focus more on crafting creative prose like background information, walkthroughs, trivia and other map-specific content. Also, I like alliteration. :)

Configuration[edit]

The starting point for all scripts is a .ini file that specifies settings and a series of map pages. Typically the list includes all levels in an IWAD or megawad, but combining single-level PWADs in one list is also possible.

The settings for all maps include the various input and output paths, the relevant IWAD, an optional PWAD, the type of DMMPST output and any DMMPST flags, an optional pattern for map view filenames, an optional flag defining whether to put the "notally=1" parameter into the map spots template (for Hexen and Strife levels), the WAD ID for Compet-n and DSDA links, and the WAD's author(s).

The settings per map are the episode and mission, the path to the Doom Wiki page, and optional overrides of that map's PWAD, DMMPST output type and flags, author(s), and script-specific actions.

An optional navboxes section defines the number and style of navboxes (Doom-like, standard Doom II-like or Doom II episodic grouping), and the paths, optional episode names, and map ranges for each navbox.

The .ini file can easily be generated from a list of levels in wikicode (e.g. Doom II's) copy/pasted into a file, and passing it through the wiki2ini.php script. This extracts the list of required map settings and prefixes it with the general settings, so that only a few manual edits remain necessary to result in a .ini file usable by the scripts.

.ini scripts[edit]

skeletonBot.php[edit]

Checks map pages' section headers against the reference map skeleton and shows differences in ordering, spelling, and formatting.

conventionsBot.php[edit]

Checks map pages for a wide variety of spelling, linking and formatting conventions.

secretsBot.php[edit]

Compares DMMPST's list of secret sectors against those in map pages' Secrets sections (or Official subsections) and updates its formatting if necessary, or adds the list if such a section is empty.

dmmpstBot.php[edit]

Uses DMMPST's output to replace map pages' Statistics, Map data or Things sections.
Optionally provides interactive comparison between old and new contents of the pertaining section, prior to submitting the edit.
Alternatively creates new map pages with DMMPST's full skeleton output.

uploadmapBot.php[edit]

Uploads new or updated map view images with description text, of which the exact phrasing about scale or size and cropping is determined from image sets generated via Omgifol drawmaps. New images are uploaded according to the map view pattern.
Always provides interactive viewing of (old and) new contents of the description, prior to submitting the image and description.

mapviewBot.php[edit]

Checks and updates the map view (link, dimensions, caption, and spots template) in map pages' Walkthrough sections. Newly uploaded images are linked according to the map view pattern.
Always provides interactive comparison between old and new contents of the map view lines, prior to submitting the edit.

navboxBot.php[edit]

Checks and adds the navbox line in map pages' intro sections, updates or strips the nocat option in the map template, and strips the skeleton preamble comment.
Always provides interactive comparison between old and new contents of the intro lines, prior to submitting the edit.

navboxGen.php[edit]

Generates one or multiple navboxes for Doom/Doom II/Heretic map pages based on the navboxes settings, and adds or replaces them in the template space.
Always provides interactive viewing of (old and) new contents of each navbox, prior to submitting the edit.

galleryBot.php[edit]

Checks and updates the gallery in map pages' Areas / screenshots sections. Adds the gallery container (and section) if it's not yet present. Applies the standard parameters and trims unneeded image attributes, if any. Also cleans up some minor page issues, if necessary.
Always provides interactive comparison between old and new contents of the page, prior to submitting the edit.

demolinkBot.php[edit]

Checks and updates Compet-n and DSDA links in map pages' External links sections, or adds them if applicable. Also standardizes formatting of categories and H2 headers.
Always provides interactive comparison between old and new contents of the page, prior to submitting the edit.

authorBot.php[edit]

Adds one or more authors to map pages' intro sections (optionally omitting wikilinks), along with each corresponding author's levels category at the end. Optionally removes the default skeleton text about custom music.
Always provides interactive comparison between old and new contents of the page, prior to submitting the edit.
If the page already deviates from the skeleton text, then instead shows the initial intro line and all trailing categories.

Miscellaneous scripts[edit]

These scripts don't work on a .ini file and its series of map pages as such, but perform other convenient tasks.

coveredWads.php[edit]

Collects and lists the names of all single- and multi-level WADs covered by the aforementioned .ini files and scripts, and totals the number of maps included in them. Also totals the number of navboxes created/updated by navboxGen.php. Its output is the entire "WADs covered so far" section below.

articleSort.php[edit]

Finds article, category and template pages whose titles start with an article ("A"/"An"/"The") and shows whether they contain a DEFAULTSORT tag, named map template, category sortkey, or none. Its output is the entire "Pages starting with an article" page. Thanks to Ryan W for the idea.

textmapStats.php[edit]

Processes an extracted TEXTMAP lump with regular expressions and a little code to generate statistics in Template:Mapdata format, along with a formatted list of secret sector numbers (if any). Useful for UDMF maps, which DMMPST doesn't support.

listWikiLinks.php[edit]

Collects links to Wikipedia by templates, interwiki links and direct links, along with the DoomWiki pages they're linked from, in the following namespaces: main, Doom Wiki, Help, File, Category, and Template. Its output is the entire "List of Wikipedia links" page. Requested by Ryan W.

listInterLinks.php[edit]

Collects direct links to sites for which Interwikis are defined, along with the DoomWiki pages they're linked from, in the following namespaces: main, Doom Wiki, Help, File, Category, and Template. Its output is the entire "List of Interwiki links" page. Thanks to Gez for the idea.

listExternLinks.php[edit]

Collects direct links to sites for which external link templates are defined, along with the DoomWiki pages they're linked from, in the following namespaces: main, Doom Wiki, Help, File, and Category. Its output is the entire "List of templatable links" page. Thanks to Gez for the idea.

And more?[edit]

Ideas for future scripts, anyone?

How can you help?[edit]

Create overview pages for all WADs to be covered (e.g. Top 100 WADs of All Time, Cacowards, List of notable WADs) with information as accurate and complete as feasible, especially the episodic structure (if any), the list of levels, and the use of custom monsters/weapons (see below).

And after a series of skeleton pages has been created, edit them to add any music and other introductory information, and of course walkthrough and secrets descriptions, speedrunning records, and whatever else you can contribute.

Custom things mapping[edit]

For custom things, a description or table of thing types and the new monster/weapon names is particularly helpful, and can be used to provide a mapping file to DMMPST that automatically incorporates the customizations into the Things table. An initial discussion and example mapping was presented for Valiant.

The mapping file ideally links to description(s) of the custom thing(s) on the WAD's overview page. This can be a simple one-liner but preferably contains a brief entry per thing that mentions which original thing is replaced by which custom one, and may be even more elaborate.

So, to help, please provide such descriptions (or provide a quick mapping table on the WAD's talk page) for the following WADs that I already processed previously:

and verify the correctness of Valiant's mapping file. Then I can (re)generate the Things tables on all pertaining map pages.

Going forward, the same is welcome for WADs I am skipping for now because the overview information does not appear to be sufficiently descriptive and complete. This includes:

and (m?)any more I haven't gotten around to yet.

WADs covered so far[edit]

The lists below show the single-level and multi-level WADs that have so far been covered (created and/or updated) via XymphBot and its .ini files. Map counts per WAD and various totals are included (state of 2018-07-19 08:47 CDT).

Single-level WADs[edit]

Total map pages: 224

Multi-level WADs[edit]

Total map pages: 4427

Overall total map pages: 4651

Total WADs with a custom things mapping file *: 48

Total navboxes for map articles: 542