UNPKG

steam-family-bot-core

Version:

一个用于新版 Steam 家庭的库存监控 Bot 插件

61 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const steam_session_1 = require("steam-session"); const builder_1 = require("../cmd/builder"); exports.default = () => new builder_1.CommandBuilder() .setName('login') .setDescription('login to steam via qrcode') .addAlias('sblogin') .setExecutor(async (c) => { const { steamService, logger, session } = c; const loginSession = new steam_session_1.LoginSession(steam_session_1.EAuthTokenPlatformType.SteamClient); loginSession.loginTimeout = 115 * 1000; const startResult = await loginSession.startWithQR(); const qrUrl = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=' + encodeURIComponent(startResult.qrChallengeUrl); const buf = await fetch(qrUrl).then((res) => res.arrayBuffer()); await session.sendImgBuffer(Buffer.from(buf)); await session.send(session.text('commands.login.start-login')); let status = 'wait'; loginSession.on('authenticated', async () => { status = 'success'; await steamService .addAccountInfoByLoginSession(loginSession, session.getSessionInfo()) .catch((e) => { logger.error('login error', e); session.send(session.text('commands.login.login-success-but-add-failed')); }); await session.send(session.text('commands.login.login-success', { accountName: loginSession.accountName, })); }); loginSession.on('timeout', async () => { await session.send(session.text('commands.login.timeout')); status = 'failed'; }); loginSession.on('error', async (err) => { await session.send(session.text('commands.login.error')); status = 'failed'; }); await new Promise((resolve, reject) => { let time = 0; const intervalId = setInterval(() => { if (status !== 'success' && time < 120) { time += 3; } else if (status !== 'success') { clearInterval(intervalId); loginSession.cancelLoginAttempt(); reject(status); } else { clearInterval(intervalId); resolve(status); } }, 3000); }).catch((e) => { logger.error(e); }); return; }); //# sourceMappingURL=login.js.map