UNPKG

zeatures

Version:

I just added every feature I want to use in a node package

118 lines (116 loc) 4.51 kB
const chalk = require('chalk') const readline = require('readline') const request = require('request') const htmltotext = require('html-to-text') const fs = require('fs') const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) let Zeatures = { machine: [ { name: 'example', price: 100 } ], money: 100000000, thing: true, func: () => { VM.machine.forEach((el, i) => { console.log(chalk.whiteBright(`${i + 1}: ${el.name}, ${el.price}`)) }); rl.question(chalk.whiteBright(`Pick one`), (choice) => { if (choice <= 0) { } else { choice--; } const tell = (name, price) => { VM.money -= price; console.log(chalk.greenBright(`You have bought ${name}. Your balance ${VM.money}`)) } VM.machine.forEach((el, i) => i == choice ? VM.money >= el.price ? tell(el.name, el.price) : console.log(chalk.redBright(`Not enough money`)) : 0); }) }, random: (limit, tf) => { Number(limit); if (tf == false) { return Math.random() * limit } else { if (tf == true) { return Math.floor(Math.random() * limit) } } }, name: '', names: (gender, nation, tf) => { let url = 'https://www.behindthename.com/random/random.php?number=1&sets=1&gender='; switch (gender) { case 'male': url += 'm'; break; case 'female': url += 'f'; break; case 'both': url += 'both'; break } url += '&surname=&randomsurname=yes&norare=yes&nodiminutives=yes&' switch (nation) { case 'swedish': url += 'usage_swe=1'; break; case 'spanish': url += 'usage_spa=1'; break; case 'scottish': url += 'usage_sco=1'; break; case 'russian': url += 'usage_rus=1'; break; case 'romanian': url += 'usage_rmn=1'; break; case 'nat-us': url += 'usage_ame=1'; break; case 'korean': url += 'usage_kor=1'; break; case 'japanese': url += 'usage_jap=1'; break; case 'italian': url += 'usage_ita=1'; break; case 'irish': url += 'usage_iri=1'; break; case 'hawaiian': url += 'usage_haw=1'; break; case 'greek': url += 'usage_gre=1'; break; case 'german': url += 'usage_fre=1&usage_ger=1'; break; case 'french': url += 'usage_fre=1'; break; case 'dutch': url += 'usage_dut=1'; break; case 'chinese': url += 'usage_chi=1'; break case 'all': url += 'all=yes'; break; case 'en': url += 'usage_eng=1'; break; default: url += 'usage_eng=1'; break; } request(url, (err, res, bod) => { let text = htmltotext.fromString(bod, { wordwrap: 130 }) text = text.split(`\n`) text = text[text.length - 2].split(' ') text = `${text[0]} ${text[2]}` VM.name = text if (tf !== false) { console.log(VM.name); } }) }, save: (savedInfo, name, save, show) => { switch (save) { case 'save': fs.appendFileSync(name, savedInfo, (err) => { if (err) throw err; setTimeout(() => { if (show == true) { console.log(savedInfo); } VM.saved = savedInfo; }, 100) }); break; case 'delete': fs.unlinkSync(name); show == true ? console.log('Deleted') : show; break case 'load': fs.readFile(`${__dirname}/${name}`, (err, data) => { if (err) throw err; data = JSON.parse(data) if (show == true) { console.log(data) } VM.saved = data; }); break } }, saved: {}, pickOne: (list) => { let tmp = Zeatures.random(list.length, true); return list[tmp]; } } module.exports = Zeatures;