mwn
Version:
JavaScript & TypeScript MediaWiki bot framework for Node.js
60 lines (59 loc) • 2.46 kB
TypeScript
import type { Mwn } from './bot';
import type { MwnPage } from './page';
import type { ApiBlockParams, ApiEmailUserParams, CentralAuthApiQueryGlobalUserInfoParams, ApiQueryLogEventsParams, ApiQueryUserContribsParams, ApiQueryUsersParams, ApiUnblockParams } from 'types-mediawiki-api';
import { ApiBlockResponse, ApiEditResponse, ApiEmailUserResponse, ApiQueryGlobalUserInfoResponse, ApiQueryUsersResponse, ApiUnblockResponse, LogEvent, UserContribution } from './api_response_types';
export interface MwnUserStatic {
new (username: string): MwnUser;
}
export interface MwnUser {
username: string;
userpage: MwnPage;
talkpage: MwnPage;
/**
* Get user's recent contributions
* @param {Object} options - additional API options
* @returns {Promise<Object[]>}
*/
contribs(options?: ApiQueryUserContribsParams): Promise<UserContribution[]>;
contribsGen(options?: ApiQueryUserContribsParams): AsyncGenerator<UserContribution>;
/**
* Get user's recent log actions
* @param {Object} options - additional API options
* @returns {Promise<Object[]>}
*/
logs(options?: ApiQueryLogEventsParams): Promise<LogEvent[]>;
logsGen(options?: ApiQueryLogEventsParams): AsyncGenerator<LogEvent>;
/**
* Get public information about the user
* @param {string|string[]} props - properties to fetch
* @returns {Promise<Object>}
*/
info(props?: ApiQueryUsersParams['usprop']): Promise<ApiQueryUsersResponse>;
/**
* Get global user info for wikis with CentralAuth
* @param {string|string[]} props
*/
globalinfo(props?: CentralAuthApiQueryGlobalUserInfoParams['guiprop']): Promise<ApiQueryGlobalUserInfoResponse>;
/**
* Post a message on user's talk page
* @param {string} header
* @param {string} message
* @returns {Promise}
*/
sendMessage(header: string, message: string): Promise<ApiEditResponse>;
/**
* Send the user an email
*/
email(subject: string, message: string, options?: ApiEmailUserParams): Promise<ApiEmailUserResponse>;
/**
* Block the user
* @param {Object} options - additional API options
*/
block(options: ApiBlockParams): Promise<ApiBlockResponse>;
/**
* Unblock the user
* @param {Object} options - additional API options
*/
unblock(options: ApiUnblockParams): Promise<ApiUnblockResponse>;
}
export default function (bot: Mwn): MwnUserStatic;