only act on pages in article namespace
This commit is contained in:
parent
ceb3df2fdb
commit
c86fb77f9e
2 changed files with 10 additions and 3 deletions
|
|
@ -49,8 +49,8 @@ if (!process.env.MW_USERNAME || !process.env.MW_PASSWORD) {
|
||||||
const mw = new MediaWikiClient('https://ffxiv.consolegameswiki.com/mediawiki');
|
const mw = new MediaWikiClient('https://ffxiv.consolegameswiki.com/mediawiki');
|
||||||
await mw.login(process.env.MW_USERNAME, process.env.MW_PASSWORD);
|
await mw.login(process.env.MW_USERNAME, process.env.MW_PASSWORD);
|
||||||
|
|
||||||
// Get pages in the "Missing EDB ID" category
|
// Get pages in the "Missing EDB ID" category from the main article namespace
|
||||||
const itemPagesWithoutEDBIDs = await mw.listCategoryPages('Category:Missing EDB ID', +process.env.LIMIT || 500);
|
const itemPagesWithoutEDBIDs = await mw.listCategoryPages('Category:Missing EDB ID', [0], +process.env.LIMIT || 500);
|
||||||
console.log('Processing', itemPagesWithoutEDBIDs.length, 'item pages from [[Category:Missing EDB ID]]\n');
|
console.log('Processing', itemPagesWithoutEDBIDs.length, 'item pages from [[Category:Missing EDB ID]]\n');
|
||||||
|
|
||||||
for (const {title} of itemPagesWithoutEDBIDs) {
|
for (const {title} of itemPagesWithoutEDBIDs) {
|
||||||
|
|
|
||||||
|
|
@ -165,16 +165,23 @@ export class MediaWikiClient {
|
||||||
/**
|
/**
|
||||||
* Gets the list of wiki pages that belong to the given category.
|
* Gets the list of wiki pages that belong to the given category.
|
||||||
* @param {string} name Category name including the `Category:` namespace.
|
* @param {string} name Category name including the `Category:` namespace.
|
||||||
|
* @param {number[] | '*'} namespaces Integer namespace ID(s) or the string
|
||||||
|
* `'*'`. If namespace IDs are provided, only pages in those namespaces will
|
||||||
|
* be returned.
|
||||||
* @param {string} limit Maximum number of items to return. Must be 500 or
|
* @param {string} limit Maximum number of items to return. Must be 500 or
|
||||||
* less. I'm lazy and not supporting API paging so deal with it.
|
* less. I'm lazy and not supporting API paging so deal with it.
|
||||||
* @returns {Promise<{pageid: number; title: string}[]>}
|
* @returns {Promise<{pageid: number; title: string}[]>}
|
||||||
*/
|
*/
|
||||||
async listCategoryPages (name, limit = 50) {
|
async listCategoryPages (name, namespaces = '*', limit = 50) {
|
||||||
|
if (Array.isArray(namespaces)) {
|
||||||
|
namespaces = namespaces.join('|');
|
||||||
|
}
|
||||||
const body = await this.fetchApiGet({
|
const body = await this.fetchApiGet({
|
||||||
action: 'query',
|
action: 'query',
|
||||||
list: 'categorymembers',
|
list: 'categorymembers',
|
||||||
cmtitle: name,
|
cmtitle: name,
|
||||||
cmlimit: limit,
|
cmlimit: limit,
|
||||||
|
cmnamespace: namespaces,
|
||||||
});
|
});
|
||||||
return body.query.categorymembers;
|
return body.query.categorymembers;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue