2021-12-10 21:39:54 +05:00
/* THIS UPDATES THE DOCS */
module . exports = {
/ * *
* Update the doc
* @ param { object } client The Discord Client instance
* /
update ( client ) {
const table = require ( "markdown-table" ) ;
const fs = require ( "fs" ) ;
const commands = client . commands ;
const categories = [ ] ;
commands . forEach ( ( cmd ) => {
if ( ! categories . includes ( cmd . help . category ) ) categories . push ( cmd . help . category ) ;
} ) ;
2021-12-25 00:37:51 +05:00
let text = ` # JaBa имеет свыше ** ${ Math . floor ( commands . size / 10 ) } 0 команд** в ** ${ categories . length } категориях**! \n \n #### Содержимое таблицы \n **Название**: Название команды \n **Описание**: Описание команды \n **Использование**: Использование команды ([] - обязательно, () - необязательно) \n **Откат**: Время, через которое команду можно будет использовать повторно \n \n ` ;
2021-12-10 21:39:54 +05:00
2021-12-20 23:31:13 +05:00
// categories.sort(function(a, b) {
// const aCmdsLength = commands.filter((cmd) => cmd.help.category === a).array().length;
// const bCmdsLength = commands.filter((cmd) => cmd.help.category === b).array().length;
// if (aCmdsLength > bCmdsLength) return -1;
// else return 1;
// })
categories . sort ( ) . forEach ( ( cat ) => {
2021-12-10 21:39:54 +05:00
const arrCat = [
[ "Название" , "Описание" , "Использование" , "Откат" ]
] ;
const cmds = commands . filter ( ( cmd ) => cmd . help . category === cat ) . array ( ) ;
2021-12-18 19:18:30 +05:00
text += ` ### ${ cat } ( ${ cmds . length } ${ getNoun ( cmds . length , "команда" , "команды" , "команд" ) } ) \n \n ` ;
2021-12-10 21:39:54 +05:00
cmds . sort ( function ( a , b ) {
2021-12-16 23:42:58 +05:00
if ( a . help . name < b . help . name ) return - 1 ;
else return 1 ;
2021-12-10 21:39:54 +05:00
} ) . forEach ( ( cmd ) => {
arrCat . push ( [
2021-12-13 18:27:54 +05:00
` ** ${ cmd . help . name } ** ${ cmd . help . aliases . length ? ` **( ${ cmd . help . aliases . join ( ", " ) } )** ` : "" } ` ,
2021-12-10 21:39:54 +05:00
client . translate ( ` ${ cmd . help . category . toLowerCase ( ) } / ${ cmd . help . name } :DESCRIPTION ` ) ,
client . translate ( ` ${ cmd . help . category . toLowerCase ( ) } / ${ cmd . help . name } :USAGE ` ) ,
2021-12-18 19:17:31 +05:00
` ${ Math . ceil ( cmd . conf . cooldown / 1000 ) } ${ getNoun ( Math . ceil ( cmd . conf . cooldown / 1000 ) , "секунда" , "секунды" , "секунд" ) } `
2021-12-10 21:39:54 +05:00
] ) ;
} ) ;
text += ` ${ table ( arrCat ) } \n \n ` ;
} ) ;
2021-12-25 00:37:51 +05:00
if ( ! fs . existsSync ( "./dashboard/public/docs" ) ) {
fs . mkdirSync ( "./dashboard/public/docs" ) ;
fs . writeFileSync ( "./dashboard/public/docs/commands.md" , text ) ;
2021-12-16 23:42:58 +05:00
client . logger . log ( "Dashboard docs updated!" ) ;
2021-12-25 00:37:51 +05:00
} else {
fs . writeFileSync ( "./dashboard/public/docs/commands.md" , text ) ;
2021-12-10 21:39:54 +05:00
client . logger . log ( "Dashboard docs updated!" ) ;
} ;
}
2021-12-18 19:15:16 +05:00
} ;
function getNoun ( number , one , two , five ) {
let n = Math . abs ( number ) ;
n %= 100 ;
if ( n >= 5 && n <= 20 ) return five ;
n %= 10 ;
if ( n === 1 ) return one ;
if ( n >= 2 && n <= 4 ) return two ;
return five ;
2021-12-10 21:39:54 +05:00
} ;