From 6724222138273b49ffb9ef291656514089ec2c7a Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Wed, 13 Sep 2017 02:29:24 +0000 Subject: [PATCH] NASA Command --- commands/search/nasa.js | 37 +++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 commands/search/nasa.js diff --git a/commands/search/nasa.js b/commands/search/nasa.js new file mode 100644 index 00000000..6e40432c --- /dev/null +++ b/commands/search/nasa.js @@ -0,0 +1,37 @@ +const Command = require('../../structures/Command'); +const snekfetch = require('snekfetch'); +const { shorten } = require('../../structures/Util'); + +module.exports = class NASACommand extends Command { + constructor(client) { + super(client, { + name: 'nasa', + aliases: ['nasa-image'], + group: 'search', + memberName: 'nasa', + description: 'Responds with an image from NASA based upon your query.', + clientPermissions: ['ATTACH_FILES'], + args: [ + { + key: 'query', + prompt: 'What image would you like to search for?', + type: 'string' + } + ] + }); + } + + async run(msg, args) { + const { query } = args; + try { + const { body } = await snekfetch + .get('https://images-api.nasa.gov/search') + .query({ q: query }); + if (!body.collection.items.length) return msg.say('Could not find any results.'); + const data = body.collection.items[Math.floor(Math.random() * body.collection.items.length)]; + return msg.say(shorten(data.data[0].description), { files: [data.links[0].href] }); + } catch (err) { + return msg.say(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } + } +}; diff --git a/package.json b/package.json index d7b81a67..e0d7f8fe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiaobot", - "version": "38.5.2", + "version": "38.6.0", "description": "Your personal server companion.", "main": "Shard.js", "scripts": {