diff --git a/commands/search/kickstarter.js b/commands/search/kickstarter.js new file mode 100644 index 00000000..c2559dde --- /dev/null +++ b/commands/search/kickstarter.js @@ -0,0 +1,52 @@ +const Command = require('../../structures/Command'); +const { MessageEmbed } = require('discord.js'); +const snekfetch = require('snekfetch'); + +module.exports = class KickstarterCommand extends Command { + constructor(client) { + super(client, { + name: 'kickstarter', + group: 'search', + memberName: 'kickstarter', + description: 'Searches Kickstarter for your query.', + clientPermissions: ['EMBED_LINKS'], + args: [ + { + key: 'query', + prompt: 'What project would you like to search for?', + type: 'string' + } + ] + }); + } + + async run(msg, { query }) { + try { + const { body } = await snekfetch + .get('https://www.kickstarter.com/projects/search.json') + .query({ + search: '', + term: query + }); + if (!body.projects.length) return msg.say('Could not find any results.'); + const embed = new MessageEmbed() + .setColor(0x14E06E) + .setTitle(body.projects[0].name) + .setURL(body.projects[0].urls.web.project) + .setAuthor('Kickstarter', 'https://i.imgur.com/7mJF4qJ.png') + .setDescription(body.projects[0].blurb) + .setThumbnail(body.projects[0].photo ? body.projects[0].photo.full : null) + .addField('❯ Goal', + `${body.projects[0].currency_symbol}${body.projects[0].goal.toLocaleString()}`, true) + .addField('❯ Pledged', + `${body.projects[0].currency_symbol}${body.projects[0].pledged.toLocaleString()}`, true) + .addField('❯ Backers', + body.projects[0].backers_count, true) + .addField('❯ Creator', + body.projects[0].creator.name, true); + return msg.embed(embed); + } catch (err) { + return msg.say(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } + } +}; diff --git a/commands/search/movie.js b/commands/search/movie.js index dbab72b1..5e94f4c3 100644 --- a/commands/search/movie.js +++ b/commands/search/movie.js @@ -8,7 +8,7 @@ module.exports = class MovieCommand extends Command { constructor(client) { super(client, { name: 'movie', - aliases: ['tmdb-movie'], + aliases: ['tmdb-movie', 'imdb'], group: 'search', memberName: 'movie', description: 'Searches TMDB for your query, getting movie results.', diff --git a/package.json b/package.json index 7b972186..e7808ecb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiaobot", - "version": "40.3.0", + "version": "40.4.0", "description": "Your personal server companion.", "main": "Shard.js", "scripts": {