User:XymphBot

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.

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
The starting point for all scripts is a 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.

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

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

secretsBot.php
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
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
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
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
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
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
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
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
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.

And more?
Ideas for future scripts, anyone?

How can you help?
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
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:


 * Aliens TC
 * Caverns of Darkness
 * Cheogsh
 * Daedalus: Alien Defense
 * Doom Raider: Crypt of the Vile
 * Epic
 * Happy Time Circus
 * Harmony
 * Oniria 2
 * Phobia - The Age
 * Putrefier
 * Scythe X
 * Threshold of Pain
 * Void and Rainbow
 * Waterlab GZD
 * The ZDoom Community Map Project "Take 1"

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:


 * The Adventures of MassMouth, Massmouthmas, MassMouth 2
 * All Hell is Breaking Loose
 * Army of Darkness TC
 * Assault on Tei Tenga
 * Batman Doom
 * Cheogsh 2, Realm of Cheogsh
 * Community Is Falling 3
 * Cyberdreams
 * Demons of Problematique, Demons of Problematique 2
 * Doom 64 TC
 * Doom Arcade
 * Doom Resurrection (WAD)
 * Mordeth
 * NeoDoom
 * Nerves of Steel
 * Nimrod: Project Doom
 * Operation Overlord
 * Pirate Doom
 * Project Einherjar
 * Psychophobia
 * STRAIN
 * Strange Aeons
 * Stronghold: On the Edge of Chaos
 * Temple of the Lizard Men 2
 * Twilight Warrior
 * Unloved
 * Winter's Fury
 * ZanZan
 * Zen Dynamics

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