diff --git a/bot/awesomescibo.js b/bot/awesomescibo.js
index fba2a61..b6852e1 100755
--- a/bot/awesomescibo.js
+++ b/bot/awesomescibo.js
@@ -36,7 +36,7 @@ client.once("ready", () => {
"description": "Replies with a help message explaining what the bot can do"
},
{
- "name": "round",
+ "name": "rounds",
"options": [
{
"type": 1,
@@ -248,54 +248,6 @@ function sendHelpMessage(interaction) {
);
}
-async function generateRound(interaction) {
- const generatingMessage = interaction.reply("Generating...");
- let i;
- let finalizedHTML = '
ROUND GENERATED BY AWESOMESCIBO USING THE SCIBOWLDB API
';
- let tossup_question;
- let question_category;
- let tossup_format;
- let tossup_answer;
- let bonus_question;
- let bonus_format;
- let bonus_answer;
- let htmlContent = "";
- await axios.post("https://scibowldb.com/api/questions", { categories: ["BIOLOGY", "PHYSICS", "CHEMISTRY", "EARTH AND SPACE", "ASTRONOMY", "MATH"] })
- .then((response) => {
- for (i = 1; i < 26; i++) {
- data = response.data.questions[Math.floor(Math.random() * response.data.questions.length)];
- tossup_question = data.tossup_question;
- tossup_answer = data.tossup_answer;
- question_category = data.category;
- tossup_format = data.tossup_format;
- bonus_question = data.bonus_question;
- bonus_answer = data.bonus_answer;
- bonus_format = data.bonus_format;
- htmlContent = `
TOSS-UP
\n
` + `${i}) ${question_category}` + " " + `${tossup_format}` + " " + tossup_question + "
" + "ANSWER: " + tossup_answer + "
";
- htmlContent += `
BONUS
\n
` + `${i}) ${question_category}` + " " + `${bonus_format}` + " " + bonus_question + "
" + "ANSWER: " + bonus_answer + "
";
- htmlContent = htmlContent.replace(/\n/g, "
");
- finalizedHTML += htmlContent;
- }
- newGeneratedRound = new generatedRound({
- htmlContent: finalizedHTML,
- requestedBy: interaction.author.id,
- authorTag: interaction.author.tag,
- timestamp: new Date().toISOString(),
- });
- newGeneratedRound.save((err, round) => {
- if (err) {
- console.log(err);
- return;
- }
- interaction.channel.messages.fetch(generatingMessage.id)
- .then(generatingMessage => {
- const msg = generatingMessage.first();
- msg.edit(`${message.author}, here's your round: https://api.adawesome.tech/round/${round._id.toString()}`);
- });
- });
- });
- }
-
async function startScoring(message) {
let scoreA = 0;
let scoreB = 0;
@@ -413,29 +365,77 @@ function aboutMessage(message) {
);
}
-async function userRounds(interaction) {
- let rounds = await generatedRound.find({ requestedBy: interaction.user.id }).sort({ timestamp: -1 });
- let finalMessage = "";
- if (!rounds) {
- interaction.reply("You haven't requested any rounds!");
- return;
- }
+async function rounds(action, interaction) {
+ if (action === "generate") {
+ const generatingMessage = interaction.reply("Generating...");
+ let i;
+ let finalizedHTML = ' ROUND GENERATED BY AWESOMESCIBO USING THE SCIBOWLDB API
';
+ let tossup_question;
+ let question_category;
+ let tossup_format;
+ let tossup_answer;
+ let bonus_question;
+ let bonus_format;
+ let bonus_answer;
+ let htmlContent = "";
+ await axios.post("https://scibowldb.com/api/questions", { categories: ["BIOLOGY", "PHYSICS", "CHEMISTRY", "EARTH AND SPACE", "ASTRONOMY", "MATH"] })
+ .then((response) => {
+ for (i = 1; i < 26; i++) {
+ data = response.data.questions[Math.floor(Math.random() * response.data.questions.length)];
+ tossup_question = data.tossup_question;
+ tossup_answer = data.tossup_answer;
+ question_category = data.category;
+ tossup_format = data.tossup_format;
+ bonus_question = data.bonus_question;
+ bonus_answer = data.bonus_answer;
+ bonus_format = data.bonus_format;
+ htmlContent = `
TOSS-UP
\n
` + `${i}) ${question_category}` + " " + `${tossup_format}` + " " + tossup_question + "
" + "ANSWER: " + tossup_answer + "
";
+ htmlContent += `
BONUS
\n
` + `${i}) ${question_category}` + " " + `${bonus_format}` + " " + bonus_question + "
" + "ANSWER: " + bonus_answer + "
";
+ htmlContent = htmlContent.replace(/\n/g, "
");
+ finalizedHTML += htmlContent;
+ }
+ newGeneratedRound = new generatedRound({
+ htmlContent: finalizedHTML,
+ requestedBy: interaction.author.id,
+ authorTag: interaction.author.tag,
+ timestamp: new Date().toISOString(),
+ });
+ newGeneratedRound.save((err, round) => {
+ if (err) {
+ console.log(err);
+ return;
+ }
+ interaction.channel.messages.fetch(generatingMessage.id)
+ .then(generatingMessage => {
+ const msg = generatingMessage.first();
+ msg.edit(`${message.author}, here's your round: https://api.adawesome.tech/round/${round._id.toString()}`);
+ });
+ });
+ });
+ } else if (action === "list"){
+ let rounds = await generatedRound.find({ requestedBy: interaction.user.id }).sort({ timestamp: -1 });
+ let finalMessage = "";
+ if (!rounds) {
+ interaction.reply("You haven't requested any rounds!");
+ return;
+ }
- if (rounds.length > 5) {
- rounds = rounds.slice(0, 5);
- }
+ if (rounds.length > 5) {
+ rounds = rounds.slice(0, 5);
+ }
- rounds.forEach(async (item, index) => {
- finalMessage += `${index + 1}. [${item.timestamp.split("T")[0]}](https://api.adawesome.tech/round/${item._id.toString()})\n`;
- });
+ rounds.forEach(async (item, index) => {
+ finalMessage += `${index + 1}. [${item.timestamp.split("T")[0]}](https://api.adawesome.tech/round/${item._id.toString()})\n`;
+ });
- const roundsEmbed = new Discord.MessageEmbed()
- .setAuthor(message.author.tag, message.author.displayAvatarURL())
- .setTitle(`Last 5 rounds requested by ${message.author.tag}`)
- .setDescription(finalMessage)
- .setTimestamp();
+ const roundsEmbed = new Discord.MessageEmbed()
+ .setAuthor(message.author.tag, message.author.displayAvatarURL())
+ .setTitle(`Last 5 rounds requested by ${message.author.tag}`)
+ .setDescription(finalMessage)
+ .setTimestamp();
- interaction.reply(roundsEmbed);
+ interaction.reply(roundsEmbed, { ephemeral: true });
+ }
}
async function hits(message) {
@@ -515,12 +515,9 @@ client.on("interaction", interaction => {
case "train":
training(interaction.options[0] ? interaction.options[0].value : null, interaction);
break;
- case "round generate":
+ case "rounds":
generateRound(interaction);
break;
- case "round list":
- userRounds(interaction);
- break;
}
})