グループバトラーは、人々が自分のグループを管理するのを支援し、他の多くの有用なツールが含まれています。
グループバトラーは、オトウツv3.1( @mokubot )として生まれましたが、その後は管理ボットになりました。
@GroupButler_bot
master@GroupButler_ch 。 @GBReborn_bot
develop@GroupButler_beta 。 まず第一に、ボットの設定を見てください
- プライバシーが無効になっていることを確認してください(公式のボットFAQページに向かうことで、詳細が見つかります)。この設定の現在のステータスを確認するには、@botfatherに
/setprivacyを送信します。
次のように.envという名前のプレーンテキストファイルを作成します。
@BotFatherから受け取った認証トークンにTG_TOKENを設定します。数値電報IDを含むJSONアレイとして
SUPERADMINS設定します。他のスーパーアドミンも追加できます。文字列ではなく数値IDを挿入することが重要です。
LOG_CHAT(ボットがTelegramから受け取ったすべての悪い要求を送信するチャットの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デフォルトポートは、ホストで利用可能なツールを使用して何かをデバッグする場合に備えて、ホストにマウントされます。
Redisコンテナは、開発モード中にデータを持続しないように設定されています。
Dockerを使用して生産に展開する方法はいくつかあります。
docker-compose.*.ymlという名前のファイルは、 docker-compose.ymlオーバーライドする必要があると感じたり、他の何かを完全に書いたりする必要があると感じた場合に備えて、gitignoredです。
ボットは、Dockerの秘密を読むこともサポートしています(他のボールトでも動作する場合があります)。 lua/config.luaを確認して、秘密から読み取ることができる変数を確認してください。
実行してグループバトラーを展開できます。
make easy_deploy
たとえば、 staging ( docker stack deploy …またはdocker service create … )にRedisを展開し、必要な環境変数( $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ボットを起動するには、run ./launch.shを実行します。ボットを停止するには、 Ctrl + Cを2回制御します。
また、 ./polling.luaでボットを起動することもできますが、自動的に再起動しません。また、必要な環境変数をエクスポートする別の方法を見つける必要があります。
config.lua 、 bot_settingsテーブルに配置されますcache_time.adminlist :キャッシュ内の管理リストの数秒単位の永続性。ボットは管理者リストをキャッシュして電報制限を打つことを避けますnotify_bug : true場合、ボットは、プラグインが実行されてエラーが発生したときに、現在のユーザーにバグが発生したことを通知するメッセージを送信しますlog_api_errors : trueの場合、ボットはLOG_CHATに送信されます。stream_commands : trueの場合、アップデートがプラグインをトリガーすると、マッチがコンソールに印刷されますconfig.luaで見つけることができる.envに追加できる他の便利なフィールドがいくつかあります。REDIS_DB :選択したRedisデータベース(デフォルトの構成でRedisを実行している場合、使用可能なデータベースは16です)。データベースは、各開始/リロードで選択されます。デフォルト:0$の開始を開始します。それらは文書化されていません、リスト全体のplugins/admin.luaプラグインのトリガーを見てくださいtrueを返す場合、ボットはメッセージテキストをpluginsテーブルの欠落トリガーと一致させ続けます$backupコマンドを使用して、ジップボットフォルダーのバックアップを送信できますkickChatMemberメソッドは常に肯定的な応答を返します。 user_id少なくとも一度はグループの一部である場合、この方法を使用するときにユーザーがグループにいないかどうかは関係ありませんunbanChatMemberメソッドは、 user_id少なくとも一度はグループの一部である場合、常に肯定的な応答を返します。ユーザーがグループにないか、グループブラックリストにないかは関係ありませんすべてがRedisに保存されており、データベースを編集する最速の方法はRedis CLIを介して行われます。
/etc/redis/dump.rdbでRedisデータベースのバックアップを見つけることができます。このファイルの名前と保存の頻度は、Redis構成ファイルに依存します。
ボットの翻訳を手伝いたい場合は、以下の指示に従ってください。グループバトラーの一部は、GetTextからツールを使用します。ただし、簡単にするために、バイナリ形式*.moは使用していません。ボットは、実行時にlocalesディレクトリ内の*.poファイルを解析します。
Crowdin Projectに翻訳を提供することをお勧めします。
開発者向けの注意:文字列を変更するたびにポットファイルを更新し、 i18n()関数を使用して翻訳可能であることを忘れないでください。ポットファイルを更新するには、getTextをインストールしてから実行する必要があります。
make pot
オリジナルのオトゥーのためのトプケクレオン
ジャック・テレグラム・ボットのイマン・ダネシとティアゴ・ダニン
Cosmonawt、ボットAPIのための彼のLua Libraryのため
YagoPérezは電報ボットをしています
ボットの広がりを支援するために狼男の男たち
ルーカス・モントゥアノ、ボットのデバッグで私を大いに助けてくれた
グループバトラーについての私たちのディスカッショングループのすべての管理者
バグを報告し、新しいものを提案したすべての人々
ルライド