Goshu is very modular, and allows you to simply drop modules into the modules/ folder, where they're automatically loaded at bot start or can be loaded at runtime by bot admins.
To disable any modules, simply disable them with the built-in module control command, delete them, or move them to a different folder.
- Modules are represented like so: dice
- Commands are represented like so: 8ball
- dice: adds d, parsing rpg dice like this: d d6-3
- dictionary: adds def, definitions provided by wordnic (requires api key)
- google: adds google and youtube, returns first search result (also a dynamic command module)
- link: posts the title of posted urls (restricted to youtube videos initially)
- pokemon: adds pokemon and pokedex, returns random pokemon
- random_module: adds random
- suggest: adds suggest, allows users to make suggestions
- urbandictionary: adds ud, returns definition from urbandictionary
- apiquery: simple json query and replying
- danbooru: danbooru-based site search
- google: google search alias commands (also provides user-oriented commands)
- responses: various commands, simple random responses
- a_log_display: handles printing and logging of data
- accounts: handles Goshu's user accounts
- commands: basic irc commands, things like msg, me, join
- ctcp_reply: handles the basic CTCP requests - stuff like PING, VER, TIME
- info: adds info, outputs debugging information for developers
- invite: makes the bot auto-join any channel it's /invited to
- list: adds list, lists current commands and help for commands
Specific Dynamic Command Module keys and usage instructions
This module loads commands from the modules/apiquery directory; That directory contains a multitude of files, each one providing a single command. The command-files are stored in json, and here are what the different keys do:
- description: sentence-long string describing the command
- permission: number representing the lowest permission level requirement required to access the command
- url: part of the url directly before the encoded user data
- urlpost: part of the url directly after the encoded user data
- response: series of lists, representing how the response is constructed from the given json
- html_unescape: whether to unescape stuff like " and other html-escaped characters in json responses
This module loads commands from the modules/danbooru directory, keys:
- description: sentence-long string describing the command
- permission: number representing the lowest permission level requirement required to access the command
- url: base url of the danbooru installation
- version: if set to
"2"
, uses Danbooru v2 API
This module loads commands from the modules/google directory, keys:
- name: name given to represent site
- description: sentence-long string describing the command
- permission: number representing the lowest permission level requirement required to access the command
- url: the url of the site to match, literally inserted after a "site:" google keyword
This module loads commands from the modules/responses directory, keys:
- description: sentence-long string describing the command
- permission: number representing the lowest permission level requirement required to access the command
- initial: string to process before getting randomised string
- 1, 2: list of strings to randomly pick from and process
- 1pre, 1post, 2pre, 2post: string to add to the beginning/end of every string in given list
- 1: response list used when no argument is given
- 2: response list used when argument is given