Butler团体帮助人们管理他们的小组,并包括许多其他有用的工具。
Butler Group出生于Otouto v3.1( @mokubot ),但此后已变成了一个行政机器人。
@GroupButler_bot
master@GroupButler_ch 。 @GBReborn_bot
develop@GroupButler_beta 。 首先,看看您的机器人设置
- 确保禁用隐私(可以通过前往官方机器人常见问题解答页面找到更多信息)。将
/setprivacy发送到@BotFather,以检查此设置的当前状态。
创建一个名为.env的纯文本文件,其中以下内容:
将
TG_TOKEN设置为您从@BotFather收到的身份验证令牌。将
SUPERADMINS设置为包含您的数值电报ID的JSON数组。也可以添加其他超级媒介。插入数值ID而不是字符串很重要。设置
LOG_CHAT(聊天的ID,该机器人将发送所有从电报收到的不良请求)和您的LOG_ADMIN(将接收执行错误的用户ID)。
您的.env文件现在应该看起来像这样:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
要求:
运行make dev_polling 。 Docker将拉动并构建所需的图像,因此您第一次运行此命令应该需要一段时间。之后,机器人应启动并运行。
代码安装在机器人容器上,因此您可以像往常一样进行更改并重新启动机器人。
REDIS默认端口已安装为主机,以防万一您想使用主机上可用的工具进行调试。
在DEV模式下,REDIS容器设置为不持久数据。
您可以使用多种方式使用Docker将其部署到生产中。
名为docker-compose docker-compose.yml文件docker-compose.*.yml
该机器人还支持阅读Docker Secrets(也可以与其他保险库一起使用)。检查lua/config.lua以查看可以从秘密读取哪些变量。
您可以通过运行来部署小组管家:
make easy_deploy
假设您已将RIDIS部署到例如staging ( docker stack deploy …或docker service create … )并导出所需的环境变量(例如$TG_TOKEN …),则可以通过运行:运行:
docker stack deploy staging -c docker-compose.yml
所需包的列表:
libreadline-devredis-serverlua5.1liblua5.1devlibssl-devgitmakeunzipcurllibcurl4-gnutls-dev您也需要其他一些LUA模块,可以(应该)通过LUA软件包管理器Luarocks安装。
安装
您可以通过运行以下命令来轻松安装组管家:
# Tested on Ubuntu 16.04
$ wget https://raw.githubusercontent.com/group-butler/GroupButler/master/install.sh
$ bash install.sh或者
# Tested on Ubuntu 14.04, 15.04 and 16.04, Debian 7, Linux Mint 17.2
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libreadline-dev libssl-dev lua5.1 liblua5.1-dev git make unzip redis-server curl libcurl4-gnutls-dev
# We are going now to install LuaRocks and the required Lua modules
$ wget http://luarocks.org/releases/luarocks-2.2.2.tar.gz
$ tar zxpf luarocks-2.2.2.tar.gz
$ cd luarocks-2.2.2
$ ./configure ; sudo make bootstrap
$ sudo luarocks install luasec
$ sudo luarocks install luasocket
$ sudo luarocks install redis-lua
$ sudo luarocks install lua-term
$ sudo luarocks install serpent
$ sudo luarocks install lua-cjson
$ sudo luarocks install Lua-cURL
$ cd ..
# Clone the repository and give the launch script permissions to be executed
# If you want to clone the beta branch, use git clone with the [-b beta] option
$ git clone https://github.com/group-butler/GroupButler.git
$ cd GroupButler
$ sudo chmod +x launch.sh在启动机器人之前,您必须启动REDIS流程。
# Start Redis
$ sudo service redis-server start要启动机器人,请运行./launch.sh 。要停止机器人,请按Control CTRL + C两次。
您也可以使用./polling.lua启动机器人,但是它不会自动重新启动。您还需要找到另一种导出所需环境变量的方法。
config.lua中,在bot_settings表中cache_time.adminlist :缓存中管理员秒内的永久性。机器人缓存管理员以避免达到电报限制notify_bug :如果true ,机器人将发送一条消息,通知当前用户,执行插件并且发生错误时发生错误log_api_errors :如果true ,则bot将在LOG_CHAT中发送API请求返回的所有相关错误stream_commands :如果true ,当更新触发插件时,将在控制台上打印比赛config.lua中找到其他一些有用的字段,例如REDIS_DB :所选的REDIS数据库(如果您使用默认配置运行REDIS,则可用数据库为16)。将在每个启动/重新加载下选择数据库。默认值:0$启动。它们没有记录,请查看plugins/admin.lua插件的触发器true ,则该机器人将继续尝试将消息文本与plugins表的缺失触发器匹配$backup命令向自己发送Zipped Bot文件夹的备份user_id至少属于组的一部分,那么kickChatMember方法始终返回积极的响应,当您使用此方法时,用户不在组中没关系user_id至少属于组的一部分,则unbanChatMember方法始终返回积极的响应一切都存储在Redis上,并且编辑数据库的最快方法是通过Redis CLI。
您可以在/etc/redis/dump.rdb中找到REDIS数据库的备份。该文件的名称和保存的频率取决于您的redis配置文件。
如果您想帮助翻译机器人,请按照以下说明进行操作。组的一部分巴特勒使用getText的工具。但是,为了简单起见,我们不使用二进制格式*.mo 。机器人在运行时解析了locales目录中的*.po文件。
我们建议为我们的人群项目贡献翻译。
注意开发人员注意:每当您更改字符串时更新锅文件,并且不要忘记使用i18n()函数,以便可以翻译。为了更新锅文件,您需要安装getText然后运行:
make pot
Topkecleon,用于原始的Otouto
伊曼·丹妮什(Iman Daneshi)和蒂亚戈·达丁(Tiago Danin)
Cosmonawt,为他的Lua图书馆作为机器人API
YagoPérez的电报机器人
狼人的家伙有助于机器人的传播
卢卡斯·蒙图阿诺(Lucas Montuano)在调试机器人的调试中有很多帮助
我们关于小组讨论小组的所有讨论小组的管理员
所有报告错误并提出新内容的人
Le Laide