update readme, bot init function
Syfaro syfaro@foxpaw.in
Thu, 25 Jun 2015 22:49:24 -0500
1 files changed,
50 insertions(+),
5 deletions(-)
jump to
M
README.md
→
README.md
@@ -1,9 +1,54 @@
-# telegram-bot-api +# Golang Telegram bot using the Bot API A simple Golang bot for the Telegram Bot API -Really simple bot for interacting with the Telegram Bot API, not nearly done yet. +Really simple bot for interacting with the Telegram Bot API, not nearly done yet. Expect frequent breaking changes! + +All methods have been added, and all features should be available. +If you want a feature that hasn't been added yet, open an issue and I'll see what I can do. + +There's a few plugins in here, named as `plugin_*.go`. + +## Getting started + +After installing all the dependencies, run + +``` +go build +./telegram-bot-api -newbot +``` + +Fill in any asked information, enable whatever plugins, etc. + +## Plugins + +All plugins implement the `Plugin` interface. + +```go +type Plugin interface { + GetName() string + GetCommands() []string + GetHelpText() []string + GotCommand(string, Message, []string) + Setup() +} +``` + +`GetName` should return the plugin's name. This must be unique! + +`GetCommands` should return a slice of strings, each command should look like `/help`, it must have the forward slash! + +`GetHelpText` should return a slice of strings with each command and usage. You many include any number of items in here. + +`GotCommand` is called when a command is executed for this plugin, the parameters are the command name, the Message struct, and a list of arguments passed to the command. The original text is available in the Message struct. + +`Setup` is called when the bot first starts, if it needs any configuration, ask here. + +To add your plugin, you must edit a line of code and then run the `go build` again. -All API responses are implemented as structs, only some method calls have been added. -There's a very simple plugin in `bot.go` right now. You can find config options in the code fairly easily. +```go +// current version +plugins = []Plugin{&HelpPlugin{}, &ManagePlugin{}} -Hopefully code quality will improve as this project progresses. +// add your own plugins +plugins = []Plugin{&HelpPlugin{}, &FAPlugin{}, &ManagePlugin{}} +```