nodemw
Version:
MediaWiki API and WikiData client written in Node.js
192 lines (183 loc) • 5.94 kB
TypeScript
/**
* This file brings type hinting for bot.js file.
* While this package is not written in TypeScript, this file will allow your IDE to provide you with auto-completion.
*
* @see https://www.typescriptlang.org/docs/handbook/declaration-files/templates/module-d-ts.html
*/
import {
// code API types
BotOptions,
NodeJSCallback,
NodeJSCallbackDouble,
// responses typing
ArticleInfo,
ArticleProperties,
PageEditedResult,
PageInCategory,
RedirectInfo,
SearchResult,
SiteInfo,
SiteStatistics,
UserContribution,
UserInfo,
WikiaUserInfo,
WikiaWikiVariables,
} from "./types";
declare interface Wikia {
// TODO: add proper types
call(path: any, params: any, callback: NodeJSCallback<any>): void;
getWikiVariables(callback: NodeJSCallback<WikiaWikiVariables>): void;
getUser(ids: any, callback: NodeJSCallback<WikiaUserInfo>): void;
getUsers(ids: any, callback: NodeJSCallback<WikiaUserInfo[]>): void;
}
declare class Bot {
constructor(params: string | BotOptions);
getConfig(key: any, def: any): void;
log(...args: any[]): void;
error(): void;
append(
title: string,
content: string,
summary: string,
callback: NodeJSCallback<PageEditedResult>,
): void;
doEdit(
action: string,
title: string,
summary: string,
params: Object,
callback: NodeJSCallback<PageEditedResult>,
): void;
edit(
title: string,
content: string,
summary: string,
callback: NodeJSCallback<PageEditedResult>,
): void;
edit(
title: string,
content: string,
summary: string,
minor: boolean,
callback: NodeJSCallback<PageEditedResult>,
): void;
getArticle(article: string, callback: NodeJSCallback<string>): void;
getArticle(
article: string,
followRedirect: boolean,
callback: NodeJSCallbackDouble<string, RedirectInfo>,
): void;
getArticleInfo(
title: any,
options: any,
callback: NodeJSCallback<ArticleInfo[]>,
): void;
getArticleProperties(
title: string,
callback: NodeJSCallback<ArticleProperties>,
): void;
getMediaWikiVersion(callback: NodeJSCallback<string>): void;
getPagesInCategory(
category: string,
callback: NodeJSCallback<PageInCategory[]>,
): void;
getSiteInfo(props: string[], callback: NodeJSCallback<SiteInfo>): void;
getSiteStats(callback: NodeJSCallback<SiteStatistics>): void;
getUserContribs(
options: { user: string },
callback: NodeJSCallback<UserContribution[]>,
): void;
logIn(callback: NodeJSCallback<any>): void;
logIn(
username: string,
password: string,
callback: NodeJSCallback<any>,
): void;
prepend(
title: string,
content: string,
summary: string,
callback: NodeJSCallback<PageEditedResult>,
): void;
search(keyword: string, callback: NodeJSCallback<SearchResult[]>): void;
whois(username: string, callback: NodeJSCallback<UserInfo>): void;
// TODO: add proper types for the rest of the methods
// egrep '^\t[a-z]' bot.js | sed 's/{/: void;/g' | sed 's/,/: any,/g' | sed 's/ )/: any )/g'
addFlowTopic(
title: any,
subject: any,
content: any,
callback: NodeJSCallback<any>,
): void;
createAccount(
username: any,
password: any,
callback: NodeJSCallback<any>,
): void;
diff(prev: any, current: any): void;
expandTemplates(text: any, title: any, callback: NodeJSCallback<any>): void;
fetchUrl(url: any, callback: NodeJSCallback<any>, encoding: any): void;
getAll(params: any, key: any, callback: NodeJSCallback<any>): void;
getAllPages(callback: NodeJSCallback<any>): void;
getArticleCategories(title: any, callback: NodeJSCallback<any>): void;
getArticleRevisions(title: any, callback: NodeJSCallback<any>): void;
getBacklinks(title: any, callback: NodeJSCallback<any>): void;
getCategories(prefix: any, callback: NodeJSCallback<any>): void;
getExternalLinks(title: any, callback: NodeJSCallback<any>): void;
getImageInfo(filename: any, callback: NodeJSCallback<any>): void;
getImageUsage(filename: any, callback: NodeJSCallback<any>): void;
getImages(start: any, callback: NodeJSCallback<any>): void;
getImagesFromArticle(title: any, callback: NodeJSCallback<any>): void;
getImagesFromArticleWithOptions(
title: any,
options: any,
callback: NodeJSCallback<any>,
): void;
getLog(type: any, start: any, callback: NodeJSCallback<any>): void;
getPagesByPrefix(prefix: any, callback: NodeJSCallback<any>): void;
getPagesInNamespace(namespace: any, callback: NodeJSCallback<any>): void;
getPagesTranscluding(template: any, callback: NodeJSCallback<any>): void;
getQueryPage(queryPage: any, callback: NodeJSCallback<any>): void;
getRand(): void;
getRecentChanges(start: any, callback: NodeJSCallback<any>): void;
getTemplateParamFromXml(
tmplXml: string,
paramName: string,
): string | undefined;
getToken(title: any, action: any, callback: NodeJSCallback<any>): void;
getUsers(data: any, callback: NodeJSCallback<any>): void;
move(from: any, to: any, summary: any, callback: NodeJSCallback<any>): void;
parse(text: any, title: any, callback: NodeJSCallback<any>): void;
protect(
title: any,
protections: any,
options: any,
callback: NodeJSCallback<any>,
): void;
purge(titles: any, callback: NodeJSCallback<any>): void;
sendEmail(
username: any,
subject: any,
text: any,
callback: NodeJSCallback<any>,
): void;
setConfig(key: any, val: any): void;
upload(
filename: any,
content: any,
extraParams: any,
callback: NodeJSCallback<any>,
): void;
uploadByUrl(
filename: any,
url: any,
summary: any,
callback: NodeJSCallback<any>,
): void;
uploadVideo(fileName: any, url: any, callback: NodeJSCallback<any>): void;
whoami(callback: NodeJSCallback<any>): void;
whoare(usernames: any, callback: NodeJSCallback<any>): void;
logData(obj: any): void;
wikia: Wikia;
}
export = Bot;