diff --git a/commands/General/whois.js b/commands/General/whois.js new file mode 100644 index 00000000..2f221d62 --- /dev/null +++ b/commands/General/whois.js @@ -0,0 +1,71 @@ +const Command = require("../../base/Command"), + Discord = require("discord.js"), + fetch = require("node-fetch"); + +class Whois extends Command { + constructor(client) { + super(client, { + name: "whois", + dirname: __dirname, + enabled: true, + guildOnly: false, + aliases: ["ip"], + memberPermissions: [], + botPermissions: ["SEND_MESSAGES", "EMBED_LINKS"], + nsfw: false, + ownerOnly: false, + cooldown: 1000 + }); + } + + async run(message, args, data) { + if (!args[0]) return message.error("general/whois:NO_IP"); + + const whois = await fetch(`http://ip-api.com/json/${args[0]}?fields=status,message,continent,continentCode,country,countryCode,region,regionName,city,zip,timezone,currency,isp,org,as,mobile,proxy,hosting,query`).then(response => response.json()); + + if (whois.status === "fail") { + const embed = new Discord.MessageEmbed() + .setDescription(whois.message) + .setTitle(message.translate("general/whois:ERROR", { + ip: args[0] + })) + .setColor(data.config.embed.color) + .setFooter({ + text: data.config.embed.footer + }) + .setTimestamp(); + return message.reply(embed); + } + + const embed = new Discord.MessageEmbed() + .setTitle(message.translate("general/whois:INFO_ABOUT", { + ip: args[0] + })) + .setFooter({ + text: data.config.embed.footer + }) + .setColor(data.config.embed.color) + .addFields( + { name: "IP", value: whois.query, inline: true }, + { name: message.translate("general/whois:COUNTRY"), value: `${whois.country || "Неизвестно"} (${whois.countryCode || "Неизвестно"})`, inline: true }, + { name: message.translate("general/whois:REGION"), value: `${whois.regionName || "Неизвестно"} (${whois.region || "Неизвестно"})`, inline: true }, + { name: message.translate("general/whois:CITY"), value: `${whois.city || "Неизвестно"}`, inline: true }, + { name: message.translate("general/whois:ZIP"), value: `${whois.zip || "Неизвестно"}`, inline: true }, + { name: message.translate("general/whois:TIMEZONE"), value: `${whois.timezone || "Неизвестно"}`, inline: true }, + { name: message.translate("general/whois:CONTINENT"), value: `${whois.continent || "Неизвестно"} (${whois.continentCode || "Неизвестно"})`, inline: true }, + { name: message.translate("general/whois:CURRENCY"), value: `${whois.currency || "Неизвестно"}`, inline: true }, + { name: message.translate("general/whois:ISP"), value: `${whois.isp || "Неизвестно"}`, inline: true } + ) + .setTimestamp(); + + if (whois.proxy == true) embed.addFields({ name: message.translate("general/whois:INFO"), value: message.translate("general/whois:PROXY") }); + else if (whois.mobile == true) embed.addFields({ name: message.translate("general/whois:INFO"), value: message.translate("general/whois:MOBILE") }); + else if (whois.hosting == true) embed.addFields({ name: message.translate("general/whois:INFO"), value: message.translate("general/whois:HOSTING") }); + + message.reply({ + embeds: [embed] + }); + } +} + +module.exports = Whois; \ No newline at end of file diff --git a/dashboard/public/docs/updates.md b/dashboard/public/docs/updates.md index 4cc3ca74..03c7fd46 100644 --- a/dashboard/public/docs/updates.md +++ b/dashboard/public/docs/updates.md @@ -1,3 +1,7 @@ +### JaBa v3.4.2 +* Добавлено + * Команда *whois* - Получить информацию об IP адресе. + ### JaBa v3.4.1 * Добавлено * Информация о необходимых уровнях буста для активностей. diff --git a/languages/ru-RU/general/whois.json b/languages/ru-RU/general/whois.json new file mode 100644 index 00000000..34f96ec5 --- /dev/null +++ b/languages/ru-RU/general/whois.json @@ -0,0 +1,20 @@ +{ + "DESCRIPTION": "Получить информацию об IP адресе!", + "USAGE": "{{prefix}}whois (IP)", + "EXAMPLES": "{{prefix}}whois 1.1.1.1", + "NO_IP": "Укажите IP адрес!", + "ERROR": "Произошла ошибка при получении данных об {{ip}}", + "INFO_ABOUT": "Информация об {{ip}}", + "COUNTRY": "Страна", + "REGION": "Регион", + "CITY": "Город", + "ZIP": "Почтовый индекс", + "TIMEZONE": "Часовой пояс", + "CONTINENT": "Континент", + "CURRENCY": "Валюта", + "ISP": "Провайдер", + "INFO": "Дополнительная информация", + "PROXY": "Этот IP принадлежит Tor, VPN или прокси!", + "MOBILE": "Этот IP используется для мобильных данных!", + "HOSTING": "Это IP принадлежит хостингу или датацентру!" +} \ No newline at end of file diff --git a/languages/uk-UA/general/whois.json b/languages/uk-UA/general/whois.json new file mode 100644 index 00000000..34f96ec5 --- /dev/null +++ b/languages/uk-UA/general/whois.json @@ -0,0 +1,20 @@ +{ + "DESCRIPTION": "Получить информацию об IP адресе!", + "USAGE": "{{prefix}}whois (IP)", + "EXAMPLES": "{{prefix}}whois 1.1.1.1", + "NO_IP": "Укажите IP адрес!", + "ERROR": "Произошла ошибка при получении данных об {{ip}}", + "INFO_ABOUT": "Информация об {{ip}}", + "COUNTRY": "Страна", + "REGION": "Регион", + "CITY": "Город", + "ZIP": "Почтовый индекс", + "TIMEZONE": "Часовой пояс", + "CONTINENT": "Континент", + "CURRENCY": "Валюта", + "ISP": "Провайдер", + "INFO": "Дополнительная информация", + "PROXY": "Этот IP принадлежит Tor, VPN или прокси!", + "MOBILE": "Этот IP используется для мобильных данных!", + "HOSTING": "Это IP принадлежит хостингу или датацентру!" +} \ No newline at end of file diff --git a/package.json b/package.json index 4d2f254b..9c44e103 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jaba", - "version": "3.4.1", + "version": "3.4.2", "description": "A very complete Discord bot (more than 100 commands) that uses the Discord.js", "main": "index.js", "private": true,