const axios = require ( 'axios' ) ;
const { MessageEmbed } = require ( 'discord.js' ) ;
const decode = require ( 'html-entities' ) . decode ;
const { testingGuild } = require ( '../helpers/env' ) ;
module . exports = {
name : 'messageCreate' ,
once : false ,
async execute ( message ) {
if ( message . author . bot || message . guild . id != testingGuild ) return ;
if ( message . content . startsWith ( '!q' ) ) {
const questionId = message . content . split ( ' ' ) [ 1 ] ;
axios
. get ( ` https://scibowldb.com/api/questions/ ${ questionId } ` )
. then ( ( res ) => {
const data = res . data . question ;
const tossupQuestion = data . tossup_question ;
const tossupAnswer = data . tossup_answer ;
let answers = tossupAnswer . split ( ' (ACCEPT: ' ) ;
if ( answers . length > 1 ) {
answers [ 1 ] = answers [ 1 ] . slice ( 0 , answers [ 1 ] . length - 1 ) ; // If there are multiple elements, it means there was an 'accept' and therefore a trailing ')' which should be removed
answers = [ answers [ 0 ] , ... answers [ 1 ] . split ( new RegExp ( ' OR ' , 'i' ) ) ] ; // Use the first element plus the last element split by 'OR' case insensitive
}
const dataEmbed = new MessageEmbed ( )
. setTitle ( 'Data' )
. setDescription ( ` \` \` \` json \n ${ JSON . stringify ( data , null , 2 ) } \` \` \` ` ) ;
message . reply ( {
content : decode ( tossupQuestion ) + ` \n \n Answers: [ ${ answers } ] ` ,
embeds : [ dataEmbed ] ,
} ) ;
} ) ;
}
} ,
} ;