diff --git a/chat.js b/chat.js index f981d21..0464095 100644 --- a/chat.js +++ b/chat.js @@ -1,8 +1,11 @@ const client = require("./client") const axios = require('axios'); const http = require('http'); +const fs = require('fs'); const { once } = require("node:events"); +const logger = client.logger + fs.mkdir("./logs", { recursive: true }, (err) => { if (err) { logger.error("an error occurred while creating the logs directory: " + err); diff --git a/client.js b/client.js index 83e2217..2e1c70a 100644 --- a/client.js +++ b/client.js @@ -2,10 +2,10 @@ const SteamID = require('steamid'); const SteamUser = require('steam-user'); const SteamTotp = require('steam-totp'); const SteamCommunity = require('steamcommunity'); -fs = require('fs'); -winston = require("winston"); +const fs = require('fs'); +const winston = require("winston"); -logger = winston.createLogger({ +const logger = winston.createLogger({ level: 'info', format: winston.format.json(), defaultMeta: { service: 'steam-logger' }, @@ -25,7 +25,7 @@ steamUser.on("refreshToken", (refreshToken) => { fs.writeFileSync('refresh.token', refreshToken); }); -config = require("./config.js"); +const config = require("./config.js"); try { refreshToken = fs.readFileSync('refresh.token', 'utf8'); @@ -56,18 +56,24 @@ try { }); } -let webLogOn = false; -steamUser.on('loggedOn', async () => { - logger.info(`login to Steam as ${steamUser.steamID}`); +steamLoginPromise = new Promise((resolve, reject) => { + steamUser.on('loggedOn', async () => { + logger.info(`login to Steam as ${steamUser.steamID}`); - if (!webLogOn) { - steamUser.webLogOn(); - } + resolve(); + }); }); -steamUser.on('webSession', async (sessionID, cookies) => { - webLogOn = true; - steamCommunity.setCookies(cookies); - steamCommunity.startConfirmationChecker(10000, config.identitySecret); + +steamWebLoginPromise = new Promise((resolve, reject) => { + steamUser.on('webSession', async (sessionID, cookies) => { + logger.info(`web session received: ${sessionID}`); + + webLogOn = true; + steamCommunity.setCookies(cookies); + steamCommunity.startConfirmationChecker(10000, config.identitySecret); + + resolve() + }); }); async function getUserInfo(steamID, onUserInfoReceived) { @@ -97,8 +103,11 @@ async function getUserInfo(steamID, onUserInfoReceived) { } module.exports = { + logger: logger, steamUser: steamUser, steamCommunity: steamCommunity, getUserInfo: getUserInfo, + steamLoginPromise: steamLoginPromise, + steamWebLoginPromise: steamWebLoginPromise, } diff --git a/config.example.js b/config.example.js index 43b9fcb..53fed5a 100644 --- a/config.example.js +++ b/config.example.js @@ -1,5 +1,13 @@ +function getRandomInt(min, max) { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min)) + min; +} + module.exports = { accountName: 'accountName', password: 'password', - logonID: 5252596, + logonID: getRandomInt(1000000, 999999999), + steamID: "xxxxxxxxxx", + chat: false, }; diff --git a/logger.js b/logger.js index 567a293..c068884 100644 --- a/logger.js +++ b/logger.js @@ -1,11 +1,14 @@ +const fs = require('fs'); const config = require('./config.js'); -dateformat = require('@matteo.collina/dateformat'); +const logger = client.logger -client = require("./client.js") -steamUser = client.steamUser +const dateformat = require('@matteo.collina/dateformat'); -fs.mkdir("./logs", {recursive: true}, (err) => { +const client = require("./client.js") +const steamUser = client.steamUser + +fs.mkdir("./logs", { recursive: true }, (err) => { if (err) { logger.error("an error occurred while creating the logs directory: " + err); } @@ -45,14 +48,16 @@ async function logMessage(date, steamID, message, echo, ordinal) { }); } -steamUser.chat.on("friendMessage", (message) => { - // noinspection JSIgnoredPromiseFromCall - logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, false, message.ordinal); -}); +client.steamLoginPromise.then(() => { + steamUser.chat.on("friendMessage", (message) => { + // noinspection JSIgnoredPromiseFromCall + logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, false, message.ordinal); + }); -steamUser.chat.on("friendMessageEcho", (message) => { - // noinspection JSIgnoredPromiseFromCall - logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, true, message.ordinal); + steamUser.chat.on("friendMessageEcho", (message) => { + // noinspection JSIgnoredPromiseFromCall + logMessage(dateToString(message.server_timestamp), message.steamid_friend, message.message, true, message.ordinal); + }); }); /**