Очередной результат Вайбкодинга - Чур-бот :)

Очередной результат Вайбкодинга - Чур-бот :)

Так получилось, что администрирую группу в телеграмме в одной из новостроек.
Т.к. спамеров в телеге, мягко сказать, много, пришлось сделать доступ по заявкам.
Сначала заявок было несколько штук в неделю, разгребал руками, но в последнее время спамеры прямо разбушевались. В день бывает до 20-30 заявок.
Нужно зайти в профиль каждого подавшего заявку, задать контрольные вопросы. Вроде времени и не много, но его жалко :)

Пришлось навайбкодить бота :)
Заняло всё, примерно 5 часов чистого времени. Большая часть ушла на тестирование :)
В конфигах можно описывать списки контрольных вопросов. Например у меня это запрос номера квартиры и этажа где она находится.
Контроль идёт по корректности номера квартиры и её расположения на этаже.

Выдержки из README.md

Почему Чур-Бот?

Мифология: Славянская.
Легенда: Чур — древнее божество границ, межи и охраны собственности. Подобно тому как Чур охранял границы предков, этот бот охраняет границы вашей Telegram-группы.

Описание

Чур-Бот позволяет автоматизировать процесс допуска новых участников в Telegram-группу на основе их ответов на вопросы.

Функционал

  • Страж: Перехватывает запросы на вступление (chat_join_request).
  • Допрос: Задает настроенные вопросы в личных сообщениях.
  • Суд: Одобряет заявку, если ответы верны; иначе отклоняет.
  • Тайм-аут: Автоматически отклоняет заявки, если пользователь молчит слишком долго.

Установка и Обновление (Linux)

  1. Запуск скрипта установки:

    bash
    chmod +x setup.sh
    ./setup.sh
    

    Скрипт выполнит все необходимые действия:

    • Создаст пользователя chur_bot.
    • Создаст виртуальное окружение и установит зависимости.
    • Настроит и запустит службу systemd.
  2. Настройка:

    • Скопируйте config.yaml.example в config.yaml.
    • Отредактируйте config.yaml: укажите токен, ID админов и вопросы.
    • Перезапустите службу для применения настроек: sudo systemctl restart chur_bot
  3. Настройка в Telegram:

    • Зайдите в настройки группы -> Тип группы / Участники.
    • Включите "Одобрять новых участников" (Approve New Members).
    • Добавьте бота в группу и сделайте его Администратором с правом "Пригласительные ссылки".

Обновление

Для обновления кода бота и зависимостей:

bash
chmod +x update.sh
./update.sh

Управление службой

  • Статус: sudo systemctl status chur_bot
  • Логи: journalctl -u chur_bot -f
  • Перезапуск: sudo systemctl restart chur_bot

Команды Администратора

  • /stats: Показать статистику заявок (ожидающие, одобренные, отклоненные).
  • /logs: Показать последние 10 записей лога прямо в Telegram.
  • Важно: Эти команды работают только для пользователей, указанных в admin_ids в config.yaml.

Вспомогательные команды

  • /id: Отправляет текущий ID чата и ID пользователя. Используйте это для заполнения config.yaml.

Просмотр логов

Бот пишет логи в консоль и в файл bot.log.

  • Консоль: Просто смотрите в терминал, где запущен бот.
  • Файл: tail -f bot.log или откройте bot.log в редакторе.
  • Команда Telegram: Отправьте /logs боту в личку (только для Админов).

Поделиться статьей