UNPKG

mwn

Version:

JavaScript & TypeScript MediaWiki bot framework for Node.js

60 lines (59 loc) 2.46 kB
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;