Grupo Butler ayuda a las personas a administrar sus grupos e incluye muchas otras herramientas útiles.
El grupo Butler nació como Otouto V3.1 ( @mokubot ), pero desde entonces se ha convertido en un bot de administración.
@GroupButler_bot
master@GroupButler_ch . @GBReborn_bot
develop@GroupButler_beta . En primer lugar, eche un vistazo a la configuración de su bot
- Asegúrese de que la privacidad esté deshabilitada (se puede encontrar más información dirigiéndose a la página de preguntas frecuentes de bots oficiales). Enviar
/setprivacya @BotFather para verificar el estado actual de esta configuración.
Cree un archivo de texto sin formato llamado .env con lo siguiente:
Establezca
TG_TOKENen el token de autenticación que recibió de@BotFather.Establezca
SUPERADMINScomo una matriz JSON que contiene su ID de telegrama numérico. Otros superadmins también se pueden agregar. Es importante que inserte la ID numérica y no una cadena.Establezca
LOG_CHAT(la identificación del chat donde el bot enviará todas las solicitudes incobrables recibidas de Telegram) y suLOG_ADMIN(la ID del usuario que recibirá errores de ejecución).
Su archivo .env ahora debería verse algo así:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
Requisitos:
Ejecutar make dev_polling . Docker tirará y construirá las imágenes requeridas, por lo que la primera vez que ejecuta este comando debería tomar un poco de tiempo. Después de eso, el bot debe estar en funcionamiento.
El código está montado en el contenedor BOT, por lo que puede hacer cambios y reiniciar el bot como lo haría normalmente.
El puerto predeterminado de Redis está montado al host, en caso de que desee depurar algo usando herramientas disponibles en el host.
El contenedor Redis está configurado para no persistir en los datos mientras está en modo Dev .
Hay varias formas de usar Docker para implementar en la producción.
Los archivos llamados docker-compose.*.yml se gitignizan, en caso de que sienta la necesidad de anular docker-compose.yml o escribir algo por completo.
El bot también admite los secretos de lectura de Docker (también puede funcionar con otras bóvedas). Verifique lua/config.lua para ver qué variables se pueden leer de los secretos.
Puede implementar Butler de grupo ejecutando:
make easy_deploy
Suponiendo que haya implementado Redis en, por ejemplo, staging ( docker stack deploy … o docker service create … ) y ha exportado las variables de entorno requeridas (como $TG_TOKEN ...), podría implementar el grupo Butler ejecutando:
docker stack deploy staging -c docker-compose.yml
Lista de paquetes requeridos:
libreadline-devredis-serverlua5.1liblua5.1devlibssl-devgitmakeunzipcurllibcurl4-gnutls-devTambién necesitará otros módulos LUA, que pueden (y debería ser) instalado a través de Lua Package Manager Luarocks.
Instalación
Puede instalar fácilmente Butler de grupo ejecutando los siguientes comandos:
# Tested on Ubuntu 16.04
$ wget https://raw.githubusercontent.com/group-butler/GroupButler/master/install.sh
$ bash install.sho
# 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.shAntes de comenzar el bot, debe comenzar el proceso Redis.
# Start Redis
$ sudo service redis-server start Para comenzar el bot, ejecute ./launch.sh . Para detener el bot, presione el control Ctrl + C dos veces.
También puede iniciar el bot con ./polling.lua , sin embargo, no se reiniciará automáticamente. También deberá encontrar otra forma de exportar las variables de entorno requeridas.
config.lua , en la tabla bot_settingscache_time.adminlist : la permanencia en segundos de la línea de administración en la memoria caché. El bot almacena en caché la línea de administración para evitar alcanzar los límites de telegramanotify_bug : si es true , el bot enviará un mensaje que notifica que se ha ocurrido un error al usuario actual, cuando se ejecuta un complemento y ocurre un errorlog_api_errors : si es true , el bot enviará en el LOG_CHAT todos los errores relevantes devueltos por una solicitud API hacia Telegramstream_commands : si true , cuando una actualización desencadena un complemento, la coincidencia se imprimirá en la consolaconfig.lua , por ejemploREDIS_DB : la base de datos Redis seleccionada (si está ejecutando Redis con la configuración predeterminada, las bases de datos disponibles son 16). La base de datos se seleccionará en cada inicio/recarga. Valor predeterminado: 0$ . No están documentados, mire los desencadenantes de plugins/admin.lua complemento para la lista completatrue , el bot continuará tratando de hacer coincidir el texto del mensaje con los desencadenantes faltantes de la tabla plugins$backupkickChatMember devuelve siempre una respuesta positiva si el user_id ha sido parte del grupo al menos una vez, no importa si el usuario no está en el grupo cuando usa este métodounbanChatMember devuelve siempre una respuesta positiva si el user_id ha sido parte del grupo al menos una vez, no importa si el usuario no está en el grupo o no está en la lista negra del grupo Todo se almacena en Redis, y la forma más rápida de editar su base de datos es a través de Redis CLI.
Puede encontrar una copia de seguridad de su base de datos Redis en /etc/redis/dump.rdb . El nombre de este archivo y la frecuencia de los guardados dependen de su archivo de configuración de Redis.
Si desea ayudar a traducir el bot, siga las instrucciones a continuación. Partes del grupo Butler Usar herramientas de GetText. Sin embargo, no usamos formato binario *.mo en aras de la simplicidad. El bot analiza los archivos *.po en el directorio locales en tiempo de ejecución.
Recomendamos contribuir con traducciones a nuestro proyecto Crowdin.
Nota para los desarrolladores : actualice el archivo de bote cada vez que cambie una cadena y no olvide usar la función i18n() para que sea traducible. Para actualizar el archivo de olla, deberá instalar getText y luego ejecutar:
make pot
Topkecleon, para el otouto original
Iman Daneshi y Tiago Danin, para Jack-Telegram-Bot
Cosmonawt, para su biblioteca Lua para la API BOT
Yago Pérez por su bote de telegrama
Los hombres del hombre lobo, por ayudar a la propagación del bot
Lucas Montuano, por ayudarme mucho en la depuración del bot
Todos los administradores de nuestros grupos de discusión sobre el grupo Butler
Todas las personas que informaron insectos y sugirieron cosas nuevas
Le Laide