8个版本
使用旧的Rust 2015
0.3.3 | 2017年8月20日 |
---|---|
0.3.2 | 2017年8月13日 |
0.3.1 | 2017年7月31日 |
0.2.0 | 2017年6月24日 |
0.1.2 | 2017年6月14日 |
#45 in #bot-api
23KB
486 行
Overbot - 一个Telegram机器人助手
Overbot的目标是移除编写Telegram机器人所需的所有样板代码,只让你关注业务逻辑。
Overbot通过处理网络通信来实现这一点,同时你可以在配置文件中指定机器人的行为。
支持的格式是 json
和 toml
。以下是一个使用toml格式的简单示例
#mybot.toml
token = "mytoken"
[[command]]
regex='hello ([A-z]+)'
executable = '/bin/echo'
args = ['$1']
input = 'text'
output = 'text'
以下参数可用
token
模拟机器人的所需令牌
command
支持任意数量的命令块,以下参数是支持的
regex
用于匹配特定命令的regex。
命令按顺序进行匹配测试,第一个匹配的将被执行。
支持的语法是rust regex crate支持的语法。
可以指定捕获组,并在后面的 args
字段中通过编号和/或名称引用它们。
executable
响应接收到的消息时要执行的程序的绝对路径。
程序将通过 stdin
接收消息,其 stdout
将是响应消息的主体。
args
传递给可执行文件的参数数组。
可以使用 $
符号作为捕获组编号或名称的前缀,它将被相应地展开为提供的查询。
capture group $0
是整个匹配。
input
将要使用的输入模式。支持的模式有
- json:将原始json消息发送到stdin
- text:将消息的
text
字段发送到stdin
input
将要使用的输出模式。支持的模式有
- json:期望程序stdout包含一个原始json消息响应
- text:期望程序stdout包含消息响应的
text
字段 - textmono:期望程序stdout包含消息响应的
text
字段,该字段将被封装在monopaced
格式化中 - markdown:期望程序stdout包含消息响应的
text
字段,并识别Telegram接受的Markdown子集 - html:程序的标准输出应包含消息响应的文本字段,并识别Telegram接受的HTML子集
访问控制
可选地,可以指定一个allowed
参数,作为接受为机器人或单个命令的Telegram ID列表(如果该字段存在于[[command]]
部分)。
这些ID可以是群组ID或用户ID。
运行程序
程序接受一个包含任意数量.toml
或.json
配置文件(每个机器人一个)的文件夹作为参数
overbot my_bot_dir
限制
该程序目前还在开发中,缺少许多期望的功能,特别是
- 对配置错误的合理且易于阅读的错误处理
- 支持内联模式
- 合理且可配置的日志记录
许可证
许可协议为以下之一
- Apache License,版本2.0(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
依赖项
~17–26MB
~403K SLoC