From ca097159ddad77ecaa85a0e8218a01eab04baff0 Mon Sep 17 00:00:00 2001 From: ewin Date: Tue, 29 Jul 2025 19:15:20 -0400 Subject: [PATCH] Move api client initialization to separate config file --- bin/add-edb-ids | 11 ++--------- lib/config.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 lib/config.js 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; +}