mirror of
https://github.com/LBRYFoundation/lbry-wunderbot.git
synced 2025-08-23 17:47:27 +00:00
Merge pull request #287 from lbryio/Coolguy3289-changes
Changes and Fixes
This commit is contained in:
commit
6a38806813
7 changed files with 265 additions and 281 deletions
|
@ -15,11 +15,11 @@ function init(discordBot_) {
|
||||||
if (discordBot) {
|
if (discordBot) {
|
||||||
throw new Error('init was already called once');
|
throw new Error('init was already called once');
|
||||||
}
|
}
|
||||||
discordBot = discordBot_;
|
discordBot = discordBot_;
|
||||||
console.log('Activating claimbot');
|
console.log('Activating claimbot');
|
||||||
discordBot.channels.get(channels[0]).send('activating claimbot');
|
discordBot.channels.get(channels[0]).send('activating claimbot');
|
||||||
setInterval(announceClaims, 60 * 1000);
|
setInterval(announceClaims, 60 * 1000);
|
||||||
announceClaims();
|
announceClaims();
|
||||||
}
|
}
|
||||||
|
|
||||||
function announceClaims() {
|
function announceClaims() {
|
||||||
|
|
|
@ -5,127 +5,132 @@ let inPrivate = require('../helpers.js').inPrivate;
|
||||||
let ChannelID = config.get('gitrelease').channel;
|
let ChannelID = config.get('gitrelease').channel;
|
||||||
|
|
||||||
exports.commands = [
|
exports.commands = [
|
||||||
'releasenotes' // command that is in this file, every command needs it own export as shown below
|
'releasenotes' // command that is in this file, every command needs it own export as shown below
|
||||||
];
|
];
|
||||||
|
|
||||||
exports.releasenotes = {
|
exports.releasenotes = {
|
||||||
usage: '<desktop/android>',
|
usage: '<desktop/android>',
|
||||||
description: 'gets current release notes from GitHub, for either Desktop or Android',
|
description: 'gets current release notes from GitHub, for either Desktop or Android',
|
||||||
process: function(bot, msg, suffix) {
|
process: function(bot, msg, suffix) {
|
||||||
let releaseType = suffix.toLowerCase();
|
console.log('Suffix is: ' + suffix);
|
||||||
let releaseTypePost = null;
|
let releaseType = suffix.toLowerCase();
|
||||||
if (releaseType === 'android post' || 'desktop post') {
|
console.log('Release Type is ' + releaseType);
|
||||||
releaseTypePost = releaseType.charAt(0).toUpperCase() + releaseType.slice(1,7);
|
let releaseTypePost = null;
|
||||||
console.log('Post message detected ' + releaseTypePost);
|
|
||||||
}
|
if (releaseType === 'android post' || releaseType === 'desktop post') {
|
||||||
let releaseTypeName = releaseType.charAt(0).toUpperCase() + releaseType.slice(1);
|
releaseTypePost = releaseType.charAt(0).toUpperCase() + releaseType.slice(1, 7);
|
||||||
if (releaseType !== 'android' && releaseType !== 'desktop' && releaseType !== 'android post' && releaseType !== 'desktop post') {
|
console.log('ReleaseType is ' + releaseType);
|
||||||
msg.reply('Please specify which release notes to display: "desktop" or "android".');
|
console.log('ReleaseTypePost is ' + releaseTypePost);
|
||||||
return;
|
console.log('Post message detected ' + releaseTypePost);
|
||||||
}
|
|
||||||
const headers = {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'User-Agent': 'Super Agent/0.0.1'
|
|
||||||
};
|
|
||||||
// Configure the request
|
|
||||||
let options;
|
|
||||||
if (releaseTypePost !== null) {
|
|
||||||
options = {
|
|
||||||
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypePost + '/releases/latest',
|
|
||||||
method: 'GET',
|
|
||||||
headers: headers
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
console.log('Release being sent: ' + releaseTypeName);
|
|
||||||
options = {
|
|
||||||
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypeName + '/releases/latest',
|
|
||||||
method: 'GET',
|
|
||||||
headers: headers
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// Start the request
|
|
||||||
let message;
|
|
||||||
request(options, function(error, response, body) {
|
|
||||||
let json = JSON.parse(body);
|
|
||||||
let releasemessage = json.body;
|
|
||||||
console.log(releasemessage);
|
|
||||||
let releasename = json.name || json.tag_name;
|
|
||||||
let releasedate = json.published_at;
|
|
||||||
let releaseurl = json.html_url;
|
|
||||||
if (releasemessage.length < 2000) {
|
|
||||||
message = {
|
|
||||||
embed: {
|
|
||||||
title: '*Download ' + releasename + ' here!*',
|
|
||||||
description: releasemessage.replace('###', ''),
|
|
||||||
url: releaseurl,
|
|
||||||
color: 7976557,
|
|
||||||
timestamp: releasedate,
|
|
||||||
author: {
|
|
||||||
name: 'LBRY ' + releaseType + ' release notes for ' + releasename,
|
|
||||||
icon_url: 'https://spee.ch/b/Github-PNG-Image.png'
|
|
||||||
},
|
|
||||||
footer: {
|
|
||||||
icon_url: 'https://spee.ch/2/pinkylbryheart.png',
|
|
||||||
text: 'LBRY ' + releaseType + ' updated '
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (inPrivate(msg)) {
|
|
||||||
msg.channel.send(message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (hasPerms(msg) && suffix === 'android post' || 'desktop post') {
|
|
||||||
bot.channels.get(ChannelID).send(message);
|
|
||||||
} else {
|
|
||||||
msg.channel.send(msg.author + ' Release notes sent via DM');
|
|
||||||
msg.author.send(message);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
message = releasemessage
|
|
||||||
.trim()
|
|
||||||
.split('###')
|
|
||||||
.filter(function(n) {
|
|
||||||
return n !== '';
|
|
||||||
});
|
|
||||||
let embedmessages = [];
|
|
||||||
for (let i = 0; i < message.length; i++) {
|
|
||||||
if (message[i]) {
|
|
||||||
embedmessages.push({
|
|
||||||
embed: {
|
|
||||||
description: message[i],
|
|
||||||
url: releaseurl,
|
|
||||||
color: 7976557,
|
|
||||||
timestamp: releasedate,
|
|
||||||
author: {
|
|
||||||
name: 'LBRY ' + releaseTypeName + ' release notes for ' + releasename,
|
|
||||||
icon_url: 'https://spee.ch/b/Github-PNG-Image.png'
|
|
||||||
},
|
|
||||||
footer: {
|
|
||||||
icon_url: 'https://spee.ch/2/pinkylbryheart.png',
|
|
||||||
text: 'LBRY ' + releaseTypeName + ' updated '
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if (i === 0) embedmessages[i].embed.title = '*Download ' + releasename + ' here!*';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (inPrivate(msg)) {
|
|
||||||
for (let i = 0; i < embedmessages.length; i++) {
|
|
||||||
msg.channel.send(embedmessages[i]);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (hasPerms(msg) && suffix === 'android post' || 'desktop post') {
|
|
||||||
for (let i = 0; i < embedmessages.length; i++) {
|
|
||||||
bot.channels.get(ChannelID).send(embedmessages[i]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
msg.channel.send(msg.author + ' Release notes sent via DM');
|
|
||||||
for (let i = 0; i < embedmessages.length; i++) {
|
|
||||||
msg.author.send(embedmessages[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
let releaseTypeName = releaseType.charAt(0).toUpperCase() + releaseType.slice(1);
|
||||||
|
if (releaseType !== 'android' && releaseType !== 'desktop' && releaseType !== 'android post' && releaseType !== 'desktop post') {
|
||||||
|
msg.reply('Please specify which release notes to display: "desktop" or "android".');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const headers = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'User-Agent': 'Super Agent/0.0.1'
|
||||||
|
};
|
||||||
|
// Configure the request
|
||||||
|
let options;
|
||||||
|
if (releaseTypePost !== null) {
|
||||||
|
options = {
|
||||||
|
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypePost + '/releases/latest',
|
||||||
|
method: 'GET',
|
||||||
|
headers: headers
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
console.log('Release being sent: ' + releaseTypeName);
|
||||||
|
options = {
|
||||||
|
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypeName + '/releases/latest',
|
||||||
|
method: 'GET',
|
||||||
|
headers: headers
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Start the request
|
||||||
|
let message;
|
||||||
|
request(options, function(error, response, body) {
|
||||||
|
let json = JSON.parse(body);
|
||||||
|
let releasemessage = json.body;
|
||||||
|
console.log(releasemessage);
|
||||||
|
let releasename = json.name || json.tag_name;
|
||||||
|
let releasedate = json.published_at;
|
||||||
|
let releaseurl = json.html_url;
|
||||||
|
if (releasemessage.length < 2000) {
|
||||||
|
message = {
|
||||||
|
embed: {
|
||||||
|
title: '*Download ' + releasename + ' here!*',
|
||||||
|
description: releasemessage.replace('###', ''),
|
||||||
|
url: releaseurl,
|
||||||
|
color: 7976557,
|
||||||
|
timestamp: releasedate,
|
||||||
|
author: {
|
||||||
|
name: 'LBRY ' + releaseType + ' release notes for ' + releasename,
|
||||||
|
icon_url: 'https://spee.ch/b/Github-PNG-Image.png'
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
icon_url: 'https://spee.ch/2/pinkylbryheart.png',
|
||||||
|
text: 'LBRY ' + releaseType + ' updated '
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (inPrivate(msg)) {
|
||||||
|
msg.channel.send(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((hasPerms(msg) && suffix === 'android post') || (hasPerms(msg) && suffix === 'desktop post')) {
|
||||||
|
bot.channels.get(ChannelID).send(message);
|
||||||
|
} else {
|
||||||
|
msg.channel.send(msg.author + ' Release notes sent via DM');
|
||||||
|
msg.author.send(message);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message = releasemessage
|
||||||
|
.trim()
|
||||||
|
.split('###')
|
||||||
|
.filter(function(n) {
|
||||||
|
return n !== '';
|
||||||
|
});
|
||||||
|
let embedmessages = [];
|
||||||
|
for (let i = 0; i < message.length; i++) {
|
||||||
|
if (message[i]) {
|
||||||
|
embedmessages.push({
|
||||||
|
embed: {
|
||||||
|
description: message[i],
|
||||||
|
url: releaseurl,
|
||||||
|
color: 7976557,
|
||||||
|
timestamp: releasedate,
|
||||||
|
author: {
|
||||||
|
name: 'LBRY ' + releaseTypeName + ' release notes for ' + releasename,
|
||||||
|
icon_url: 'https://spee.ch/b/Github-PNG-Image.png'
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
icon_url: 'https://spee.ch/2/pinkylbryheart.png',
|
||||||
|
text: 'LBRY ' + releaseTypeName + ' updated '
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (i === 0) embedmessages[i].embed.title = '*Download ' + releasename + ' here!*';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (inPrivate(msg)) {
|
||||||
|
for (let i = 0; i < embedmessages.length; i++) {
|
||||||
|
msg.channel.send(embedmessages[i]);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ((hasPerms(msg) && suffix === 'android post') || 'desktop post') {
|
||||||
|
for (let i = 0; i < embedmessages.length; i++) {
|
||||||
|
bot.channels.get(ChannelID).send(embedmessages[i]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
msg.channel.send(msg.author + ' Release notes sent via DM');
|
||||||
|
for (let i = 0; i < embedmessages.length; i++) {
|
||||||
|
msg.author.send(embedmessages[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -33,7 +33,7 @@ exports.addrole = {
|
||||||
// Checks that the allowed roles and base role against the matched role's name, since this eliminates case sensitivity issues
|
// Checks that the allowed roles and base role against the matched role's name, since this eliminates case sensitivity issues
|
||||||
if (!rolelist.allowedroles.includes(newrole.name) && !rolelist.baserole.includes(newrole.name)) return send("That role isn't one you can add yourself to! Type " + rolecmd + ' command to find out which ones are allowed.');
|
if (!rolelist.allowedroles.includes(newrole.name) && !rolelist.baserole.includes(newrole.name)) return send("That role isn't one you can add yourself to! Type " + rolecmd + ' command to find out which ones are allowed.');
|
||||||
// Use the matched name to check against the member's existing roles
|
// Use the matched name to check against the member's existing roles
|
||||||
if (msg.member.roles.find(item => item.name === newrole.name)) return send('It seems you already have the ' + newrole.name + 'role');
|
if (msg.member.roles.find(item => item.name === newrole.name)) return send('It seems you already have the ' + newrole.name + ' role');
|
||||||
|
|
||||||
// Assuming all these factors succeed, add the role
|
// Assuming all these factors succeed, add the role
|
||||||
msg.member.addRole(newrole).then(send(msg.member + ' has been added to the ' + newrole.name + ' role!'));
|
msg.member.addRole(newrole).then(send(msg.member + ' has been added to the ' + newrole.name + ' role!'));
|
||||||
|
@ -67,7 +67,7 @@ exports.delrole = {
|
||||||
// Checks that the allowed roles against the matched role's name, since this eliminates case sensitivity issues
|
// Checks that the allowed roles against the matched role's name, since this eliminates case sensitivity issues
|
||||||
if (!rolelist.allowedroles.includes(oldrole.name)) return send("That role isn't one you can remove yourself! If you need it removed, please ask a moderator!");
|
if (!rolelist.allowedroles.includes(oldrole.name)) return send("That role isn't one you can remove yourself! If you need it removed, please ask a moderator!");
|
||||||
// Use the matched name to check against the member's existing roles
|
// Use the matched name to check against the member's existing roles
|
||||||
if (!msg.member.roles.find(item => item.name === oldrole.name)) return send("It seems you don't actually have the " + oldrole.name + 'role! Mission accomplished!');
|
if (!msg.member.roles.find(item => item.name === oldrole.name)) return send("It seems you don't actually have the " + oldrole.name + ' role! Mission accomplished!');
|
||||||
|
|
||||||
// Assuming all these factors succeed, add the role
|
// Assuming all these factors succeed, add the role
|
||||||
msg.member.removeRole(oldrole).then(send(msg.member + ' has been removed from the ' + oldrole.name + ' role!'));
|
msg.member.removeRole(oldrole).then(send(msg.member + ' has been removed from the ' + oldrole.name + ' role!'));
|
||||||
|
@ -104,7 +104,7 @@ exports.roles = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'NOTE',
|
name: 'NOTE',
|
||||||
value: 'The above roles are case sensitive. The LBRYian role will be auto-added when you chose any of the available roles',
|
value: 'The LBRY-Curious role will be auto-added when you chose any of the available roles',
|
||||||
inline: false
|
inline: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -1,52 +1,52 @@
|
||||||
let needle = require('needle');
|
let needle = require('needle');
|
||||||
let statsurl = 'https://www.coingecko.com/en/coins/lbry-credits';
|
let statsurl = 'https://www.coingecko.com/en/coins/lbry-credits';
|
||||||
exports.commands = [
|
exports.commands = [
|
||||||
'stats' // command that is in this file, every command needs it own export as shown below
|
'stats' // command that is in this file, every command needs it own export as shown below
|
||||||
];
|
];
|
||||||
|
|
||||||
exports.stats = {
|
exports.stats = {
|
||||||
usage: '',
|
usage: '',
|
||||||
description: 'Displays list of Current Market Statistics',
|
description: 'Displays list of Current Market Statistics',
|
||||||
process: function(bot, msg) {
|
process: function(bot, msg) {
|
||||||
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false&price_change_percentage=24h%2C1h%2C7d', function(error, response) {
|
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=btc&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false&price_change_percentage=24h%2C1h%2C7d', function(error, response) {
|
||||||
if (error || response.statusCode !== 200) {
|
if (error || response.statusCode !== 200) {
|
||||||
msg.channel.send('coingecko API is not available');
|
msg.channel.send('coingecko API is not available');
|
||||||
} else {
|
} else {
|
||||||
// console.log(response);
|
// console.log(response);
|
||||||
// console.log(response.body[0]);
|
// console.log(response.body[0]);
|
||||||
let data = response.body[0];
|
let data = response.body[0];
|
||||||
let rank = data.market_cap_rank;
|
let rank = data.market_cap_rank;
|
||||||
let price_btc = Number(data.current_price);
|
let price_btc = Number(data.current_price);
|
||||||
let circulating_supply = Number(data.circulating_supply);
|
let circulating_supply = Number(data.circulating_supply);
|
||||||
let total_supply = Number(data.total_supply);
|
let total_supply = Number(data.total_supply);
|
||||||
let percent_change_1h = Number(data.price_change_percentage_1h_in_currency);
|
let percent_change_1h = Number(data.price_change_percentage_1h_in_currency);
|
||||||
let percent_change_24h = Number(data.price_change_percentage_24h_in_currency);
|
let percent_change_24h = Number(data.price_change_percentage_24h_in_currency);
|
||||||
let dt = new Date();
|
let dt = new Date();
|
||||||
let timestamp = dt.toUTCString();
|
let timestamp = dt.toUTCString();
|
||||||
let hr_indicator = (percent_change_1h < 0) ? ':thumbsdown:' : ':thumbsup:';
|
let hr_indicator = percent_change_1h < 0 ? ':thumbsdown:' : ':thumbsup:';
|
||||||
let day_indicator = (percent_change_24h < 0) ? ':thumbsdown:' : ':thumbsup:';
|
let day_indicator = percent_change_24h < 0 ? ':thumbsdown:' : ':thumbsup:';
|
||||||
|
|
||||||
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=gbp&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function (error, response) {
|
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=gbp&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function(error, response) {
|
||||||
if (error || response.statusCode !== 200) {
|
if (error || response.statusCode !== 200) {
|
||||||
msg.channel.send('coingecko API is not available');
|
msg.channel.send('coingecko API is not available');
|
||||||
} else {
|
} else {
|
||||||
data = response.body[0];
|
data = response.body[0];
|
||||||
let price_gbp = Number(data.current_price);
|
let price_gbp = Number(data.current_price);
|
||||||
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=eur&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function (error, response) {
|
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=eur&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function(error, response) {
|
||||||
if (error || response.statusCode !== 200) {
|
if (error || response.statusCode !== 200) {
|
||||||
msg.channel.send('coingecko API is not available');
|
msg.channel.send('coingecko API is not available');
|
||||||
} else {
|
} else {
|
||||||
data = response.body[0];
|
data = response.body[0];
|
||||||
let price_eur = Number(data.current_price);
|
let price_eur = Number(data.current_price);
|
||||||
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function (error, response) {
|
needle.get('https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=lbry-credits&order=market_cap_desc&per_page=100&page=1&sparkline=false', function(error, response) {
|
||||||
if (error || response.statusCode !== 200) {
|
if (error || response.statusCode !== 200) {
|
||||||
msg.channel.send('coingecko API is not available');
|
msg.channel.send('coingecko API is not available');
|
||||||
} else {
|
} else {
|
||||||
data = response.body[0];
|
data = response.body[0];
|
||||||
let price_usd = Number(data.current_price);
|
let price_usd = Number(data.current_price);
|
||||||
let market_cap_usd = Number(data.market_cap);
|
let market_cap_usd = Number(data.market_cap);
|
||||||
let volume24_usd = Number(data.total_volume);
|
let volume24_usd = Number(data.total_volume);
|
||||||
let description = `**Rank: [${rank}](${statsurl})**
|
let description = `**Rank: [${rank}](${statsurl})**
|
||||||
**Data**
|
**Data**
|
||||||
Market Cap: [$${numberWithCommas(market_cap_usd)}](${statsurl})
|
Market Cap: [$${numberWithCommas(market_cap_usd)}](${statsurl})
|
||||||
Total Supply: [${numberWithCommas(total_supply)} LBC](${statsurl})
|
Total Supply: [${numberWithCommas(total_supply)} LBC](${statsurl})
|
||||||
|
@ -63,47 +63,46 @@ exports.stats = {
|
||||||
1 Hour: [${percent_change_1h.toFixed(2)}%](${statsurl}) ${hr_indicator}
|
1 Hour: [${percent_change_1h.toFixed(2)}%](${statsurl}) ${hr_indicator}
|
||||||
|
|
||||||
1 Day: [${percent_change_24h.toFixed(2)}%](${statsurl}) ${day_indicator}`;
|
1 Day: [${percent_change_24h.toFixed(2)}%](${statsurl}) ${day_indicator}`;
|
||||||
const embed = {
|
const embed = {
|
||||||
description: description,
|
description: description,
|
||||||
color: 7976557,
|
color: 7976557,
|
||||||
footer: {
|
footer: {
|
||||||
text: 'Last Updated: ' + timestamp
|
text: 'Last Updated: ' + timestamp
|
||||||
},
|
},
|
||||||
author: {
|
author: {
|
||||||
name: 'Coin Gecko Stats (LBC)',
|
name: 'Coin Gecko Stats (LBC)',
|
||||||
url: statsurl,
|
url: statsurl,
|
||||||
icon_url: 'https://spee.ch/2/pinkylbryheart.png'
|
icon_url: 'https://spee.ch/2/pinkylbryheart.png'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
msg.channel.send({embed});
|
msg.channel.send({ embed });
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
function parse_obj(obj) {
|
function parse_obj(obj) {
|
||||||
let array = [];
|
let array = [];
|
||||||
let prop;
|
let prop;
|
||||||
for (prop in obj) {
|
for (prop in obj) {
|
||||||
if (obj.hasOwnProperty(prop)) {
|
if (obj.hasOwnProperty(prop)) {
|
||||||
let key = parseInt(prop, 10);
|
let key = parseInt(prop, 10);
|
||||||
let value = obj[prop];
|
let value = obj[prop];
|
||||||
if (typeof value == 'object') {
|
if (typeof value == 'object') {
|
||||||
value = parse_obj(value);
|
value = parse_obj(value);
|
||||||
}
|
}
|
||||||
array[key] = value;
|
array[key] = value;
|
||||||
}
|
|
||||||
}
|
|
||||||
return array;
|
|
||||||
}
|
|
||||||
|
|
||||||
function numberWithCommas(x) {
|
|
||||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
}
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function numberWithCommas(x) {
|
||||||
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"!whitepaper": {
|
"!whitepaper": {
|
||||||
"usage": "",
|
"usage": "",
|
||||||
"description": "LBRY White Paper",
|
"description": "LBRY White Paper",
|
||||||
"operation": "send",
|
"operation": "send",
|
||||||
|
|
108
package-lock.json
generated
108
package-lock.json
generated
|
@ -292,7 +292,7 @@
|
||||||
},
|
},
|
||||||
"callsites": {
|
"callsites": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
|
"resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
|
||||||
"integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
|
"integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
@ -436,9 +436,9 @@
|
||||||
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
|
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"version": "3.2.3",
|
"version": "3.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/config/-/config-3.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/config/-/config-3.2.4.tgz",
|
||||||
"integrity": "sha512-pditxQzO+SkKX/2gs99YnUGEjmBVkTj2o/hGOgC0oYEU7QgLnVVDYmcSL6HiGels/8QtFJpFzi5iKYv4D0dalg==",
|
"integrity": "sha512-H1XIGfnU1EAkfjSLn9ZvYDRx9lOezDViuzLDgiJ/lMeqjYe3q6iQfpcLt2NInckJgpAeekbNhQkmnnbdEDs9rw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"json5": "^1.0.1"
|
"json5": "^1.0.1"
|
||||||
}
|
}
|
||||||
|
@ -593,7 +593,7 @@
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
|
"resolved": "http://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
|
||||||
"integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
|
"integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
|
||||||
"requires": {
|
"requires": {
|
||||||
"env-variable": "0.0.x"
|
"env-variable": "0.0.x"
|
||||||
|
@ -731,7 +731,7 @@
|
||||||
},
|
},
|
||||||
"fecha": {
|
"fecha": {
|
||||||
"version": "2.3.3",
|
"version": "2.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
|
"resolved": "http://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
|
||||||
"integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
|
"integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
|
||||||
},
|
},
|
||||||
"file-exists": {
|
"file-exists": {
|
||||||
|
@ -879,20 +879,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
"version": "3.0.8",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/husky/-/husky-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/husky/-/husky-3.1.0.tgz",
|
||||||
"integrity": "sha512-HFOsgcyrX3qe/rBuqyTt+P4Gxn5P0seJmr215LAZ/vnwK3jWB3r0ck7swbzGRUbufCf9w/lgHPVbF/YXQALgfQ==",
|
"integrity": "sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"chalk": "^2.4.2",
|
"chalk": "^2.4.2",
|
||||||
|
"ci-info": "^2.0.0",
|
||||||
"cosmiconfig": "^5.2.1",
|
"cosmiconfig": "^5.2.1",
|
||||||
"execa": "^1.0.0",
|
"execa": "^1.0.0",
|
||||||
"get-stdin": "^7.0.0",
|
"get-stdin": "^7.0.0",
|
||||||
"is-ci": "^2.0.0",
|
|
||||||
"opencollective-postinstall": "^2.0.2",
|
"opencollective-postinstall": "^2.0.2",
|
||||||
"pkg-dir": "^4.2.0",
|
"pkg-dir": "^4.2.0",
|
||||||
"please-upgrade-node": "^3.2.0",
|
"please-upgrade-node": "^3.2.0",
|
||||||
"read-pkg": "^5.1.1",
|
"read-pkg": "^5.2.0",
|
||||||
"run-node": "^1.0.0",
|
"run-node": "^1.0.0",
|
||||||
"slash": "^3.0.0"
|
"slash": "^3.0.0"
|
||||||
},
|
},
|
||||||
|
@ -921,14 +921,6 @@
|
||||||
"requires": {
|
"requires": {
|
||||||
"caller-path": "^2.0.0",
|
"caller-path": "^2.0.0",
|
||||||
"resolve-from": "^3.0.0"
|
"resolve-from": "^3.0.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"resolve-from": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
|
|
||||||
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inherits": {
|
"inherits": {
|
||||||
|
@ -977,15 +969,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||||
},
|
},
|
||||||
"is-ci": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"ci-info": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-data-descriptor": {
|
"is-data-descriptor": {
|
||||||
"version": "0.1.4",
|
"version": "0.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
||||||
|
@ -1298,9 +1281,9 @@
|
||||||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
||||||
},
|
},
|
||||||
"mongodb": {
|
"mongodb": {
|
||||||
"version": "3.4.0",
|
"version": "3.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.4.1.tgz",
|
||||||
"integrity": "sha512-W90jm/n8F0Edm47ljkVRK9l8qGW9g8T9ZSiZWRiUP58wLhsCJCeN/JxdpVnH0CUwwAw2hITUcCo9x58udpX2Uw==",
|
"integrity": "sha512-juqt5/Z42J4DcE7tG7UdVaTKmUC6zinF4yioPfpeOSNBieWSK6qCY+0tfGQcHLKrauWPDdMZVROHJOa8q2pWsA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bson": "^1.1.1",
|
"bson": "^1.1.1",
|
||||||
"require_optional": "^1.0.1",
|
"require_optional": "^1.0.1",
|
||||||
|
@ -1309,13 +1292,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mongoose": {
|
"mongoose": {
|
||||||
"version": "5.8.1",
|
"version": "5.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.8.3.tgz",
|
||||||
"integrity": "sha512-8Cffl52cMK2iBlpLipoRKW/RdrhkxvVzXsy+xVsfbKHQBCWkFiS0T0jU4smYzomTMP4gW0sReJoRA7Gu/7VVgQ==",
|
"integrity": "sha512-WnO4WJ8eZ5Hgwp11Gl2dOxkWYJe8xV7oCqDV3ZbTA7j2q1prc0lPWAd9ZK5R6OhQlp55CleEZXqXUPrZnjSEDQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bson": "~1.1.1",
|
"bson": "~1.1.1",
|
||||||
"kareem": "2.3.1",
|
"kareem": "2.3.1",
|
||||||
"mongodb": "3.3.5",
|
"mongodb": "3.4.1",
|
||||||
"mongoose-legacy-pluralize": "1.0.2",
|
"mongoose-legacy-pluralize": "1.0.2",
|
||||||
"mpath": "0.6.0",
|
"mpath": "0.6.0",
|
||||||
"mquery": "3.2.2",
|
"mquery": "3.2.2",
|
||||||
|
@ -1326,17 +1309,6 @@
|
||||||
"sliced": "1.0.1"
|
"sliced": "1.0.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"mongodb": {
|
|
||||||
"version": "3.3.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.3.5.tgz",
|
|
||||||
"integrity": "sha512-6NAv5gTFdwRyVfCz+O+KDszvjpyxmZw+VlmqmqKR2GmpkeKrKFRv/ZslgTtZba2dc9JYixIf99T5Gih7TIWv7Q==",
|
|
||||||
"requires": {
|
|
||||||
"bson": "^1.1.1",
|
|
||||||
"require_optional": "^1.0.1",
|
|
||||||
"safe-buffer": "^5.1.2",
|
|
||||||
"saslprep": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ms": {
|
"ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
|
@ -1619,9 +1591,9 @@
|
||||||
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
|
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"version": "1.18.2",
|
"version": "1.19.1",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
|
||||||
"integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==",
|
"integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"prism-media": {
|
"prism-media": {
|
||||||
|
@ -1766,22 +1738,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request-promise": {
|
"request-promise": {
|
||||||
"version": "4.2.4",
|
"version": "4.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz",
|
||||||
"integrity": "sha512-8wgMrvE546PzbR5WbYxUQogUnUDfM0S7QIFZMID+J73vdFARkFy+HElj4T+MWYhpXwlLp0EQ8Zoj8xUA0he4Vg==",
|
"integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bluebird": "^3.5.0",
|
"bluebird": "^3.5.0",
|
||||||
"request-promise-core": "1.1.2",
|
"request-promise-core": "1.1.3",
|
||||||
"stealthy-require": "^1.1.1",
|
"stealthy-require": "^1.1.1",
|
||||||
"tough-cookie": "^2.3.3"
|
"tough-cookie": "^2.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request-promise-core": {
|
"request-promise-core": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
|
||||||
"integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
|
"integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash": "^4.17.11"
|
"lodash": "^4.17.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require_optional": {
|
"require_optional": {
|
||||||
|
@ -1791,21 +1763,29 @@
|
||||||
"requires": {
|
"requires": {
|
||||||
"resolve-from": "^2.0.0",
|
"resolve-from": "^2.0.0",
|
||||||
"semver": "^5.1.0"
|
"semver": "^5.1.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"resolve-from": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.12.0",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz",
|
||||||
"integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
|
"integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-parse": "^1.0.6"
|
"path-parse": "^1.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"resolve-from": {
|
"resolve-from": {
|
||||||
"version": "2.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
|
||||||
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
|
"integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"resolve-url": {
|
"resolve-url": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
|
@ -2198,7 +2178,7 @@
|
||||||
},
|
},
|
||||||
"strip-eof": {
|
"strip-eof": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
"resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
|
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
|
||||||
},
|
},
|
||||||
"strip-json-comments": {
|
"strip-json-comments": {
|
||||||
|
|
14
package.json
14
package.json
|
@ -4,21 +4,21 @@
|
||||||
"bitcoin": "^3.0.1",
|
"bitcoin": "^3.0.1",
|
||||||
"braces": "^2.3.1",
|
"braces": "^2.3.1",
|
||||||
"chrono-node": "^1.3.11",
|
"chrono-node": "^1.3.11",
|
||||||
"config": "^3.1.0",
|
"config": "^3.2.4",
|
||||||
"discord-irc": "^2.8.0",
|
"discord-irc": "^2.8.0",
|
||||||
"discord.js": "^11.5.1",
|
"discord.js": "^11.5.1",
|
||||||
"file-exists": "^5.0.1",
|
"file-exists": "^5.0.1",
|
||||||
"jsonfile": "^5.0.0",
|
"jsonfile": "^5.0.0",
|
||||||
"jsonpath": "^1.0.1",
|
"jsonpath": "^1.0.1",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"mongoose": "^5.7.5",
|
"mongodb": "^3.4.1",
|
||||||
|
"mongoose": "^5.8.3",
|
||||||
"needle": "^2.4.0",
|
"needle": "^2.4.0",
|
||||||
"numeral": "^2.0.6",
|
"numeral": "^2.0.6",
|
||||||
"request": "^2.88.0",
|
"request": "^2.88.0",
|
||||||
"request-promise": "^4.2.4",
|
"request-promise": "^4.2.5",
|
||||||
"sleep": "^6.1.0",
|
"sleep": "^6.1.0",
|
||||||
"wget": "^0.0.1",
|
"wget": "^0.0.1"
|
||||||
"mongodb": "latest"
|
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prettier": "prettier --write \"{bot,.}/**/*.{js,json}\" --single-quote --print-width 240",
|
"prettier": "prettier --write \"{bot,.}/**/*.{js,json}\" --single-quote --print-width 240",
|
||||||
|
@ -26,8 +26,8 @@
|
||||||
"test": "prettier --write \"{bot,.}/**/*.{js,json}\" --single-quote --print-width 240 --list-different && npm audit && npm i"
|
"test": "prettier --write \"{bot,.}/**/*.{js,json}\" --single-quote --print-width 240 --list-different && npm audit && npm i"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"husky": "^3.0.7",
|
"husky": "^3.1.0",
|
||||||
"prettier": "^1.18.2"
|
"prettier": "^1.19.1"
|
||||||
},
|
},
|
||||||
"name": "wunderbot-discord",
|
"name": "wunderbot-discord",
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
|
|
Loading…
Add table
Reference in a new issue