mwoffliner
Version:
MediaWiki ZIM scraper
153 lines (152 loc) • 4.54 kB
TypeScript
import { Gadget } from './Gadgets.js';
import BaseURLDirector from './util/builders/url/base.director.js';
import WikimediaDesktopURLDirector from './util/builders/url/desktop.director.js';
import WikimediaMobileURLDirector from './util/builders/url/mobile.director.js';
import VisualEditorURLDirector from './util/builders/url/visual-editor.director.js';
import RestApiURLDirector from './util/builders/url/rest-api.director.js';
import ActionParseURLDirector from './util/builders/url/action-parse.director.js';
export interface QueryOpts {
action: string;
format: string;
prop: string;
rdlimit: string;
rdnamespace: string | number;
rdprop: string;
redirects?: boolean;
formatversion: string;
maxlag: string;
}
export interface SiteInfoResponse {
batchcomplete: boolean;
query: SiteInfoQueryResponse;
warnings?: {
[key: string]: {
[key: string]: string;
};
};
}
export interface SiteInfoQueryResponse {
general: SiteInfoGeneral;
skins: SiteInfoSkin[];
rightsinfo: {
url: string;
text: string;
};
namespaces: {
[key: string]: {
id: number;
name: string;
canonical: string;
content: boolean;
subpages: boolean;
};
};
namespacealiases: {
id: number;
alias: string;
}[];
allmessages: {
name: string;
content: string;
}[];
gadgets?: Gadget[];
}
export interface SiteInfoGeneral {
generator: string;
mainpage: string;
mainpageisdomainroot: boolean;
sitename: string;
logo: string;
lang: string;
rtl: boolean;
articlepath: string;
script: string;
scriptpath: string;
fallback: {
code: string;
}[];
variants?: {
code: string;
}[];
}
export interface SiteInfoSkin {
code: string;
name: string;
default?: boolean;
unusable?: boolean;
}
declare class MediaWiki {
#private;
private static instance;
static getInstance(): MediaWiki;
metaData: MWMetaData;
baseUrl: URL;
getCategories: boolean;
namespaces: MWNamespaces;
namespacesToMirror: string[];
apiCheckArticleId: string;
queryOpts: QueryOpts;
urlDirector: BaseURLDirector;
skin: string;
wikimediaDesktopUrlDirector: WikimediaDesktopURLDirector;
wikimediaMobileUrlDirector: WikimediaMobileURLDirector;
visualEditorUrlDirector: VisualEditorURLDirector;
restApiUrlDirector: RestApiURLDirector;
actionParseUrlDirector: ActionParseURLDirector;
visualEditorApiUrl: URL;
actionApiUrl: URL;
restApiUrl: URL;
webUrl: URL;
wikimediaDesktopApiUrl: URL;
wikimediaMobileApiUrl: URL;
modulePath: string;
mobileModulePath: string;
set username(value: string);
set password(value: string);
get actionApiPath(): string;
set actionApiPath(value: string);
set restApiPath(value: string);
set domain(value: string);
set wikiPath(value: string);
set indexPhpPath(value: string);
set base(value: string);
set modulePathOpt(value: string);
private initializeMediaWikiDefaults;
private constructor();
hasWikimediaDesktopApi(): Promise<boolean>;
hasWikimediaMobileApi(): Promise<boolean>;
hasVisualEditorApi(): Promise<boolean>;
hasRestApi(): Promise<boolean>;
hasActionParseApi(): Promise<boolean>;
hasCoordinates(): Promise<boolean>;
hasModuleApi(): Promise<boolean>;
private setWikimediaDesktopApiUrl;
private setWikimediaMobileApiUrl;
private setRestApiURL;
private setVisualEditorURL;
private setModuleURL;
private setMobileModuleUrl;
login(): Promise<void>;
setNamespaces(json: SiteInfoQueryResponse, addNamespaces: number[]): void;
extractPageTitleFromHref(href: any): any;
getCreatorName(): string;
getDefaultSkin(skins: SiteInfoSkin[]): string;
getSiteInfo({ mwWikiPath, mwIndexPhpPath, addNamespaces, mwRestApiPath, mwModulePath, forceSkin, langVariant }?: SiteInfoArgv): Promise<{
mainPage: string;
mainPageIsDomainRoot: boolean;
siteName: string;
textDir: string;
langMw: string;
langVar: string;
langIso2: any;
langIso3: any;
logo: string;
licenseName: string;
licenseUrl: string;
subTitle: string;
}>;
getMwMetaData(argvOpts?: SiteInfoArgv): Promise<MWMetaData>;
reset(): void;
}
declare const _default: MediaWiki;
export default _default;