From 4c9025fe130a9d6ffdac00287805021336e0fabb Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Sun, 25 Apr 2021 09:49:04 -0400 Subject: [PATCH] Use name api in name command --- assets/json/name.json | 348 ------------------------------------ commands/random-res/name.js | 30 +++- 2 files changed, 24 insertions(+), 354 deletions(-) delete mode 100644 assets/json/name.json diff --git a/assets/json/name.json b/assets/json/name.json deleted file mode 100644 index b9818e8d..00000000 --- a/assets/json/name.json +++ /dev/null @@ -1,348 +0,0 @@ -{ - "male": [ - "Liam", - "Noah", - "Logan", - "Lucas", - "Mason", - "Ethan", - "Oliver", - "Elijah", - "Aiden", - "James", - "Benjamin", - "Sebastian", - "Alexander", - "Jackson", - "Jacob", - "Carter", - "Michael", - "Jayden", - "Daniel", - "William", - "Matthew", - "Luke", - "Jack", - "Grayson", - "Gabriel", - "Wyatt", - "Henry", - "Julian", - "Levi", - "Owen", - "Ryan", - "Jaxon", - "Leo", - "Lincoln", - "Isaiah", - "Samuel", - "Nathan", - "David", - "Adam", - "Joseph", - "Eli", - "Anthony", - "John", - "Caleb", - "Issac", - "Muhammad", - "Dylan", - "Josiah", - "Hunter", - "Joshua", - "Mateo", - "Andrew", - "Connor", - "Asher", - "Adrian", - "Christian", - "Landon", - "Cameron", - "Christopher", - "Aaron", - "Jeremiah", - "Easton", - "Brayden", - "Ezra", - "Hudson", - "Dominic", - "Thomas", - "Nolan", - "Greyson", - "Jordan", - "Max", - "Charlie", - "Jaxson", - "Jace", - "Nicholas", - "Colton", - "Evan", - "Xavier", - "Bryson", - "Austin", - "Elias", - "Kayden", - "Maverick", - "Carson", - "Ezekiel", - "Ayden", - "Jonathan", - "Cooper", - "Ian", - "Alex", - "Parker", - "Chase", - "Gavin", - "Kai", - "Roman", - "Bentley", - "Tyler", - "Theodore", - "Jameson", - "Sawyer", - "Caiden", - "Bart", - "Homer", - "Zachary", - "Corey", - "Hiccup", - "Chris", - "Rick", - "Keiichi", - "Satoshi" - ], - "female": [ - "Emma", - "Olivia", - "Ava", - "Sophia", - "Isabella", - "Mia", - "Amelia", - "Charlotte", - "Harper", - "Aria", - "Ella", - "Evelyn", - "Abigail", - "Emily", - "Avery", - "Scarlett", - "Madison", - "Chloe", - "Sofia", - "Lily", - "Mila", - "Layla", - "Riley", - "Ellie", - "Zoey", - "Luna", - "Elizabeth", - "Grace", - "Victoria", - "Aubrey", - "Penelope", - "Hannah", - "Nora", - "Camila", - "Addison", - "Stella", - "Bella", - "Natalie", - "Maya", - "Skyler", - "Savannah", - "Aurora", - "Lillian", - "Paisley", - "Brooklyn", - "Hazel", - "Audrey", - "Lucy", - "Aaliyah", - "Zoe", - "Leah", - "Anna", - "Eva", - "Violet", - "Elena", - "Kinsley", - "Claire", - "Sophie", - "Kennedy", - "Alice", - "Hailey", - "Maria", - "Eleanor", - "Emilia", - "Sarah", - "Adeline", - "Serenity", - "Gabriella", - "Eliana", - "Naomi", - "Madelyn", - "Ariana", - "Aubree", - "Sadie", - "Willow", - "Peyton", - "Gianna", - "Isabelle", - "Quinn", - "Autumn", - "Nevaeh", - "Caroline", - "Julia", - "Samantha", - "Everly", - "Kaylee", - "Piper", - "Rylee", - "Ruby", - "Clara", - "Arianna", - "Isla", - "Alexa", - "Nova", - "Valentina", - "Brielle", - "Mackenzie", - "Jade", - "Reagan", - "Emery", - "Karen", - "Annette", - "Lisa", - "Sheila", - "Gracie", - "Jenna", - "Megan", - "Crimson", - "Astrid", - "Rika", - "Rena", - "Mion", - "Shion", - "Satoko", - "Hanyuu" - ], - "last": [ - "Smith", - "Johnson", - "Williams", - "Brown", - "Jones", - "Miller", - "Davis", - "Garcia", - "Rodriguez", - "Wilson", - "Martinez", - "Anderson", - "Taylor", - "Thomas", - "Hernandez", - "Moore", - "Martin", - "Jackson", - "Thompson", - "White", - "Lopez", - "Lee", - "Gonzalez", - "Harris", - "Clark", - "Lewis", - "Robinson", - "Walker", - "Perez", - "Hall", - "Young", - "Allen", - "Sanchez", - "Wright", - "King", - "Scott", - "Green", - "Baker", - "Adams", - "Nelson", - "Hill", - "Ramirez", - "Campbell", - "Mitchell", - "Roberts", - "Carter", - "Phillips", - "Evans", - "Turner", - "Torres", - "Parker", - "Collins", - "Edwards", - "Stewart", - "Flores", - "Morris", - "Nguyen", - "Murphy", - "Rivera", - "Cook", - "Rogers", - "Morgan", - "Roop", - "Peterson", - "Cooper", - "Reed", - "Bailey", - "Bell", - "Gomez", - "Kelly", - "Howard", - "Ward", - "Cox", - "Diaz", - "Richardson", - "Wood", - "Watson", - "Brooks", - "Bennett", - "Gray", - "James", - "Reyes", - "Cruz", - "Hughes", - "Price", - "Myers", - "Long", - "Foster", - "Sanders", - "Ross", - "Morales", - "Powell", - "Sullivan", - "Russell", - "Ortiz", - "Jenkins", - "Gutierrez", - "Perry", - "Butler", - "Barnes", - "Fisher", - "Odendahl", - "Tworni", - "Ree", - "Thacker", - "Chance", - "Horrendous Haddock III", - "Carroll", - "Harrison", - "Maebara", - "Sonozaki", - "Houjou", - "Furude", - "Ryuuguu", - "Kujou" - ] -} diff --git a/commands/random-res/name.js b/commands/random-res/name.js index 3529d5ab..1e4a38da 100644 --- a/commands/random-res/name.js +++ b/commands/random-res/name.js @@ -1,7 +1,6 @@ const Command = require('../../structures/Command'); +const request = require('node-superfetch'); const { list } = require('../../util/Util'); -const names = require('../../assets/json/name'); -const all = [].concat(names.male, names.female); const genders = ['male', 'female', 'both']; module.exports = class NameCommand extends Command { @@ -11,6 +10,14 @@ module.exports = class NameCommand extends Command { group: 'random-res', memberName: 'name', description: 'Responds with a random name, with the gender of your choice.', + credit: [ + { + name: 'Random User Generator', + url: 'https://randomuser.me/', + reason: 'API', + reasonURL: 'https://randomuser.me/documentation' + } + ], args: [ { key: 'gender', @@ -24,9 +31,20 @@ module.exports = class NameCommand extends Command { }); } - run(msg, { gender }) { - const lastName = names.last[Math.floor(Math.random() * names.last.length)]; - if (gender === 'both') return msg.say(`${all[Math.floor(Math.random() * all.length)]} ${lastName}`); - return msg.say(`${names[gender][Math.floor(Math.random() * names[gender].length)]} ${lastName}`); + async run(msg, { gender }) { + try { + const { body } = await request + .get('https://randomuser.me/api/') + .query({ + inc: 'name', + noinfo: '', + gender: gender === 'both' ? '' : gender, + nat: 'AU,US,CA,GB' + }); + const data = body.results[0].name; + return msg.say(`${data.first} ${data.last}`); + } catch (err) { + return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } } };