No description
- JavaScript 100%
| bin | ||
| lib | ||
| .env.example | ||
| .gitignore | ||
| .nvmrc | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
ffxiv-wiki-scripts
Wiki bot scripts for https://ffxiv.consolegameswiki.com.
bin/add-edb-ids: Attempts to fix items in Category:Missing EDB ID by looking them up in Eorzea Database and adding the appropriateid-edbinfobox parameter.bin/add-gt-ids: The same for Category:Missing internal ID, looking up internal IDs via XIVAPI and populating theid-gtparameter.bin/update-desynth-data: Pulls item desynthesis data from https://xivstats.com and updates the wiki with the latest data, for use with the{{Desynthesis results}}template.
Scripts for other one-time maintenance tasks (e.g. bulk renames) can be found for bin/one-time, mostly just in case I need to repurpose them for other stuff in the future.
Usage
You'll need a recent version of Node.js (22+). Install dependencies: npm ci, rename .env.example to .env and set MW_USERNAME and MW_PASSWORD to your account username and bot password respectively, then run the scripts in the bin folder.
Environment variables
MW_SCRIPTPATH: The base URL for API requests for your wiki. For the XIV wiki it'shttps://ffxiv.consolegameswiki.com/mediawiki; other wikis may use paths other than/mediawiki, which can be identified in Special:Version as "Script path".MW_USERNAMEandMW_PASSWORD: Account username and bot password, respectivelyMW_KILLPAGE: The name of a page that will be checked when running unattended scripts. If this page contains content, the bot will be killed. This allows other editors to kill the bot if it starts misbehaving and you're not watching it.
Devops
The desynth data script is currently being run daily from Erin's home server. It uses a daily systemd timer and runs under nvm. Here's how that's set up:
- Clone this repo and edit the
.envfile as needed - Install
nvm - Add the service:
/etc/systemd/system/ffxiv-wiki-desynth.service[Unit] Description = Updates desynthesis data for the FFXIV wiki. [Service] Type=simple WorkingDirectory=/path/to/repo EnvironmentFile=/path/to/repo/.env ExecStart=/home/some-user/.nvm/nvm-exec /path/to/repo/bin/update-desynth-data - Add a generic daily timer that can be used to trigger other services:
/etc/systemd/system/daily@.timer[Unit] Description = Daily timer for %i [Timer] OnCalendar=daily AccuracySec=6h RandomizeDelaySec=1h Persistent=true Unit=%i.service [Install] WantedBy=default.target - Enable an instance of the daily timer for the desynth service:
$ systemctl enable daily@ffxiv-wiki-desynth.timer - If needed, the service can also be started manually to trigger the script:
$ systemctl start ffxiv-wiki-desynth.service