Skip to content

mrgnl044/mrgnl_flea_tg_bot

Repository files navigation

Телеграм‑бот «FGP Mixed Baraholka»

Бот для сообщества «Fixed Gear Perm» помогает пользователям создавать объявления (велотовары, обмен, услуги и события), отправлять их на модерацию и публиковать в канале. Автор может пометить объявление как «Продано» через кнопку.

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

  • Создание объявления: до 3 фото, заголовок, описание, цена
  • Категории: #продам, #куплю, #обмен, #аренда, #даром, #услуги, #гонка, #мероприятие
  • Модерация в отдельном чате администраторов (инлайн‑кнопки «Одобрить/Отклонить»)
  • Публикация одобренных объявлений в канале сообщества
  • Маркировка опубликованного объявления как «Продано»
  • Удобные инлайн‑кнопки и сообщения на русском

📋 Требования

  • Python 3.10+
  • Зависимости: aiogram 3.2+, python‑dotenv 1.0+
  • SQLite (файл БД: bot_data.db, создаётся автоматически)

🔧 Установка

  1. Клонируйте репозиторий
git clone https://github.com/yourusername/fixed-gear-perm-bot.git
cd fixed-gear-perm-bot
  1. Установите зависимости
pip install -r requirements.txt
  1. Создайте файл .env и укажите переменные
BOT_TOKEN=123456:ABCDEF...          # Токен бота от @BotFather
MODERATION_CHAT_ID=-1001234567890   # ID чата модерации (добавьте бота админом)
CHANNEL_ID=-1009876543210           # ID канала публикаций (добавьте бота админом)

Подсказка: numeric ID чатов/каналов можно узнать через @userinfobot. Для каналов и супергрупп обычно начинается с -100.

▶️ Запуск (локально)

python main.py

База bot_data.db будет создана в корне проекта автоматически.

🐳 Запуск в Docker

Вариант 1 — docker compose (предпочтительно):

docker compose up -d

Убедитесь, что рядом с docker-compose.yml лежит корректный .env.

Вариант 2 — docker run:

docker build -t fgp-bot .
docker run -d --name fgp-bot --restart always --env-file .env fgp-bot

По умолчанию БД хранится внутри контейнера. Чтобы хранить БД на хосте, смонтируйте файл:

# docker-compose.yml (пример)
services:
  bot:
    volumes:
      - ./.env:/app/.env
      - ./bot_data.db:/app/bot_data.db

🤖 Настройка в Telegram

  1. Создайте бота через @BotFather и возьмите токен → BOT_TOKEN
  2. Создайте приватную группу модерации → добавьте бота админом → возьмите ID → MODERATION_CHAT_ID
  3. Создайте канал публикаций → добавьте бота админом → возьмите ID → CHANNEL_ID

💡 Пользовательские сценарии

— Для пользователя:

  1. Нажать «Создать объявление»
  2. Выбрать категорию
  3. Загрузить до 3 фото
  4. Ввести заголовок (≤ 50 символов)
  5. Ввести описание (≤ 500 символов)
  6. Указать цену числом или «Даром»
  7. Проверить предпросмотр и отправить на модерацию

— Для модератора:

  1. Получить карточку в чате модерации
  2. Нажать «Одобрить» или «Отклонить»
  3. При одобрении бот публикует пост в канале и присылает автору кнопку «Продано»

📱 Шаблон объявления (в канале)

#продам
🚲 <Заголовок>

📌 <Короткое описание>
💰 Цена: <Цена>
📞 Контакт: <@username или имя>

Создать объяву: @fgp_mrktbot

<фото>

🛠 Администрирование БД (опционально)

Для отладки и просмотра содержимого SQLite есть утилита:

python db_manager.py

Инструмент интерактивный: показывает таблицы, статистику и позволяет очищать данные.

📝 Лицензия

MIT

About

Flea market telegram bot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors