Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
crackhub-dev
GitHub Repository: crackhub-dev/mega-account-generator
Path: blob/main/index.js
194 views
1
const MailClient = require('mail.tm');
2
const puppeteer = require('puppeteer');
3
const fs = require('fs');
4
const path = require('path');
5
const faker = require('@faker-js/faker');
6
const fsExtra = require('fs-extra');
7
8
const mail = new MailClient;
9
const args = [
10
'--no-sandbox',
11
'--disable-setuid-sandbox',
12
'--disable-infobars',
13
'--window-position=0,0',
14
'--ignore-certifcate-errors',
15
'--ignore-certifcate-errors-spki-list',
16
'--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3312.0 Safari/537.36"'
17
];
18
19
async function generateDetails() {
20
let details = await mail.generateAccount();
21
let email = details.data.username;
22
let emailPassword = details.data.password;
23
let password = faker.internet.password();
24
console.log('Generated Credentials');
25
return {
26
email,
27
password,
28
emailPassword
29
}
30
}
31
generateDetails().then(details => {
32
async function register() {
33
const firstName = faker.name.firstName();
34
const lastName = faker.name.lastName();
35
const browser = await puppeteer.launch({
36
headless: true,
37
ignoreHTTPSErrors: true,
38
userDataDir: './tmp',
39
args: args,
40
ignoreDefaultArgs: ['--enable-automation']
41
});
42
const page = await browser.newPage();
43
await page.goto("https://mega.nz/register");
44
console.log("Registering...");
45
await page.waitForSelector('#register_form');
46
await page.type('#register-firstname-registerpage2', firstName);
47
await page.type('#register-lastname-registerpage2', lastName);
48
await page.type('#register-email-registerpage2', details.email);
49
await page.type('#register-password-registerpage2', details.password);
50
await page.type('#register-password-registerpage3', details.password);
51
await page.click('#register-check-registerpage2');
52
await page.$$eval('.understand-check', (elements) => {
53
elements[0].click();
54
});
55
await new Promise(resolve => setTimeout(resolve, 1000));
56
await page.click('.register-button');
57
await mail.login(details.email, details.emailPassword);
58
await new Promise(resolve => setTimeout(resolve, 5000));
59
console.log("Verifying account...");
60
let confirmEmailId = await mail.fetchMessages();
61
let message = await mail.fetchMessage(confirmEmailId.data[0].id);
62
let exp = /(https?:\/\/[^ ]*)/;
63
let confirmLink = message.data.text.match(exp)[0].replace('Best', '');
64
await page.goto(confirmLink);
65
await page.waitForSelector('#login-password2');
66
await page.type('#login-password2', details.password);
67
await page.click('.login-button');
68
await browser.close();
69
fs.writeFileSync(path.join(__dirname, 'details.json'), JSON.stringify(details));
70
console.log('Successfully registered and verified account! Wrote details to details.json.');
71
console.log("You can login to the email account on https://mail.tm with the provided 'emailPassword' and email.\n")
72
console.log(`Your Mega Login Credentials: \n E-mail: ${details.email} \n Password: ${details.password}`);
73
fsExtra.emptyDirSync('./tmp');
74
}
75
register();
76
})
77