diff --git a/bot/awesomescibo.js b/bot/awesomescibo.js index 82fe5e3..df0202c 100755 --- a/bot/awesomescibo.js +++ b/bot/awesomescibo.js @@ -9,8 +9,6 @@ const axios = require("axios"); const userScore = require("./mongooseModels/mongooseUserScoreModel.js"); const generatedRound = require("./mongooseModels/mongooseGeneratedRoundModel.js"); const mongoose = require("mongoose"); -let config = {}; -process.env.CI ? config = require("./config.default.json") : config = require("./config.json") const helpMessage = "`do be helping`: display this help message\n`do be roundgen`: send a pdf round to the channel\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 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, energy\n`do be top`: list cross-server top 10 players\n `do be about`: List people who contributed to this bot\n Source Code: https://github.com/ADawesomeguy/AwesomeSciBo (don't forget to star!)"; @@ -46,10 +44,6 @@ client.on("guildCreate", (guild) => { .catch(console.error); }); -function getSubjectUrl(subject) { - return `${config.subjectURL}${subject}.json`; -} - async function updateScore(isCorrect, score, authorId) { if (!isCorrect) { return `Nice try! Your score is still ${score}.`; @@ -180,35 +174,35 @@ async function otherCommands(message) { }); } else { const subject = message.content.substring(15); - let subjectURL; + let categoryArray = []; switch (subject) { case "astro": case "astronomy": - subjectURL = getSubjectUrl("astronomy"); + categoryArray = ["ASTRONOMY"] break; case "bio": case "biology": - subjectURL = getSubjectUrl("biology"); + categoryArray = ["BIOLOGY"]; break; case "ess": case "earth science": case "es": - subjectURL = getSubjectUrl("ess"); + categoryArray = ["EARTH SCIENCE"]; break; case "chem": case "chemistry": - subjectURL = getSubjectUrl("chemistry"); + categoryArray = ["CHEMISTRY"]; break; case "phys": case "physics": - subjectURL = getSubjectUrl("physics"); + categoryArray = ["PHYSICS"]; break; case "math": - subjectURL = getSubjectUrl("math"); + categoryArray = ["MATH"]; break; case "energy": - subjectURL = getSubjectUrl("energy"); + categoryArray = ["ENERGY"]; break; default: message.channel.send("Not a valid subject!"); @@ -216,12 +210,11 @@ async function otherCommands(message) { } axios - .get(subjectURL) + .post("https://scibowldb.com/api/questions", { categories: categoryArray }) .then((res) => { - const data = res.data; - const questionNum = Math.floor(Math.random() * data.length); + data = res.data.questions[Math.floor(Math.random() * res.data.questions.length)]; const messageFilter = (m) => m.author.id === authorId; - message.reply(data[questionNum].tossup_question).then(() => { + message.reply(data.tossup_question).then(() => { message.channel .awaitMessages(messageFilter, { max: 1, @@ -232,10 +225,10 @@ async function otherCommands(message) { answerMsg = answerMsg.first(); let predicted = null; - if (data[questionNum].tossup_format === "Multiple Choice") { + if (data.tossup_format === "Multiple Choice") { if ( answerMsg.content.charAt(0).toLowerCase() === - data[questionNum].tossup_answer.charAt(0).toLowerCase() + data.tossup_answer.charAt(0).toLowerCase() ) { predicted = "correct"; } else { @@ -244,7 +237,7 @@ async function otherCommands(message) { } else { if ( answerMsg.content.toLowerCase() === - data[questionNum].tossup_answer.toLowerCase() + data.tossup_answer.toLowerCase() ) { predicted = "correct"; } else { @@ -252,7 +245,7 @@ async function otherCommands(message) { } } answerMsg.channel.send( - `Correct answer: **${data[questionNum].tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!` + `Correct answer: **${data.tossup_answer}**. Predicted: **${predicted}**. Please react to your answer!` ); answerMsg.react("✅"); answerMsg.react("❌");