mwoffliner
Version:
MediaWiki ZIM scraper
53 lines • 2.09 kB
JavaScript
import urlBuilder from './url.builder.js';
/**
* Interface to build URLs based on MediaWiki API URL
*/
export default class ApiURLDirector {
baseDomain;
constructor(baseDomain) {
this.baseDomain = baseDomain;
}
buildSubCategoriesURL(articleId, continueStr = '') {
return urlBuilder
.setDomain(this.baseDomain)
.setQueryParams({
action: 'query',
list: 'categorymembers',
cmtype: 'subcat',
cmlimit: 'max',
format: 'json',
formatversion: '2',
cmtitle: articleId,
cmcontinue: continueStr,
})
.build();
}
buildSiteInfoQueryURL() {
return urlBuilder
.setDomain(this.baseDomain)
.setQueryParams({ action: 'query', meta: 'siteinfo', format: 'json', formatversion: '2', siprop: 'general|namespaces|statistics|variables|category|wikidesc' })
.build();
}
buildQueryURL(queryParams) {
return urlBuilder.setDomain(this.baseDomain).setQueryParams(queryParams, '?', true).build();
}
buildNamespacesURL() {
return urlBuilder
.setDomain(this.baseDomain)
.setQueryParams({ action: 'query', meta: 'siteinfo', siprop: 'namespaces|namespacealiases', format: 'json', formatversion: '2' })
.build();
}
buildSiteInfoURL() {
return urlBuilder.setDomain(this.baseDomain).setQueryParams({ action: 'query', meta: 'siteinfo', format: 'json', formatversion: '2' }).build();
}
buildVisualEditorURL() {
return urlBuilder.setDomain(this.baseDomain).setQueryParams({ action: 'visualeditor', mobileformat: 'html', format: 'json', paction: 'parse', formatversion: '2' }).build(true);
}
buildArticleApiURL(articleId) {
return urlBuilder
.setDomain(this.baseDomain)
.setQueryParams({ action: 'parse', format: 'json', prop: 'modules|jsconfigvars|headhtml', formatversion: '2', page: articleId })
.build();
}
}
//# sourceMappingURL=api.director.js.map