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