lovelyCARDINAL/WikiBots

View on GitHub
src/utils/clientLogin.js

Summary

Maintainability
A
1 hr
Test Coverage
import process from 'process';
import config from './config.js';

/**
 * @param {import('../src').MediaWikiApi} api
 * @param {string} username
 * @param {string} [password=config.password]
 */
// eslint-disable-next-line require-await
async function clientLogin(api, username, password = config.password) {
    return api
        .postWithToken(
            'login',
            {
                action: 'clientlogin',
                username,
                password,
                loginreturnurl: config.zh.api,
            },
            {
                tokenName: 'logintoken',
                retry: 15,
                noCache: true,
            },
        )
        .then(({ data }) => {
            if (data.clientlogin.status === 'PASS') {
                console.log('登录成功', data);
                return data;
            }
            throw new Error(data.clientlogin.message);
        })
        .catch((err) => {
            console.error('登录异常', err);
            process.exit(1);
        });
}

export default clientLogin;