Skip to content

Kartoshka Bot - A friendly Telegram bot for meme moderation and publication with support for individual and collective decision-making.

License

Notifications You must be signed in to change notification settings

kryuchenko/kartoshka_bot

Repository files navigation

Kartoshka Bot (Бот-Картошка) 🥔

О боте

Kartoshka Bot — это дружелюбный Telegram-бот для модерации и публикации мемов в вашем чате. Он создан, чтобы сделать процесс публикации мемов простым, безопасным и веселым!

Бот поддерживает два режима работы:

  • Обычный режим (Единоличный Узурпатор): решения о публикации мемов принимает единоличный модератор.
  • Криптоселектархическая олигархия: решения принимаются коллективно группой тайных модераторов (криптоселектархов), и для публикации или отклонения мема требуется определённое количество голосов.

Основные возможности

  • 📝 Возможность публикации текстовых, фото, видео и GIF-мемов
  • 🎭 Два режима публикации через удобные кнопки:
    • 👤 От своего имени (с указанием автора)
    • 🥔 Анонимно (от имени "Картошки")
  • 👥 Система модерации контента:
    • Обычный режим: модерация осуществляется единоличным модератором
    • Криптоселектархическая олигархия: решения принимаются коллективно группой криптоселектархов
  • ⚡ Система срочной публикации:
    • Криптоселектархи могут использовать кнопку "Срочно" для важных мемов
    • Если 51% и более от требуемого числа голосов "Срочно" - мем публикуется немедленно
    • Например: при требуемых 3 голосах нужно минимум 2 срочных (3 × 0.51 ≈ 1.53, округляется вверх до 2)
    • При недостаточном количестве срочных голосов мем публикуется в общей очереди
  • ✅ Кнопки модерации для редакторов: Одобр. / Срочно / Откл.
  • ✨ Автоматическое уведомление авторов о статусе их публикаций
  • 📢 Динамическое приветственное сообщение, которое меняется в зависимости от текущего режима бота

Как установить и настроить бота

1. Развёртывание на сервере

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

    git clone git@github.com:kryuchenko/kartoshka_bot.git
    cd kartoshka_bot
  2. Создайте файл .env:

    • Пример содержимого:
      BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
      EDITOR_IDS=123456789
      PUBLISH_CHAT_ID=-100123456789
      BOT_NAME="Картошка Бот"
      POST_FREQUENCY_MINUTES=180
      CRYPTOSELECTARCHY=true
      VOTES_TO_APPROVE=3
      VOTES_TO_REJECT=3
  3. Запустите автоматический скрипт установки:

    sudo ./setup_kartoshka_service.sh

    Скрипт автоматически:

    • Установит виртуальное окружение (venv) и все зависимости из requirements.txt.
    • Настроит systemd для автоматического управления ботом.
    • Запустит и включит бота для автозапуска при старте системы.
  4. Проверьте статус службы:

    sudo systemctl status kartoshka_bot

    Вы должны увидеть, что служба активна.


2. Ручной запуск (для отладки)

  1. Активируйте виртуальное окружение:

    source venv/bin/activate
  2. Запустите бота вручную:

    python3 kartoshka_bot.py
  3. Для остановки нажмите Ctrl+C.


Управление ботом через systemd

  • Перезапустить бота:

    sudo systemctl restart kartoshka_bot
  • Остановить бота:

    sudo systemctl stop kartoshka_bot
  • Отключить автозапуск:

    sudo systemctl disable kartoshka_bot

Преимущества использования

  • 🛡️ Защита чата от нежелательного контента
  • 🎯 Централизованная модерация материалов
  • 💫 Возможность анонимной публикации
  • 👥 Выбор между единоличной и коллективной модерацией
  • 📨 Автоматические уведомления
  • 🤝 Удобный интерфейс для модераторов с кнопками для голосования
  • 🗳️ Возможность настроить количество голосов для принятия решения в режиме криптоселектархии

С любовью к мемам и картошке! 🥔✨

About

Kartoshka Bot - A friendly Telegram bot for meme moderation and publication with support for individual and collective decision-making.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published