Группа Батлер помогает людям управлять своими группами и включает в себя много других полезных инструментов.
Группа Батлер родился как Otouto v3.1 ( @mokubot ), но с тех пор он был превращен в административный бот.
@GroupButler_bot
master@GroupButler_ch . @GBReborn_bot
develop@GroupButler_beta . Прежде всего, посмотрите на настройки вашего бота
- Убедитесь, что конфиденциальность отключена (больше информации можно найти, отправляясь на официальную страницу часто задаваемых вопросов Bots). Отправить
/setprivacyв @botfather, чтобы проверить текущее состояние этого настройки.
Создайте простой текстовый файл с именем .env со следующим:
Установите
TG_TOKENв токен аутентификации, который вы получили от@BotFather.Установите
SUPERADMINSкак массив JSON, содержащий ваш численный идентификатор телеграммы. Другие суперузоймоны тоже могут быть добавлены. Важно, чтобы вы вставляли числовой идентификатор, а не строку.Установите
LOG_CHAT(идентификатор чата, где бот отправит все плохие запросы, полученные от Telegram) и вашLOG_ADMIN(идентификатор пользователя, который получит ошибки выполнения).
Ваш файл .env теперь должен выглядеть несколько похоже на это:
TG_TOKEN=123456789:ABCDefGhw3gUmZOq36-D_46_AMwGBsfefbcQ
SUPERADMINS=[12345678]
LOG_CHAT=12345678
LOG_ADMIN=12345678
Требования:
Запустите make dev_polling . Docker вытащит и построит требуемые изображения, поэтому первый раз, когда вы запустите эту команду, займет немного времени. После этого бот должен быть запущен и запущен.
Код установлен на контейнере бота, поэтому вы можете вносить изменения и перезапустить бот, как обычно.
Порт по умолчанию Redis монтирован на хост, на случай, если вы хотите отладить что -то, используя инструменты, доступные на хосте.
Контейнер Redis устанавливается, чтобы не сохранять данные, находясь в режиме DEV .
Есть несколько способов использовать Docker для развертывания в производство.
Файлы с именем docker-compose.*.yml заправлены, на случай, если вы чувствуете необходимость переопределить docker-compose.yml или написать что-то еще.
Бот также поддерживает чтение секретов Docker (может работать и с другими хранилищами). Проверьте lua/config.lua чтобы увидеть, какие переменные можно прочитать из секретов.
Вы можете развернуть групповой дворецкий, работая:
make easy_deploy
Предполагая, что вы развернули Redis, например, на 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.
Установка
Вы можете легко установить Group Butler, выполнив следующие команды:
# 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 . Чтобы остановить бот, нажмите управление CTRL + C дважды.
Вы также можете запустить бот с ./polling.lua , однако он не будет перезагружаться автоматически. Вам также нужно будет найти другой способ экспортировать необходимые переменные среды.
config.lua , в таблице bot_settingscache_time.adminlist : постоянство в секундах AdminList в кэше. Бот кэширует AdminList, чтобы избежать достижения лимитов телеграммыnotify_bug : если true , бот отправит сообщение, которое уведомит, что ошибка произошла для текущего пользователя, когда плагин будет выполнен и возникает ошибкаlog_api_errors : если true , бот отправит в LOG_CHAT все соответствующие ошибки, возвращаемые запросом API в направлении телеграммыstream_commands : Если true , когда обновление запускает плагин, совпадение будет напечатано на консолиconfig.lua , например,REDIS_DB : выбранная база данных Redis (если вы запускаете Redis с конфигурацией по умолчанию, доступные базы данных - 16). База данных будет выбрана при каждом запуска/перезагрузке. По умолчанию: 0$ . Они не задокументированы, посмотрите на триггеры plugins/admin.lua для всего спискаtrue , бот будет продолжать пытаться сопоставить текст сообщения с отсутствующими триггерами таблицы plugins$backupkickChatMember всегда возвращает положительный ответ, если user_id был частью группы хотя бы один раз, не имеет значения, если пользователь не в группе, когда вы используете этот методunbanChatMember всегда возвращает положительный ответ, если user_id был частью группы хотя бы один раз, не имеет значения, не в группе или нет в черном списке группы Все хранится на Redis, и самый быстрый способ отредактировать вашу базу данных - через CLI Redis.
Вы можете найти резервную копию вашей базы данных Redis в /etc/redis/dump.rdb . Имя этого файла и частота сохранений зависят от вашего файла конфигурации Redis.
Если вы хотите помочь перевести бота, следуйте инструкциям ниже. Части группового дворецкого используют инструменты из getText. Однако мы не используем двоичный формат *.mo ради простоты. Бот анализирует файлы *.po в каталоге locales во время выполнения.
Мы рекомендуем внести переводы в наш проект Crowdin.
Примечание для разработчиков : обновляйте файл POT всякий раз, когда вы меняете строку, и не забудьте использовать функцию i18n() , чтобы она переводилась. Чтобы обновить файл горшка, вам нужно будет установить getText, а затем запустить:
make pot
Topkecleon, для оригинального Otouto
Иман Данеши и Тиаго Данин, для Джек-Телеграма-бот
Cosmonawt, для его библиотеки Lua для бота API
Яго Перес для его телеграммы
Ребята из оборотня, для помощи в распространении бота
Лукас Монтуано, за то, что он очень помог мне в отладке бота
Все администраторы наших дискуссионных групп о групповом дворецком
Все люди, которые сообщили об ошибках и предложили новые вещи
Le Laide