Merge pull request #278 from lbryio/Coolguy3289-patch-1

Add post check for channel postings
This commit is contained in:
Ralph 2019-10-18 00:49:12 -04:00 committed by GitHub
commit 8a8c4ffe3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,111 +5,127 @@ 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(); let releaseType = suffix.toLowerCase();
let releaseTypeName = releaseType.charAt(0).toUpperCase() + releaseType.slice(1); let releaseTypePost = null;
if (releaseType !== 'android' && releaseType !== 'desktop') { if (releaseType === 'android post' || 'desktop post') {
msg.reply('Please specify which release notes to display: "desktop" or "android".'); releaseTypePost = releaseType.charAt(0).toUpperCase() + releaseType.slice(1,7);
return; console.log('Post message detected ' + releaseTypePost);
} }
const headers = { let releaseTypeName = releaseType.charAt(0).toUpperCase() + releaseType.slice(1);
'Content-Type': 'application/json', if (releaseType !== 'android' && releaseType !== 'desktop' && releaseType !== 'android post' && releaseType !== 'desktop post') {
'User-Agent': 'Super Agent/0.0.1' msg.reply('Please specify which release notes to display: "desktop" or "android".');
}; return;
// Configure the request }
const options = { const headers = {
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseType + '/releases/latest', 'Content-Type': 'application/json',
method: 'GET', 'User-Agent': 'Super Agent/0.0.1'
headers: headers
};
// Start the request
let message;
request(options, function(error, response, body) {
let json = JSON.parse(body);
let releasemessage = json.body;
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 ' + 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 (inPrivate(msg)) { // Configure the request
msg.channel.send(message); let options;
return; if (releaseTypePost !== null) {
} options = {
if (hasPerms(msg) && suffix === 'post') { url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypePost + '/releases/latest',
bot.channels.get(ChannelID).send(message); method: 'GET',
headers: headers
};
} else { } else {
msg.channel.send(msg.author + ' Release notes sent via DM'); console.log('Release being sent: ' + releaseTypeName);
msg.author.send(message); options = {
url: 'https://api.github.com/repos/lbryio/lbry-' + releaseTypeName + '/releases/latest',
method: 'GET',
headers: headers
};
} }
} else { // Start the request
message = releasemessage let message;
.trim() request(options, function(error, response, body) {
.split('###') let json = JSON.parse(body);
.filter(function(n) { let releasemessage = json.body;
return n !== ''; console.log(releasemessage);
}); let releasename = json.name || json.tag_name;
let embedmessages = []; let releasedate = json.published_at;
for (let i = 0; i < message.length; i++) { let releaseurl = json.html_url;
if (message[i]) { if (releasemessage.length < 2000) {
embedmessages.push({ message = {
embed: { embed: {
description: message[i], title: '*Download ' + releasename + ' here!*',
url: releaseurl, description: releasemessage.replace('###', ''),
color: 7976557, url: releaseurl,
timestamp: releasedate, color: 7976557,
author: { timestamp: releasedate,
name: 'LBRY ' + releaseTypeName + ' release notes for ' + releasename, author: {
icon_url: 'https://spee.ch/b/Github-PNG-Image.png' 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', footer: {
text: 'LBRY ' + releaseTypeName + ' updated ' 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);
if (i === 0) embedmessages[i].embed.title = '*Download ' + releasename + ' here!*'; } else {
} msg.channel.send(msg.author + ' Release notes sent via DM');
} msg.author.send(message);
if (inPrivate(msg)) { }
for (let i = 0; i < embedmessages.length; i++) { } else {
msg.channel.send(embedmessages[i]); message = releasemessage
} .trim()
return; .split('###')
} .filter(function(n) {
if (hasPerms(msg) && suffix === 'post') { return n !== '';
for (let i = 0; i < embedmessages.length; i++) { });
bot.channels.get(ChannelID).send(embedmessages[i]); let embedmessages = [];
} for (let i = 0; i < message.length; i++) {
} else { if (message[i]) {
msg.channel.send(msg.author + ' Release notes sent via DM'); embedmessages.push({
for (let i = 0; i < embedmessages.length; i++) { embed: {
msg.author.send(embedmessages[i]); 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]);
}
}
}
});
}
}; };