Browse Source

Merge pull request #1 from ADawesomeguy/development

Remove many, many excess lines of code
pull/4/head v2.2.0
Abheek 4 years ago
committed by GitHub
parent
commit
fd74410d6c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 382
      bot/awesomescibo.mjs
  2. 4
      bot/package-lock.json

382
bot/awesomescibo.mjs

@ -47,7 +47,7 @@ client.on('message', async message => {
fs.writeFile('numhits.txt', hits.toString(), (error) => { if (error) { console.log(error); } }); fs.writeFile('numhits.txt', hits.toString(), (error) => { if (error) { console.log(error); } });
} }
if (message.content.toLowerCase() === ("do be helping")) { if (message.content.toLowerCase() === ("do be helping")) {
message.channel.send(new Discord.MessageEmbed().setTitle("Help").setDescription("`do be helping`: display this help message\n`do be roundgen html`: send a round to the channel\n`do be roundgen html dm`: dm a round to you\n`do be roundgen pdf`: send a pdf round to the channel\n`do be roundgen pdf dm`: dm a pdf round to you\n`do be scoring`: start a scoring session\n > `do be scoring (a/b)(4/10)`: add points to Team A or Team B\n > `do be scoring stop`: end scoring session and post final points\n`do be hits`: send the number of rounds generated\n`do be servers`: send the number of servers this bot is a part of\n`do be iss`: show the current location of the International Space Station\n`do be training`: send a quick practice problem (you **must** react to your answer, or the bot will yell at you)\nSource Code: https://github.com/ADawesomeguy/AwesomeSciBo")); message.channel.send(new Discord.MessageEmbed().setTitle("Help").setDescription("`do be helping`: display this help message\n`do be roundgen html`: send a round to the channel\n`do be roundgen html dm`: dm a round to you\n`do be roundgen pdf`: send a pdf round to the channel\n`do be roundgen pdf dm`: dm a pdf round to you\n`do be scoring`: start a scoring session\n > `do be scoring (a/b)(4/10)`: add points to Team A or Team B\n > `do be scoring stop`: end scoring session and post final points\n`do be hits`: send the number of rounds generated\n`do be servers`: send the number of servers this bot is a part of\n`do be iss`: show the current location of the International Space Station\n`do be training`: send a quick practice problem (you **must** react to your answer, or the bot will yell at you)\n > subject options: astro, phys, chem, math, bio, ess\nSource Code: https://github.com/ADawesomeguy/AwesomeSciBo (please star!)"));
} }
if (message.content.toLowerCase() === ("do be roundgen html dm")) { if (message.content.toLowerCase() === ("do be roundgen html dm")) {
@ -241,7 +241,8 @@ client.on('message', async message => {
)*/); )*/);
}); });
} }
if (message.content.toLowerCase() === "do be training") { if (message.content.startsWith("do be training")) {
if (message.content === "do be training") {
var author = message.author; var author = message.author;
fetch("https://scibowldb.com/api/questions/random") fetch("https://scibowldb.com/api/questions/random")
.then(response => response.json()) .then(response => response.json())
@ -308,150 +309,35 @@ client.on('message', async message => {
}) })
}) })
}) })
}
if (message.content.toLowerCase() === "do be training astronomy") {
var author = message.author;
fetch("https://moose.lcsrc.org/subjects/astronomy.json")
.then(response => response.json())
.then(data => {
var questionNum = Math.floor(Math.random() * data.length);
console.log(`index ${questionNum} is ${data[questionNum]}`)
let filter = m => m.author.id === message.author.id;
message.reply(data[questionNum].tossup_question).then(() => {
message.channel.awaitMessages(filter, {
max: 1,
time: 30000,
errors: ['time']
})
.then(message => {
message = message.first();
var score = 0;
if (fs.existsSync(`userScore/${message.author.id}`)) {
fs.readFile(`userScore/${message.author.id}`, 'utf8', function (err, data) {
score = Number(data);
if (err) {
console.log(err);
}
});
} else {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
var predicted = "unsure";
if (data[questionNum].tossup_format === "Multiple Choice") {
if (message.content.charAt(0).toLowerCase() === data[questionNum].tossup_answer.charAt(0).toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
} else {
if (message.content.toLowerCase() === data[questionNum].tossup_answer.toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
}
message.channel.send(`Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!`);
message.react('✅');
message.react('❌');
const filter = (reaction, user) => {
return ['❌', '✅'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 600000, errors: ['time'] })
.then(reaction => {
var reaction = reaction.first();
if (reaction.emoji.name === "❌") {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice try! Your score is now ${score}`);
} else {
score += 4;
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice job! Your score is now ${score}`);
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
})
.catch(collected => {
//message.channel.send("\n**REACTION TIMEOUT**");
})
})
.catch ((collected, error) => {
message.reply('\n**ANSWER TIMEOUT**');
})
})
})
}
if (message.content.toLowerCase() === "do be training ess") {
var author = message.author;
fetch("https://moose.lcsrc.org/subjects/ess.json")
.then(response => response.json())
.then(data => {
var questionNum = Math.floor(Math.random() * data.length);
console.log(`index ${questionNum} is ${data[questionNum]}`)
let filter = m => m.author.id === message.author.id;
message.reply(data[questionNum].tossup_question).then(() => {
message.channel.awaitMessages(filter, {
max: 1,
time: 30000,
errors: ['time']
})
.then(message => {
message = message.first();
var score = 0;
if (fs.existsSync(`userScore/${message.author.id}`)) {
fs.readFile(`userScore/${message.author.id}`, 'utf8', function (err, data) {
score = Number(data);
if (err) {
console.log(err);
}
});
} else {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
var predicted = "unsure";
if (data[questionNum].tossup_format === "Multiple Choice") {
if (message.content.charAt(0).toLowerCase() === data[questionNum].tossup_answer.charAt(0).toLowerCase()) {
predicted = "correct";
} else { } else {
predicted = "incorrect"; var subject = message.content.substring(15);
console.log("Subject is:", subject);
var subjectURL;
switch (subject) {
case 'astro':
subjectURL = `https://moose.lcsrc.org/subjects/astronomy.json`;
break;
case 'bio':
subjectURL = `https://moose.lcsrc.org/subjects/biology.json`;
break;
case 'ess':
subjectURL = `https://moose.lcsrc.org/subjects/ess.json`;
break;
case 'chem':
subjectURL = `https://moose.lcsrc.org/subjects/chemistry.json`;
break;
case 'phys':
subjectURL = `https://moose.lcsrc.org/subjects/physics.json`;
break;
case 'math':
subjectURL = `https://moose.lcsrc.org/subjects/math.json`;
break;
default:
subjectURL = `https://scibowldb.com/api/questions/random`;
break;
} }
} else {
if (message.content.toLowerCase() === data[questionNum].tossup_answer.toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
}
message.channel.send(`Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!`);
message.react('✅');
message.react('❌');
const filter = (reaction, user) => {
return ['❌', '✅'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 600000, errors: ['time'] })
.then(reaction => {
var reaction = reaction.first();
if (reaction.emoji.name === "❌") {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice try! Your score is now ${score}`);
} else {
score += 4;
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice job! Your score is now ${score}`);
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
})
.catch(collected => {
//message.channel.send("\n**REACTION TIMEOUT**");
})
})
.catch ((collected, error) => {
message.reply('\n**ANSWER TIMEOUT**');
})
})
})
}
if (message.content.toLowerCase() === "do be training physics") {
var author = message.author; var author = message.author;
fetch("https://moose.lcsrc.org/subjects/physics.json") fetch(subjectURL)
.then(response => response.json()) .then(response => response.json())
.then(data => { .then(data => {
var questionNum = Math.floor(Math.random() * data.length); var questionNum = Math.floor(Math.random() * data.length);
@ -519,217 +405,7 @@ client.on('message', async message => {
}) })
}) })
} }
if (message.content.toLowerCase() === "do be training chemistry") {
var author = message.author;
fetch("https://moose.lcsrc.org/subjects/chemistry.json")
.then(response => response.json())
.then(data => {
var questionNum = Math.floor(Math.random() * data.length);
console.log(`index ${questionNum} is ${data[questionNum]}`)
let filter = m => m.author.id === message.author.id;
message.reply(data[questionNum].tossup_question).then(() => {
message.channel.awaitMessages(filter, {
max: 1,
time: 30000,
errors: ['time']
})
.then(message => {
message = message.first();
var score = 0;
if (fs.existsSync(`userScore/${message.author.id}`)) {
fs.readFile(`userScore/${message.author.id}`, 'utf8', function (err, data) {
score = Number(data);
if (err) {
console.log(err);
}
});
} else {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
var predicted = "unsure";
if (data[questionNum].tossup_format === "Multiple Choice") {
if (message.content.charAt(0).toLowerCase() === data[questionNum].tossup_answer.charAt(0).toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
} else {
if (message.content.toLowerCase() === data[questionNum].tossup_answer.toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
}
message.channel.send(`Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!`);
message.react('✅');
message.react('❌');
const filter = (reaction, user) => {
return ['❌', '✅'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 600000, errors: ['time'] })
.then(reaction => {
var reaction = reaction.first();
if (reaction.emoji.name === "❌") {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice try! Your score is now ${score}`);
} else {
score += 4;
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice job! Your score is now ${score}`);
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
})
.catch(collected => {
//message.channel.send("\n**REACTION TIMEOUT**");
})
})
.catch ((collected, error) => {
message.reply('\n**ANSWER TIMEOUT**');
})
})
})
}
if (message.content.toLowerCase() === "do be training biology") {
var author = message.author;
fetch("https://moose.lcsrc.org/subjects/biology.json")
.then(response => response.json())
.then(data => {
var questionNum = Math.floor(Math.random() * data.length);
console.log(`index ${questionNum} is ${data[questionNum]}`)
let filter = m => m.author.id === message.author.id;
message.reply(data[questionNum].tossup_question).then(() => {
message.channel.awaitMessages(filter, {
max: 1,
time: 30000,
errors: ['time']
})
.then(message => {
message = message.first();
var score = 0;
if (fs.existsSync(`userScore/${message.author.id}`)) {
fs.readFile(`userScore/${message.author.id}`, 'utf8', function (err, data) {
score = Number(data);
if (err) {
console.log(err);
}
});
} else {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
var predicted = "unsure";
if (data[questionNum].tossup_format === "Multiple Choice") {
if (message.content.charAt(0).toLowerCase() === data[questionNum].tossup_answer.charAt(0).toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
} else {
if (message.content.toLowerCase() === data[questionNum].tossup_answer.toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
}
message.channel.send(`Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!`);
message.react('✅');
message.react('❌');
const filter = (reaction, user) => {
return ['❌', '✅'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 600000, errors: ['time'] })
.then(reaction => {
var reaction = reaction.first();
if (reaction.emoji.name === "❌") {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice try! Your score is now ${score}`);
} else {
score += 4;
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice job! Your score is now ${score}`);
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
})
.catch(collected => {
//message.channel.send("\n**REACTION TIMEOUT**");
})
})
.catch ((collected, error) => {
message.reply('\n**ANSWER TIMEOUT**');
})
})
})
}
if (message.content.toLowerCase() === "do be training math") {
var author = message.author;
fetch("https://moose.lcsrc.org/subjects/math.json")
.then(response => response.json())
.then(data => {
var questionNum = Math.floor(Math.random() * data.length);
console.log(`index ${questionNum} is ${data[questionNum]}`)
let filter = m => m.author.id === message.author.id;
message.reply(data[questionNum].tossup_question).then(() => {
message.channel.awaitMessages(filter, {
max: 1,
time: 30000,
errors: ['time']
})
.then(message => {
message = message.first();
var score = 0;
if (fs.existsSync(`userScore/${message.author.id}`)) {
fs.readFile(`userScore/${message.author.id}`, 'utf8', function (err, data) {
score = Number(data);
if (err) {
console.log(err);
}
});
} else {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
var predicted = "unsure";
if (data[questionNum].tossup_format === "Multiple Choice") {
if (message.content.charAt(0).toLowerCase() === data[questionNum].tossup_answer.charAt(0).toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
} else {
if (message.content.toLowerCase() === data[questionNum].tossup_answer.toLowerCase()) {
predicted = "correct";
} else {
predicted = "incorrect";
}
}
message.channel.send(`Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!`);
message.react('✅');
message.react('❌');
const filter = (reaction, user) => {
return ['❌', '✅'].includes(reaction.emoji.name) && user.id === message.author.id;
};
message.awaitReactions(filter, { max: 1, time: 600000, errors: ['time'] })
.then(reaction => {
var reaction = reaction.first();
if (reaction.emoji.name === "❌") {
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice try! Your score is now ${score}`);
} else {
score += 4;
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
message.reply(`nice job! Your score is now ${score}`);
fs.writeFile(`userScore/${message.author.id}`, score.toString(), (error) => { if (error) { console.log(error); } });
}
})
.catch(collected => {
//message.channel.send("\n**REACTION TIMEOUT**");
})
})
.catch ((collected, error) => {
message.reply('\n**ANSWER TIMEOUT**');
})
})
})
} }
}); });
client.login(process.argv[2]).catch(error => console.log(error)); client.login(process.argv[2]).catch(error => console.log(error));

4
bot/package-lock.json

@ -1,12 +1,12 @@
{ {
"name": "awscibo", "name": "awscibo",
"version": "0.2.4", "version": "0.3.4",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "awscibo", "name": "awscibo",
"version": "0.2.4", "version": "0.3.4",
"license": "Apache 2.0", "license": "Apache 2.0",
"dependencies": { "dependencies": {
"discord.js": "^12.5.1", "discord.js": "^12.5.1",

Loading…
Cancel
Save