Add .env support to make life easier
This commit is contained in:
parent
78ad0761b3
commit
79a833133c
7 changed files with 16 additions and 6 deletions
3
.env.example
Normal file
3
.env.example
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
MW_SCRIPTPATH="https://ffxiv.consolegameswiki.com/mediawiki"
|
||||||
|
MW_USERNAME="Wind-up Umbreon"
|
||||||
|
MW_PASSWORD="..."
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +1,2 @@
|
||||||
node_modules
|
node_modules
|
||||||
|
.env
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,10 @@ Scripts for other one-time maintenance tasks (e.g. bulk renames) can be found fo
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
You'll need a recent version of Node.js (22+). Install dependencies via `npm ci`, set the `MW_USERNAME` and `MW_PASSWORD` environment variables to your account username and [bot password](https://www.mediawiki.org/wiki/Manual:Bot_passwords) respectively, then run the scripts in the `bin` folder.
|
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](https://www.mediawiki.org/wiki/Manual:Bot_passwords) 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's `https://ffxiv.consolegameswiki.com/mediawiki`; other wikis may use paths other than `/mediawiki`, which can be identified in Special:Version as "Script path".
|
||||||
|
- `MW_USERNAME` and `MW_PASSWORD`: Account username and [bot password](https://www.mediawiki.org/wiki/Manual:Bot_passwords), respectively
|
||||||
|
- `MW_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.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env -S node --env-file-if-exists=.env
|
||||||
|
|
||||||
import {findEDBEntryID} from '../lib/api/lodestone.js';
|
import {findEDBEntryID} from '../lib/api/lodestone.js';
|
||||||
import {getMediawikiClient} from '../lib/config.js';
|
import {getMediawikiClient} from '../lib/config.js';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env -S node --env-file-if-exists=.env
|
||||||
|
|
||||||
import {findItemGTID} from '../lib/api/xivapi.js';
|
import {findItemGTID} from '../lib/api/xivapi.js';
|
||||||
import {getMediawikiClient} from '../lib/config.js';
|
import {getMediawikiClient} from '../lib/config.js';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env -S node --env-file-if-exists=.env
|
||||||
// Renames A-class Stellar Missions to replace A-1, A-2, A-3 difficulty
|
// Renames A-class Stellar Missions to replace A-1, A-2, A-3 difficulty
|
||||||
// indicators with the new empty/EX/EX+ naming used in patch 7.3.
|
// indicators with the new empty/EX/EX+ naming used in patch 7.3.
|
||||||
// https://na.finalfantasyxiv.com/lodestone/topics/detail/907c6d2aa020c0e4458ed1477668521fb4a117ec#:~:text=The%20notation,adjusted%2E
|
// https://na.finalfantasyxiv.com/lodestone/topics/detail/907c6d2aa020c0e4458ed1477668521fb4a117ec#:~:text=The%20notation,adjusted%2E
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env -S node --env-file-if-exists=.env
|
||||||
// Adds infobox parameters for Viera and Hrothgar hat compatibility based on
|
// Adds infobox parameters for Viera and Hrothgar hat compatibility based on
|
||||||
// data compiled by Crye. Expects there to be a `hats.csv` file in the repo root
|
// data compiled by Crye. Expects there to be a `hats.csv` file in the repo root
|
||||||
// which is an export of the "HEAD" sheet of this Google Sheets document:
|
// which is an export of the "HEAD" sheet of this Google Sheets document:
|
||||||
|
|
@ -14,7 +14,7 @@ import {addParameterAtBottom, setExistingParameter} from '../../lib/util/templat
|
||||||
const mw = await getMediawikiClient();
|
const mw = await getMediawikiClient();
|
||||||
|
|
||||||
// parse CSV, naively assume there are no quotes or backslashes (because i checked)
|
// parse CSV, naively assume there are no quotes or backslashes (because i checked)
|
||||||
const data = readFileSync(join(import.meta.dirname, '../../hats.csv'), 'utf-8').split(/\r?\n/g).map(line => line && line.split(','));
|
const data = readFileSync(join(import.meta.dirname, '../../hats.csv'), 'utf-8').split(/\r?\n/g).filter(l => l).map(line => line && line.split(','));
|
||||||
const headers = data.splice(0, 1)[0];
|
const headers = data.splice(0, 1)[0];
|
||||||
const COL_ITEM = headers.findIndex(field => field.toLowerCase() === 'item');
|
const COL_ITEM = headers.findIndex(field => field.toLowerCase() === 'item');
|
||||||
const COL_VIERA = headers.findIndex(field => field.toLowerCase().includes('viera'));
|
const COL_VIERA = headers.findIndex(field => field.toLowerCase().includes('viera'));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue