Group Butler aide les gens à administrer leurs groupes et comprennent de nombreux autres outils utiles.
Le groupe Butler est né en tant qu'Otouto v3.1 ( @mokubot ), mais il a depuis été transformé en bot administratif.
@GroupButler_bot
master@GroupButler_ch . @GBReborn_bot
develop@GroupButler_beta . Tout d'abord, jetez un œil à vos paramètres de bot
- Assurez-vous que la confidentialité est désactivée (plus d'informations peuvent être trouvées en vous dirigeant vers la page officielle de FAQ des bots). Envoyer
/setprivacyà @botfather pour vérifier l'état actuel de ce paramètre.
Créez un fichier texte brut nommé .env avec les suivants:
Définissez
TG_TOKENsur le jeton d'authentification que vous avez reçu de@BotFather.Définissez
SUPERADMINScomme un tableau JSON contenant votre identifiant de télégramme numérique. D'autres Superadmins peuvent également être ajoutés. Il est important que vous insériez l'ID numérique et non une chaîne.SET
LOG_CHAT(L'ID du chat où le bot enverra toutes les mauvaises demandes reçues de Telegram) et votreLOG_ADMIN(l'ID de l'utilisateur qui recevra des erreurs d'exécution).
Votre fichier .env devrait maintenant ressembler un peu à ceci:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
Exigences:
Run make dev_polling . Docker tirera et construira les images requises, de sorte que la première fois que vous exécutez cette commande devrait prendre un peu de temps. Après cela, le bot devrait être opérationnel.
Le code est monté sur le conteneur de bot, vous pouvez donc apporter des modifications et redémarrer le bot comme vous le feriez normalement.
Le port par défaut de Redis est monté pour héberger, juste au cas où vous souhaitez déboguer quelque chose en utilisant des outils disponibles chez l'hôte.
Le conteneur Redis est défini pour ne pas persister les données en mode Dev .
Il existe plusieurs façons d'utiliser Docker pour le déployer dans la production.
Fichiers nommés docker-compose.*.yml sont gignorés, juste au cas où vous ressentiriez le besoin de remplacer docker-compose.yml ou d'écrire quelque chose d'autre.
Le BOT prend également en charge la lecture des secrets Docker (peut également fonctionner avec d'autres coffres). Vérifiez lua/config.lua pour voir quelles variables peuvent être lues à partir de secrets.
Vous pouvez déployer Group Butler en fonctionnant:
make easy_deploy
En supposant que vous ayez déployé Redis en, par exemple staging ( docker stack deploy … ou docker service create … ) et exporté les variables d'environnement requises (comme $TG_TOKEN …), vous pouvez déployer le Butler de groupe en exécutant:
docker stack deploy staging -c docker-compose.yml
Liste des packages requis:
libreadline-devredis-serverlua5.1liblua5.1devlibssl-devgitmakeunzipcurllibcurl4-gnutls-devVous aurez également besoin d'autres modules LUA, qui peuvent être (et devraient être) installés via le LUA Package Manager Luarocks.
Installation
Vous pouvez facilement installer Group Butler en exécutant les commandes suivantes:
# Tested on Ubuntu 16.04
$ wget https://raw.githubusercontent.com/group-butler/GroupButler/master/install.sh
$ bash install.shou
# 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.shAvant de commencer le bot, vous devez démarrer le processus Redis.
# Start Redis
$ sudo service redis-server start Pour démarrer le bot, exécutez ./launch.sh . Pour arrêter le bot, appuyez deux fois sur contrôle Ctrl + C.
Vous pouvez également démarrer le bot avec ./polling.lua , mais il ne redémarrera pas automatiquement. Vous devrez également trouver un autre moyen d'exporter les variables environnementales requises.
config.lua , dans le tableau bot_settingscache_time.adminlist : la permanence en secondes de la liste d'administration dans le cache. Le bot cache l'administration pour éviter de frapper les limites du télégrammenotify_bug : si true , le bot enverra un message qui informe qu'un bogue est venu à l'utilisateur actuel, lorsqu'un plugin est exécuté et qu'une erreur se produitlog_api_errors : Si true , le bot enverra le LOG_CHAT toutes les erreurs pertinentes renvoyées par une demande d'API vers le télégrammestream_commands : Si true , lorsqu'une mise à jour déclenche un plugin, le match sera imprimé sur la consoleconfig.lua , par exempleREDIS_DB : la base de données Redis sélectionnée (si vous exécutez Redis avec la configuration par défaut, les bases de données disponibles sont 16). La base de données sera sélectionnée à chaque démarrage / rechargement. Par défaut: 0$ . Ils ne sont pas documentés, regardez les déclencheurs du plugins/admin.lua Plugin pour toute la listetrue , le bot continuera d'essayer de faire correspondre le texte du message avec les déclencheurs manquants de la table plugins$backupkickChatMember renvoie toujours une réponse positive si l' user_id fait partie du groupe au moins une fois, peu importe si l'utilisateur n'est pas dans le groupe lorsque vous utilisez cette méthodeunbanChatMember renvoie toujours une réponse positive si l' user_id fait partie du groupe au moins une fois, peu importe si l'utilisateur n'est pas dans le groupe ou n'est pas dans la liste noire du groupe Tout est stocké sur Redis, et le moyen le plus rapide de modifier votre base de données est via le redis CLI.
Vous pouvez trouver une sauvegarde de votre base de données Redis dans /etc/redis/dump.rdb . Le nom de ce fichier et la fréquence des sauvegardes dépendent de votre fichier de configuration Redis.
Si vous souhaitez aider à traduire le bot, suivez les instructions ci-dessous. Parties de groupe Butler utilisent des outils de GetText. Cependant, nous n'utilisons pas de format binaire *.mo pour des raisons de simplicité. Le bot analyse les fichiers *.po dans le répertoire locales au moment de l'exécution.
Nous vous recommandons de contribuer des traductions à notre projet Crowdin.
Remarque pour les développeurs : mettez à jour le fichier POT chaque fois que vous modifiez une chaîne, et n'oubliez pas d'utiliser la fonction i18n() afin qu'elle soit traduisible. Afin de mettre à jour le fichier POT, vous devrez installer GetText, puis exécuter:
make pot
TopKecleleon, pour l'Otouto original
Iman Daneshi et Tiago Danin, pour Jack-Telegram-Bot
Cosmonawt, pour sa bibliothèque Lua pour l'API Bot
Yago Pérez pour son télégramme-bot
Les gars de loup-garou, pour avoir aidé la propagation du bot
Lucas Montuano, pour m'avoir beaucoup aidé dans le débogage du bot
Tous les administrateurs de nos groupes de discussion sur le groupe Butler
Toutes les personnes qui ont signalé des insectes et suggéré de nouvelles choses
Le Laide