Skip to content

Malvar9/tg-bot-users

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Anniversary Users Bot 🤖

Бот для автоматического отслеживания и поздравления юбилейных пользователей. При вступлении в группу юбилейного участника бот присылает в группу администраторов уведомление с именем, ником, id пользователя, юбилейным номером и датой и временем вступления, а также кнопкой "Поздравить" и "Отменить" для автоматического поздравления юбилейного участника или отмены, в случае вступления в группу бота/модератора. В файле .env в переменной GRANT_NUMBER (пример в .env.dist), необходимо установить число, кратно которому будут определятся пользователи (при 500 - 500, 1000 и т.д.), это глобальная настройка для всех групп, если необходимо для какой-то группы выставить индивидуальные значения, то необходимо через приватный канал бота, для этой группы настроить соответствующую таблицу. Для доступа к конфигурированию бота через приватный канал, в файле .env (пример в .env.dist) необходимо прописать в переменной ADMINS, прописать ID пользователей Телеграмм, которые будут иметь соответствующие права.

Особенности

  • Бот, в автоматическом режиме проверяет вступившего пользователя на "юбилейные" места в группе, и посылает оповещения в группу администраторов.
  • Все новые вступившие пользователи проверяются по базе данных, что бы исключить повторное поздравление.
  • Управление ботов осуществляется в группе администраторов.
  • Возможность "тонкой" настройки юбилейных мест. К примеру, каждый: 50, 100, 200 ... и так далее.
  • Сохранение данных о двух последующих пользователях.
  • Возможность настройки групп администраторов.
  • База данных на всех поздравленных пользователей
  • Автоматический перезапуск бота в случае возникновения ошибки (Docker)

Доступные команды

В группе модераторов

  • /проверка - команда проверяет, есть ли в очереди на поздравление пользователи из модерируемых групп.
  • /восстановить - команда предназначена для восстановления кнопок для поздравления, на случай если уведомление с кнопками поздравлениями удалили, или нажали кнопку отмены.
  • /списокЮбилейный - выводит историю о юбилейных пользователях

В приватном чате бота(админка)

Настройка бота производится в приватном чате, команды доступные в меню:

*/start - Позволяет проверить запушен ли бот и есть ли у пользователя права на конфигурирование */configure - Вызывает главное меню

Главное меню:

В главном меню есть доступ для перехода к конфигурированию 2 таблиц:

  1. Настройка таблицы групп:
  • Показать таблицу - выводит таблицу с данными из БД
  • Добавить строку - позволяет добавить новую в БД, на одну группу модераторов может быть добавлено несколько групп пользователей, при этом, если ввести id группы модераторов, запись с которой уже существует, то бот просто добавит к старой записи новые группы пользователей, при этом бот уберет дубликаты id пользовательских групп, если их введут повторно.
  • Удалить строку - удаляет строку из БД по ID записи в БД
  • Главное меню - возвращает в главное меню
  1. Настройка таблицы с юбилейными номерами:
  • Показать таблицу - выводит таблицу с данными из БД
  • Добавить строку - позволяет добавить новую в БД, на одну группу пользователей может быть добавлено несколько номеров, при этом, если ввести уже id группы пользователей, запись с которой уже существует, то бот просто добавит к старой записи, новые номера, при этом бот уберет дубликаты номеров а также отсортиует их по возрастанию.
  • Удалить строку - удаляет строку из БД по ID записи в БД
  • Главное меню - возвращает в главное меню

Requirements

  • aiogram 2.21
  • aioredis 2.0
  • environs 9.0
  • aiosqlite 0.17
  • python-dotenv 0.20

Подготовка и запуск

  1. Создайте своего бота с помощью бота @BotFather и сохраните свой токен.
  2. Необходимо в @BotFather отключить privacy mode.
  3. Добавьте бота во все чаты, в которых необходимо отслеживать пользователей(боту необходимо выдать права администратора)
  4. Создать файл .env в директории программы и заполнить его согласно .env.dist
  5. Вы можете запустить бота локально, установив все зависимости командой: pip install -r requirements.txt и запустив bot.py
  6. Вы так же можете запустить бота из Docker контейнера, для этого перейдите в терминале, в папку с ботом и выполните команду: docker-compose up
  7. После чего можете переходить к настройкам админки, для того чтобы бот начал работать в группах в которые он был добавлен, необходимо внести соответствие ID этих групп в таблицу, через приватный канал бота.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • Dockerfile 0.4%