A simple discord chat bot with a simple configuration. Written using discordgo.
This most recent update will break your current keyword and command configs by moving the response one level deeper. This is to allow for reactions to be added on keywords. The bot can also mention a user for matched using the &user& string in the keyword response.
Reactions need to be copied in as a unicode emoji character.
keyword:
help:
- "Please check the github page at <https://github.com/parkervcp/parkertron>"
- "The default config is a good example of how to set commands up. Try `.help command`"
- "My base chat parsing function is also available. Try `.help keyword` for more info"
keyword:
help:
reaction:
- "💪"
response:
- "&user& Please check the github page at <https://github.com/parkervcp/parkertron>"
- "The default config is a good example of how to set commands up. Try `.help command`"
- "My base chat parsing function is also available. Try `.help keyword` for more info"
tesseract-ocr w/ english training files (May support other languages but has not been tested.) libleptonica (for tesseract)
Working on adding other services and additions.
The checklist so far
- support multiple services
- Discord
- Slack
- IRC
- Support @mentions for the bot
- Use @mentions for other users
- Watch for @mentions on groups
- Respond with multi-line output in a single message
- Logging into service and validating
- Create account on a server
- Freenode
- Others
-
Get inbound messages
- Listen to specific channels
- per-channel configs
- Listen for mentions
- respond according to context
- Listen to specific channels
-
Respond to inbound messages
- respond to commands with prefix
- respond to key words/phrases
- Comma separated lists
- Separate server commands
-
Image parsing
- image from url support (others may work)
- png support
- jpg support
- direct embedded images
- image from url support (others may work)
-
Respond with correct output from configs
-
Impliment blacklist/whitelist mode (Blacklist by User ID only)
-
Mitigate spam with cooldown per user/channel/global
- global cooldown
- channel cooldown
- user cooldown
-
Permissions
- Server own gets all perms
- Permissions management
-
logging
- log user join/leave
- log chats (only logs channels it is watching to cut minimize logging)
- log edits (show original and edited)
- log chats/edits to separate files/folders
-
Join voice channels
- Play audio from links
So far I have the chat bot part down with no limiting or administration.
Configuration is done in yaml/json.
If you have a Bot account already you can add the token and client ID's on your own.
If you don't you will need to set your own account up.
The "owner" option in the configs is basically a super admin that will not be able to be blacklisted.
The prefix is the command prefix and is customizable.
Set to "." by default it can be changed to whatever you want.
The Commands set up is simple and is also in json.
See the commands.json for examples.