diff --git a/bin/add-edb-ids b/bin/add-edb-ids index bba98fb..6765bb8 100755 --- a/bin/add-edb-ids +++ b/bin/add-edb-ids @@ -1,7 +1,7 @@ #!/usr/bin/env node +import {getMediawikiClient} from '../lib/config.js'; import {findItemEDBID} from '../lib/api/lodestone.js'; -import {MediaWikiClient} from '../lib/api/mediawiki.js'; import {diff} from '../lib/util/diff.js'; /** @@ -54,14 +54,7 @@ function insertInfoboxEDBID (pageContent, edbID) { throw new Error('Dunno how to insert the parameter into this page'); } -if (!process.env.MW_USERNAME || !process.env.MW_PASSWORD) { - console.error('Environment variables `MW_USERNAME` and `MW_PASSWORD` are required.'); - process.exit(1); -} - -// Log into our wiki client -const mw = new MediaWikiClient('https://ffxiv.consolegameswiki.com/mediawiki'); -await mw.login(process.env.MW_USERNAME, process.env.MW_PASSWORD); +const mw = await getMediawikiClient(); // Get pages in the "Missing EDB ID" category from the main article namespace const itemPagesWithoutEDBIDs = await mw.listCategoryPages('Category:Missing EDB ID', [0], +process.env.LIMIT || 500); diff --git a/lib/config.js b/lib/config.js new file mode 100644 index 0000000..aff689d --- /dev/null +++ b/lib/config.js @@ -0,0 +1,12 @@ +import {MediaWikiClient} from './api/mediawiki.js'; + +export async function getMediawikiClient () { + if (!process.env.MW_USERNAME || !process.env.MW_PASSWORD) { + throw new Error('Environment variables `MW_USERNAME` and `MW_PASSWORD` are required.'); + } + + // Log into our wiki client + const mw = new MediaWikiClient('https://ffxiv.consolegameswiki.com/mediawiki'); + await mw.login(process.env.MW_USERNAME, process.env.MW_PASSWORD); + return mw; +}