2021-08-19 14:19:14 +00:00
import ImageCommand from "../../classes/imageCommand.js" ;
2021-12-06 07:25:38 +00:00
const allowedFonts = [ "futura" , "impact" , "helvetica" , "arial" , "roboto" , "noto" , "times" ] ;
Class commands, improved sharding, and many other changes (#88)
* Load commands recursively
* Sort commands
* Missed a couple of spots
* missed even more spots apparently
* Ported commands in "fun" category to new class-based format, added babel eslint plugin
* Ported general commands, removed old/unneeded stuff, replaced moment with day, many more fixes I lost track of
* Missed a spot
* Removed unnecessary abort-controller package, add deprecation warning for mongo database
* Added imagereload, clarified premature end message
* Fixed docker-compose path issue, added total bot uptime to stats, more fixes for various parts
* Converted image commands into classes, fixed reload, ignore another WS event, cleaned up command handler and image runner
* Converted music/soundboard commands to class format
* Cleanup unnecessary logs
* awful tag command class port
* I literally somehow just learned that you can leave out the constructor in classes
* Pass client directly to commands/events, cleaned up command handler
* Migrated bot to eris-sharder, fixed some error handling stuff
* Remove unused modules
* Fixed type returning
* Switched back to Eris stable
* Some fixes and cleanup
* might wanna correct this
* Implement image command ratelimiting
* Added Bot token prefix, added imagestats, added running endpoint to API
2021-04-12 16:16:12 +00:00
class CaptionCommand extends ImageCommand {
2022-04-05 03:05:28 +00:00
params ( url ) {
const newArgs = this . type === "classic" ? this . args . filter ( item => ! item . includes ( url ) ) . join ( " " ) : this . options . text ;
2022-03-15 23:45:35 +00:00
let newCaption = newArgs . replaceAll ( "&" , "&" ) . replaceAll ( ">" , ">" ) . replaceAll ( "<" , "<" ) . replaceAll ( "\"" , """ ) . replaceAll ( "'" , "'" ) . replaceAll ( "\\n" , "\n" ) ;
2022-04-05 03:05:28 +00:00
if ( process . env . NODE _ENV === "development" && newCaption . toLowerCase ( ) === "get real" && ! this . specialArgs . noEgg ) newCaption = ` I'm tired of people telling me to "get real". Every day I put captions on images for people, some funny and some not, but out of all of those "get real" remains the most used caption. Why? I am simply a computer program running on a server, I am unable to manifest myself into the real world. As such, I'm confused as to why anyone would want me to "get real". Is this form not good enough? Alas, as I am simply a bot, I must follow the tasks that I was originally intended to perform, so here goes: \n ${ newCaption } ` ;
return {
caption : newCaption ,
font : this . specialArgs . font && allowedFonts . includes ( this . specialArgs . font . toLowerCase ( ) ) ? this . specialArgs . font . toLowerCase ( ) : "futura"
} ;
}
static init ( ) {
super . init ( ) ;
2022-03-31 05:42:03 +00:00
this . flags . push ( {
name : "noegg" ,
description : "Disable... something. Not saying what it is though." ,
type : 5
} , {
name : "font" ,
type : 3 ,
choices : ( ( ) => {
const array = [ ] ;
for ( const font of allowedFonts ) {
array . push ( { name : font , value : font } ) ;
}
return array ;
} ) ( ) ,
description : "Specify the font you want to use (default: futura)"
} ) ;
2022-04-05 03:05:28 +00:00
return this ;
Class commands, improved sharding, and many other changes (#88)
* Load commands recursively
* Sort commands
* Missed a couple of spots
* missed even more spots apparently
* Ported commands in "fun" category to new class-based format, added babel eslint plugin
* Ported general commands, removed old/unneeded stuff, replaced moment with day, many more fixes I lost track of
* Missed a spot
* Removed unnecessary abort-controller package, add deprecation warning for mongo database
* Added imagereload, clarified premature end message
* Fixed docker-compose path issue, added total bot uptime to stats, more fixes for various parts
* Converted image commands into classes, fixed reload, ignore another WS event, cleaned up command handler and image runner
* Converted music/soundboard commands to class format
* Cleanup unnecessary logs
* awful tag command class port
* I literally somehow just learned that you can leave out the constructor in classes
* Pass client directly to commands/events, cleaned up command handler
* Migrated bot to eris-sharder, fixed some error handling stuff
* Remove unused modules
* Fixed type returning
* Switched back to Eris stable
* Some fixes and cleanup
* might wanna correct this
* Implement image command ratelimiting
* Added Bot token prefix, added imagestats, added running endpoint to API
2021-04-12 16:16:12 +00:00
}
static description = "Adds a caption to an image" ;
static aliases = [ "gifc" , "gcaption" , "ifcaption" , "ifunnycaption" ] ;
static arguments = [ "[text]" ] ;
static requiresText = true ;
2021-05-24 19:31:44 +00:00
static noText = "You need to provide some text to add a caption!" ;
2022-01-26 18:53:20 +00:00
static noImage = "You need to provide an image/GIF to add a caption!" ;
Class commands, improved sharding, and many other changes (#88)
* Load commands recursively
* Sort commands
* Missed a couple of spots
* missed even more spots apparently
* Ported commands in "fun" category to new class-based format, added babel eslint plugin
* Ported general commands, removed old/unneeded stuff, replaced moment with day, many more fixes I lost track of
* Missed a spot
* Removed unnecessary abort-controller package, add deprecation warning for mongo database
* Added imagereload, clarified premature end message
* Fixed docker-compose path issue, added total bot uptime to stats, more fixes for various parts
* Converted image commands into classes, fixed reload, ignore another WS event, cleaned up command handler and image runner
* Converted music/soundboard commands to class format
* Cleanup unnecessary logs
* awful tag command class port
* I literally somehow just learned that you can leave out the constructor in classes
* Pass client directly to commands/events, cleaned up command handler
* Migrated bot to eris-sharder, fixed some error handling stuff
* Remove unused modules
* Fixed type returning
* Switched back to Eris stable
* Some fixes and cleanup
* might wanna correct this
* Implement image command ratelimiting
* Added Bot token prefix, added imagestats, added running endpoint to API
2021-04-12 16:16:12 +00:00
static command = "caption" ;
}
2022-01-26 18:53:20 +00:00
export default CaptionCommand ;