spamhole
Version:
Like a blackhole, but for spam
37 lines • 1.58 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const mailbox_1 = require("./mailbox");
const Chalk = require('chalk');
const Pad = require('pad');
const Ora = require('ora');
const Boxen = require('boxen');
const Hermit = require('hermit');
const Clipboardy = require('clipboardy');
// Constants
const SPINNER_TEXT = "Waiting for new emails...";
// Create the mailbox, print info and copy address to clipboard
const box = mailbox_1.Mailbox.create(process.argv[2]);
Clipboardy.writeSync(box.address);
console.log(Boxen(box.address, { padding: 1, borderStyle: 'double', borderColor: 'green' }));
console.log(Chalk.bold.yellow('WARNING: Anything sent to this address is public!\n'));
// Start spinner and listen for new emails
const spinner = Ora({ text: SPINNER_TEXT, color: 'yellow', spinner: 'dots6' }).start();
box.on('newMail', (m) => box.getEmail(m.id).then(printMail).catch(console.error));
// Handler for new emails
function printMail(parsedEmail) {
const res = typeof parsedEmail.html === 'string' ? parsedEmail.html : parsedEmail.text;
spinner.stop();
printBanner(` Subject: ${parsedEmail.subject}`);
printBanner(` From: ${parsedEmail.from.text}`);
printBanner(` Date: ${parsedEmail.date}`);
Hermit(parsedEmail.textAsHtml, (err, res) => {
console.log(res);
console.log('\n');
spinner.start(SPINNER_TEXT);
});
}
// Prints text in inversed banner
function printBanner(text) {
console.log(Chalk.inverse(Pad(text, process.stdout.columns || 80, ' ')));
}
//# sourceMappingURL=index.js.map
;