2019-12-05 16:58:46 +00:00
const collections = require ( "./collections.js" ) ;
2019-12-06 00:15:28 +00:00
const logger = require ( "./logger.js" ) ;
2019-12-05 16:58:46 +00:00
const fs = require ( "fs" ) ;
2020-02-11 01:49:35 +00:00
module . exports = async ( output ) => {
const template = ` # <img src="https://raw.githubusercontent.com/TheEssem/esmBot/master/esmbot.png" width="64"> esmBot ${ process . env . NODE _ENV === "development" ? " Dev" : "" } Command List
2019-12-20 17:39:30 +00:00
$ { process . env . NODE _ENV === "development" ? "\n**You are currently using esmBot Dev! Things may change at any time without warning and there will be bugs. Many bugs. If you find one, [report it here](https://github.com/TheEssem/esmBot/issues) or in the esmBot Support server.**\n" : "" }
\ ` [] \` means an argument is required, \` {} \` means an argument is optional.
Default prefix is \ ` & \` .
2020-01-08 01:17:04 +00:00
> Tip : You can get more info about a command by using \ ` help [command] \` .
2019-12-20 17:39:30 +00:00
# # Table of Contents
+ [ * * General * * ] ( # 💻 - general )
+ [ * * Moderation * * ] ( # 🔨 - moderation )
+ [ * * Tags * * ] ( # 🏷 ️ - tags )
+ [ * * Fun * * ] ( # 👌 - fun )
+ [ * * Image Editing * * ] ( # 🖼 ️ - image - editing )
+ [ * * Soundboard * * ] ( # 🔊 - soundboard )
` ;
2019-12-05 16:58:46 +00:00
const commands = Array . from ( collections . commands . keys ( ) ) ;
const categories = {
2019-12-20 17:39:30 +00:00
general : [ "## 💻 General" ] ,
moderation : [ "## 🔨 Moderation" ] ,
tags : [ "## 🏷️ Tags" ] ,
fun : [ "## 👌 Fun" ] ,
2020-01-08 01:17:04 +00:00
images : [ "## 🖼️ Image Editing" , "> These commands support the PNG, JPEG, WEBP, and GIF formats. (GIF support is currently experimental)" ] ,
2019-12-20 17:39:30 +00:00
soundboard : [ "## 🔊 Soundboard" ]
2019-12-05 16:58:46 +00:00
} ;
for ( const command of commands ) {
const category = collections . info . get ( command ) . category ;
const description = collections . info . get ( command ) . description ;
const params = collections . info . get ( command ) . params ;
if ( category === 1 ) {
2019-12-20 17:39:30 +00:00
categories . general . push ( ` + ** ${ command } ** ${ params ? ` ${ params } ` : "" } - ${ description } ` ) ;
2019-12-05 16:58:46 +00:00
} else if ( category === 2 ) {
2019-12-20 17:39:30 +00:00
categories . moderation . push ( ` + ** ${ command } ** ${ params ? ` ${ params } ` : "" } - ${ description } ` ) ;
2019-12-05 16:58:46 +00:00
} else if ( category === 3 ) {
2019-12-06 00:15:28 +00:00
const subCommands = Array . from ( Object . keys ( description ) ) ;
for ( const subCommand of subCommands ) {
2019-12-20 17:39:30 +00:00
categories . tags . push ( ` + **tags ${ subCommand !== "default" ? ` ${ subCommand } ` : "" } ** ${ params [ subCommand ] ? ` ${ params [ subCommand ] } ` : "" } - ${ description [ subCommand ] } ` ) ;
2019-12-06 00:15:28 +00:00
}
2019-12-05 16:58:46 +00:00
} else if ( category === 4 ) {
2019-12-20 17:39:30 +00:00
categories . fun . push ( ` + ** ${ command } ** ${ params ? ` ${ params } ` : "" } - ${ description } ` ) ;
2019-12-05 16:58:46 +00:00
} else if ( category === 5 ) {
2019-12-20 17:39:30 +00:00
categories . images . push ( ` + ** ${ command } ** ${ params ? ` ${ params } ` : "" } - ${ description } ` ) ;
2019-12-05 16:58:46 +00:00
} else if ( category === 6 ) {
2019-12-20 17:39:30 +00:00
categories . soundboard . push ( ` + ** ${ command } ** ${ params ? ` ${ params } ` : "" } - ${ description } ` ) ;
2019-12-05 16:58:46 +00:00
}
}
2019-12-20 17:39:30 +00:00
fs . writeFile ( output , ` ${ template } \n ${ categories . general . join ( "\n" ) } \n \n ${ categories . moderation . join ( "\n" ) } \n \n ${ categories . tags . join ( "\n" ) } \n \n ${ categories . fun . join ( "\n" ) } \n \n ${ categories . images . join ( "\n" ) } \n \n ${ categories . soundboard . join ( "\n" ) } ` , ( ) => {
2019-12-06 00:15:28 +00:00
logger . log ( "The help docs have been generated." ) ;
2019-12-05 16:58:46 +00:00
} ) ;
} ;