Телеграм бот написан на языке GoLang.
База данных построена на SQLite3
-
Бот отслеживает вход юбилейных пользователей в группы. Оповещение приходит связанным группам модераторов. Копия в админку. Возможность поздравить юбилейного пользователя ответным сообщением, есть только у админки. Но и из любой группы модераторов можно вызвать список последних юбилейных пользователей и поздравить пользователя. (Первое поздравление из админки сделано в целях исключения дублирования нажатия "поздравить" из админки и связанной группы модераторов.)
-
При совпадении ID пользователя в списке юбилейных пользователей в админку приходит уведомление.
-
Список трех последних юбилейных пользователей можно вызвать из меню администратора.
-
Список всех юбилейных пользователей можно вызвать из меню администратора.
-
Список всех команд можно вызвать из меню администратора. Доступно прямое копирование команды нажатием на неё.
-
В меню встроена кнопка "Памятка модераторам", выводит текст в виде сообщения. Текст задается перед запуском в файле конфигурации.
-
Функция фильтрации содержания нецензурных слов в тесте сообщений в группах пользователей.
-
Функция пополнения списка нецензурных слов. Доступно в только в группах модераторов и админке.
-
Функция передачи ID и названия группы автоматическим сообщением в админку.
-
Реализовано несколько вариантов добавления групп модераторов: 1 - Запрос из любой группы с ботом командой "", запрос приходит в админку, далее принимается решение одобрить или нет. 2 - Примой командой с номером группы. Доступно из админки. 3 - При связывании групп модераторов и пользователей, если группа модераторов не найдена в списке доступных. (функция добавления группы модераторов без связывания с группами пользователей реализована с целью дальнейшего расширения функционала бота.)
-
Функция просмотра всех групп модераторов и пользователей.
-
Функция фильтрации символов в словах сообщений. Сделано с целью предотвращения маскировки нецензурных слов в сообщениях. Пополнить или изменить список символов можно в файле конфигурации.
-
На большинство административных сообщений действует автоматическая очистка.
- меню (Вызов только из групп модераторов и админки.)
- chatinfo (Вызов из любой группы, где есть бот администратор. Присылает сообщение с ID и названием группы в админку.)
- moder (Вызов из любой группы, где есть бот. Присылает запрос в админку на добавление группы в список модераторов. Действует ограничение по времени 60 секунд.)
- add-moder-user-link (Вызов только из админки. Связывает группу модераторов и пользователей для персонализации оповещений о новых пользователях и нецензурных слов в группе.)
- addmoderatorgroup + ID группы (Добавление группы модераторов по ID из админки.)
- Мат + слово (Слово будет добавлено в базу, работает только в группах администраторов.)
ПАРАМЕТР: | ОПИСАНИЕ: |
---|---|
TG-BOT-TOKEN | Токен для вашего бота, полученный от BotFather |
MULTIPLICITY | Кратность выявления новых пользователей |
TG-BOT-LOG-LEVEL | Уровень логирования приложения. panic , fatal , error , warning , info , debug , trace |
MODERATORS-GROUP | ID группы админки |
MSG-OF-BAD-WORDS-TO-USER-CHAT | Текст который будет выводиться в группу пользователей при обнаружении нецензурных слов |
MSG-TO-CHAT-IF-NEW-USER | Текст приветствия в группу при вступлении в группу нового пользователя |
MSG-MODERATOR-MEMBER | Текст памятка модераторам. Выводится при нажатии на кнопку Памятка модераторам |
MSG-TRIM-SYMBOL | Список символов для удаления из строк при проверке слов в сообщениях |
Клонировать репозиторий, обновить пакеты командой go mod tidy
, убедиться что все пакеты скачаны и установлены.
Запуск приложения из папки cmd - go run main.go
- Команда "make image" создает образ приложения.
- Вам нужно создать
volume
под вашу базу данных командой "docker create volumetgbot_data
"
- При первом запуске контейнера вам нужно указать путь к вашей базе данных (
db/path
) и путь к файлу конфигурации, аргументами: docker run -vdb/path
:/data -venv-path
:/etc/tgbot skillbot:latest
- Последующие запуски этого контейнера (а так-же последующих с таким же адресом базы)
docker start name
, гдеname
это имя контейнера либо его ID, сохранят базу данных предыдущих сеансов работы контейнера.
docker create volume tgbot_data
make image
docker run -v /home/user/tgbot_data/:/data -v /home/user/go-projects/telegram_bot_skb/etc/tgbot:/etc/tgbot skillbot:latest
docker stop name
docker start name