Skip to content

i-redbyte/androidkrdbot

Repository files navigation

🤖 Telegram-бот для сообщества Android Krasnodar

androidkrdbot — это Telegram-бот-модератор для Android Краснодар сообщества.
Он проверяет новых участников группы с помощью простых (но коварных) вопросов, и удаляет тех, кто не прошёл проверку.

Создан в духе строгой, но ироничной модерации.
Во главе — товарищ Берия. Он всё видит. Он всё фиксирует. Он не даст спамерам и случайным людям войти без боя.


🧠 Возможности

  • ✅ Проверка новых участников по контрольному вопросу.
  • 🛠 Возможность перезагрузки вопросов без перезапуска бота.
  • 🔒 Только администраторы могут управлять ботом.
  • 📥 Ответы обрабатываются внутри чата.
  • ⏳ Таймер — если пользователь не ответил, он будет удалён.

⚙️ Установка

Требуется: JDK 17+, Gradle, Telegram Bot Token

  1. Клонируй репозиторий:

    git clone https://github.com/i-redbyte/androidkrdbot.git
    cd androidkrdbot
  2. Создай .env в корне проекта:

    TELEGRAM_BOT_TOKEN=123456789:ABCDEFyourTokenHere
  3. Убедись, что у тебя есть файл с вопросами:
    src/main/resources/questions.json

    Пример:

    [
      {
        "text": "Назови любой цвет радуги.",
        "correctAnswers": ["красный", "red", "orange", "оранжевый"]
      }
    ]
  4. Запусти бота:

    ./gradlew run

🔐 Настройка Telegram

Чтобы бот работал в группе:

  1. Добавь бота в группу.
  2. Назначь его администратором.
  3. Через @BotFather:
    • Открой настройки бота
    • Group PrivacyTurn off (обязательно!)

💬 Команды

Команда Описание
/startVerification Включить режим проверки новичков
/stopVerification Выключить режим
/verificationStatus Узнать статус режима
/reload_questions Перезагрузить файл с вопросами

🧪 Поведение

  1. При включённом режиме проверки:
    • Новый участник получает вопрос в чате.
    • Если он отвечает правильно — остаётся.
    • Если неправильно или не отвечает — удаляется.
  2. Ответы принимаются в чате, а не в ЛС.
  3. Вопросы выбираются случайно из файла questions.json.

📡 Логика команд доступна только администраторам

Если неадмин попытается управлять ботом, он получит предупреждение, что:

🚫 Только администрация может отдавать приказы товарищу Берии. Ваше поведение записано в досье.


🤝 Contributing

Буду очень рад, если вы захотите поучаствовать в развитии этого проекта!

Если вы нашли баг, хотите внести улучшение, добавить новые вопросы или поправить структуру — не стесняйтесь открыть pull request или создать issue.
Проект открыт для развития и будет только лучше с вашей помощью.

Что можно улучшить:

  • Добавить новые вопросы в questions.json
  • Расширить функциональность (например, логирование, отчёты, фильтры)
  • Обновить документацию и тексты
  • Провести рефакторинг или тестирование

Требования к изменениям:

Пожалуйста, придерживайтесь принципов, уже использованных в проекте:

  • Чистая архитектура:
    • data/ — репозитории
    • domain/ — use cases, модели, состояние
    • presentation/ — Telegram-интеграция и запуск
  • Kotlin DSL + Gradle
  • Логическая изоляция слоёв
  • Минимум магии, максимум читаемости
  • Вопросы хранятся в resources/questions.json

🙌 Спасибо всем, кто захочет внести вклад!


📄 Лицензия

Этот проект распространяется под лицензией Apache License 2.0.
Вы можете свободно использовать, изменять и распространять код, соблюдая условия этой лицензии.

About

Телеграм бот для сообщества "Android Krasnodar" https://t.me/androidkrd

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published