O grupo Butler ajuda as pessoas a administrar seus grupos e inclui muitas outras ferramentas úteis.
O grupo Butler nasceu como um Otouto v3.1 ( @mokubot ), mas desde então foi transformado em um bot da administração.
@GroupButler_bot
master@GroupButler_ch . @GBReborn_bot
develop@GroupButler_beta . Primeiro de tudo, dê uma olhada nas suas configurações de bot
- Verifique se a privacidade está desativada (mais informações podem ser encontradas indo para a página Oficial de FAQ BOTS). Send
/setprivacypara @Botfather para verificar o status atual desta configuração.
Crie um arquivo de texto simples chamado .env com o seguinte:
Defina
TG_TOKENcom o token de autenticação que você recebeu do@BotFather.Defina
SUPERADMINScomo uma matriz JSON que contém seu ID de telegrama numérico. Outros superadminas também podem ser adicionados. É importante que você insira o ID numérico e não uma string.Defina
LOG_CHAT(o ID do bate -papo, onde o bot enviará todas as solicitações ruins recebidas do Telegram) e seuLOG_ADMIN(o ID do usuário que receberá erros de execução).
Seu arquivo .env agora deve parecer um pouco assim:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
Requisitos:
Run make dev_polling . O Docker puxará e construirá as imagens necessárias; portanto, a primeira vez que você executa esse comando deve demorar um pouco. Depois disso, o bot deve estar em funcionamento.
O código é montado no contêiner de bot, para que você possa fazer alterações e reiniciar o bot como normalmente faria.
A porta padrão do Redis é montada para hospedar, caso você queira depurar algo usando ferramentas disponíveis no host.
O contêiner Redis está definido para não persistir dados enquanto estiver no modo dev .
Há várias maneiras de usar o Docker para implantar na produção.
Os arquivos chamados docker-compose.*.yml são gitignorados, caso você sinta a necessidade de substituir docker-compose.yml ou escrever algo completamente diferente.
O bot também suporta segredos de leitura do Docker (pode trabalhar com outros cofres também). Verifique lua/config.lua para ver quais variáveis podem ser lidas a partir de segredos.
Você pode implantar o grupo Butler executando:
make easy_deploy
Supondo que você tenha implantado o Redis, por exemplo, staging ( docker stack deploy … ou docker service create … ) e exportou as variáveis de ambiente necessárias (como $TG_TOKEN …), você pode implantar o grupo Butler executando:
docker stack deploy staging -c docker-compose.yml
Lista de pacotes necessários:
libreadline-devredis-serverlua5.1liblua5.1devlibssl-devgitmakeunzipcurllibcurl4-gnutls-devVocê também precisará de outros módulos da Lua, que podem ser (e devem ser) instalados através dos Luarocks Lua Manager Luarocks.
Instalação
Você pode instalar facilmente o Butler do grupo executando os seguintes comandos:
# 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.shAntes de iniciar o bot, você deve iniciar o processo Redis.
# Start Redis
$ sudo service redis-server start Para iniciar o bot, execute ./launch.sh . Para parar o bot, pressione Controle Ctrl + C duas vezes.
Você também pode iniciar o bot com ./polling.lua , no entanto, ele não reiniciará automaticamente. Você também precisará encontrar outra maneira de exportar as variáveis de ambiente necessárias.
config.lua , na tabela bot_settingscache_time.adminlist : a permanência em segundos do adminList no cache. O BOT cache o administrador para evitar atingir limites de telegramanotify_bug : se true , o bot enviará uma mensagem que notifica que um bug ocorreu ao usuário atual, quando um plug -in é executado e um erro acontecelog_api_errors : se true , o bot enviará o LOG_CHAT com todos os erros relevantes retornados por uma solicitação de API para telegramastream_commands : se true , quando uma atualização aciona um plug -in, a partida será impressa no consoleconfig.lua , por exemploREDIS_DB : o banco de dados Redis selecionado (se você estiver executando o Redis com a configuração padrão, os bancos de dados disponíveis são 16). O banco de dados será selecionado em cada Iniciar/Recarregar. Padrão: 0$ . Eles não estão documentados, veja os gatilhos de plugins/admin.lua plugin para toda a listatrue , o bot continuará tentando corresponder ao texto da mensagem com os gatilhos ausentes da tabela de plugins$backupkickChatMember retorna sempre uma resposta positiva se o user_id fizer parte do grupo pelo menos uma vez, não importa se o usuário não estiver no grupo quando você usa esse métodounbanChatMember retorna sempre uma resposta positiva se o user_id fizer parte do grupo pelo menos uma vez, não importa se o usuário não estiver no grupo ou não estiver na lista negra do grupo Tudo é armazenado no Redis, e a maneira mais rápida de editar seu banco de dados é através da CLI Redis.
Você pode encontrar um backup do seu banco de dados Redis em /etc/redis/dump.rdb . O nome deste arquivo e a frequência de salvamentos dependem do seu arquivo de configuração Redis.
Se você quiser ajudar a traduzir o bot, siga as instruções abaixo. Partes do grupo Butler usam ferramentas do getText. No entanto, não usamos formato binário *.mo por uma questão de simplicidade. O bot analisa os arquivos *.po no diretório locales em tempo de execução.
Recomendamos traduções contribuindo para o nosso projeto Crowdin.
Nota para desenvolvedores : atualize o arquivo de maconha sempre que alterar uma string e não se esqueça de usar a função i18n() para que seja traduzível. Para atualizar o arquivo de maconha, você precisará instalar o getText e depois executar:
make pot
Topkecleon, para o Otouto original
Iman Daneshi e Tiago Danin, para Jack-Telegram-Bot
Cosmonawt, para sua biblioteca Lua para a API de bot
Yago Pérez para seu telegrama
Os lobisomem, por ajudar a propagação do bot
Lucas Montuano, por me ajudar muito na depuração do bot
Todos os administradores de nossos grupos de discussão sobre o grupo Butler
Todas as pessoas que relataram insetos e sugeriram coisas novas
Le Laide