diff --git a/main.js b/main.js index accffd6..d60dec2 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,5 @@ require('dotenv').config(); -const { connect, disconnect } = require('./modules/codeHandler'); const { createDriver } = require('./modules/driverManager'); const { createAccount } = require('./modules/microsoftHandler'); const { createAWSAccount } = require('./modules/awsHandler'); @@ -8,7 +7,6 @@ const args = process.argv.slice(2); async function microsoft() { const numAccounts = process.env.MS_ACCOUNT_COUNT; - await connect(); const accountPromises = []; for (let i = 0; i < numAccounts; i++) { const promise = await createAccount(createDriver()); @@ -17,12 +15,10 @@ async function microsoft() { } await Promise.all(accountPromises); console.log('All accounts done!'); - await disconnect(); } async function aws() { const numAccounts = process.env.AWS_ACCOUNT_COUNT; - await connect(); const accountPromises = []; for (let i = 0; i < numAccounts; i++) { const promise = await createAWSAccount(createDriver()); @@ -31,7 +27,6 @@ async function aws() { } await Promise.all(accountPromises); console.log('All accounts done!'); - await disconnect(); } for (let i = 0; i < args.length; i++) { diff --git a/modules/codeHandler.js b/modules/codeHandler.js index 851e73f..78bc077 100644 --- a/modules/codeHandler.js +++ b/modules/codeHandler.js @@ -1,27 +1,28 @@ const MailListener = require('mail-listener2'); -const mailListener = new MailListener({ - username: process.env.MAIL_USER, - password: process.env.MAIL_PASSWORD, - host: process.env.MAIL_HOST, - port: process.env.MAIL_PORT, - tls: true, -}); - -mailListener.on('server:connected', function() { - console.log('imapConnected'); -}); - -mailListener.on('server:disconnected', function() { - console.log('imapDisconnected'); -}); - -mailListener.on('error', function(err) { - console.log(err); -}); - -function getCodeFromEmail() { +async function getCodeFromEmail() { return new Promise((resolve) => { + const mailListener = new MailListener({ + username: process.env.MAIL_USER, + password: process.env.MAIL_PASSWORD, + host: process.env.MAIL_HOST, + port: process.env.MAIL_PORT, + tls: true, + }); + mailListener.on('server:connected', function() { + console.log('imap server connected'); + }); + + mailListener.on('server:disconnected', function() { + console.log('imap server disconnected'); + }); + + mailListener.on('error', function(err) { + console.log(err); + }); + + mailListener.start(); + mailListener.on('mail', function(mail, seqno, attributes) { if (!attributes) return; if (mail.subject.trim() == 'Verify your email address') { @@ -32,6 +33,7 @@ function getCodeFromEmail() { imap.addFlags(attributes.uid, '\\Seen', (err) => { if (err) console.log('Error marking email as seen:', err); }); + mailListener.stop(); resolve(match[1]); } } @@ -43,6 +45,7 @@ function getCodeFromEmail() { imap.addFlags(attributes.uid, '\\Seen', (err) => { if (err) console.log('Error marking email as seen:', err); }); + mailListener.stop(); resolve(match[1]); } } @@ -50,17 +53,4 @@ function getCodeFromEmail() { }); } - -function connect() { - mailListener.start(); -} - -function disconnect() { - mailListener.stop(); -} - -mailListener.on('attachment', function(attachment) { - console.log(attachment.path); -}); - -module.exports = { getCodeFromEmail, connect, disconnect }; \ No newline at end of file +module.exports = { getCodeFromEmail }; \ No newline at end of file diff --git a/modules/microsoftHandler.js b/modules/microsoftHandler.js index 4227003..54e1cbe 100644 --- a/modules/microsoftHandler.js +++ b/modules/microsoftHandler.js @@ -96,6 +96,7 @@ async function createAccount(driver) { const source = await driver.getPageSource(); if (source.includes('Phone number')) { console.log('Ip usage exceeded please switch IP'); + // await disconnect(); const answer = await questionAsync('Would you like to continue? [y/n] '); if (answer.toLowerCase() === 'n' || answer.toLowerCase() === 'no') { console.log('Program stopped.'); @@ -104,6 +105,15 @@ async function createAccount(driver) { } else { console.log('Continuing...'); + await new Promise((resolve) => setTimeout(resolve, 1000)); + // try { + // await connect(); + // } + // catch (error) { + // console.error('Error connecting to mail server:', error); + // await driver.quit(); + // process.exit(0); + // } } } else {