domovoy_bot/ДОСКА_ОБЪЯВЛЕНИЙ.md
Admin ba4676b0af v1.0 MVP - Инициализация проекта 🏠
 Регистрация и верификация жильцов
 Рейтинг активности (уровни)
 Детект шпионов (Score 0-100)
 Анти-мат система (3 предупреждения → бан)
 Админ-панель с рассылкой
 Учёт квартир (несколько жильцов)
 Телефоны экстренных служб и мастеров
 Еженедельный экспорт JSON
 Прокси (socks5) для обхода РКН

Бекап: backups/versions/v1.0_mvp_2026-02-26/

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-27 10:54:16 +00:00

12 KiB
Raw Blame History

📢 Доска объявлений (соседская) — v1.5

Версия: v1.5 Дата: 26 февраля 2026 г. Статус: Реализовано


📋 Описание

Соседская доска объявлений — жильцы могут размещать объявления о продаже, покупке, отдаче вещей, поиске потерянного, услугах. Объявления публикуются в чате, хранятся 7 дней, затем автоматически удаляются.


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

  • 6 категорий объявлений (продам, куплю, отдам, потеряно, нашлось, услуга)
  • Пошаговое создание (категория → название → описание → цена → телефон)
  • Публикация в общем чате
  • Авто-удаление через 7 дней
  • Просмотр всех активных объявлений
  • Удаление своих объявлений
  • Только для верифицированных жильцов
  • Модерация для админов

📱 Команды

Для всех верифицированных:

Команда Описание Пример
/ad или /объявление Создать объявление /ad
/ads или /доска Показать все объявления /ads
/ad_del <ID> Удалить своё объявление /ad_del 5

Для админов:

Команда Описание Пример
/ads_moderate Объявления на модерации /ads_moderate
/ad_approve <ID> Подтвердить объявление /ad_approve 5

🎯 Категории объявлений

Категория Emoji Когда использовать
1 💰 Продам 💰 Продажа вещей, мебели, техники
2 🛒 Куплю 🛒 Поиск вещей для покупки
3 🎁 Отдам 🎁 Отдам даром, бесплатно
4 😿 Потеряно 😿 Потеряны вещи, животные
5 😺 Нашлось 😺 Нашлись вещи, животные
6 🔧 Услуга 🔧 Предложение услуг

🎯 Сценарии использования

Сценарий 1: Создание объявления (продам)

1. Жилец пишет:

/ad

2. Бот показывает меню:

📢 Создание объявления

Выберите категорию:

1⃣ 💰 Продам
2⃣ 🛒 Куплю
3⃣ 🎁 Отдам
4⃣ 😿 Потеряно
5⃣ 😺 Нашлось
6⃣ 🔧 Услуга

Или отправьте номер категории (1-6):
[кнопки с категориями]

3. Жилец нажимает 💰 Продам или отправляет 1

4. Бот просит название:

✅ Категория: 💰 Продам

Теперь отправьте название объявления:
Например: "Продам диван"

5. Жилец отправляет:

Продам диван угловой

6. Бот просит описание:

✅ Название: Продам диван угловой

Теперь отправьте описание:
Например: "Диван угловой, состояние хорошее, самовывоз"

7. Жилец отправляет:

Диван угловой, 2х спальный, состояние хорошее.
Есть небольшие следы использования.
Самовывоз с 5 этажа.

8. Бот просит цену:

✅ Описание принято

Укажите цену (в рублях) или отправьте "0" если бесплатно:
Например: 5000

9. Жилец отправляет:

5000

10. Бот просит телефон:

✅ Цена: 5000

Укажите контактный телефон или отправьте "пропустить":
Например: +7 (999) 123-45-67

11. Жилец отправляет:

+7 (999) 123-45-67

12. Бот публикует объявление в чат:

💰 Продам: Продам диван угловой

📝 Диван угловой, 2х спальный, состояние хорошее.
Есть небольшие следы использования.
Самовывоз с 5 этажа.

💰 Цена: 5000 ₽
📞 Телефон: +7 (999) 123-45-67

⏳ Действует до: 05.03.2026
🔖 ID: 1

13. Жилец получает подтверждение:

✅ Объявление опубликовано!

ID: 1
Действует до: 05.03.2026

Для просмотра: /ads

Сценарий 2: Просмотр всех объявлений

Жилец:

/ads

Бот:

📢 Доска объявлений

1. 💰 Продам: Продам диван угловой
   └─ Цена: 5000 ₽
   └─ Действует до: 05.03.2026
   └─ ID: 1

2. 🎁 Отдам: Отдам котёнка
   └─ Цена: Бесплатно
   └─ Действует до: 04.03.2026
   └─ ID: 2

3. 🔧 Услуга: Ремонт сантехники
   └─ Цена: 1000 ₽
   └─ Действует до: 03.03.2026
   └─ ID: 3

💡 Для создания: /ad

Сценарий 3: Удаление своего объявления

Жилец:

/ad_del 1

Бот:

✅ Объявление "Продам диван угловой" удалено

Объявление удаляется из чата и базы.


Сценарий 4: Объявление с модерацией

Если включена модерация:

  1. Объявление создаётся но не публикуется
  2. Админ получает уведомление
  3. Админ: /ads_moderate — показывает неподтверждённые
  4. Админ: /ad_approve 1 — подтверждает
  5. Объявление публикуется в чат

🗄️ База данных

Таблица ads:

CREATE TABLE ads (
    ad_id INTEGER PRIMARY KEY AUTOINCREMENT,
    user_id BIGINT NOT NULL,
    category TEXT NOT NULL,         -- sell, buy, give, lost, found, service
    title TEXT NOT NULL,
    description TEXT,
    price INTEGER,                  -- Цена в рублях
    phone TEXT,                     -- Контактный телефон
    message_id BIGINT,              -- ID сообщения в чате
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    expires_at TIMESTAMP,           -- Дата истечения (через 7 дней)
    is_active BOOLEAN DEFAULT 1,
    is_moderated BOOLEAN DEFAULT 0, -- Проверено админом
    FOREIGN KEY (user_id) REFERENCES users(user_id)
)

Индексы:

  • ix_ads_category — по категории
  • ix_ads_active — по статусу
  • ix_ads_created_at — по дате создания

🧪 Тестирование

Чек-лист проверки:

1. Создание объявления

# С верифицированного аккаунта:
/ad
# Выбрать категорию, название, описание, цену, телефон
  • Меню категорий отображается
  • Пошаговый ввод работает
  • Объявление опубликовано в чат
  • Сохранено в БД

2. Проверка верификации

# С неверифицированного аккаунта:
/ad
  • Бот отвечает "Только для верифицированных"

3. Просмотр объявлений

/ads
  • Объявления отображаются
  • Emoji правильные
  • Срок действия указан

4. Удаление объявления

# Админ или автор:
/ad_del 1
  • Объявление удалено
  • Сообщение в чате удалено

5. Авто-удаление

# Подождать 7 дней (или изменить expires_at в БД)
  • Объявление деактивировано автоматически

📁 Изменённые файлы

Файл Изменения
database/models.py Модель Ad
database/migrate_add_ads.py Миграция БД
handlers/ads.py Хендлеры объявлений
keyboards/inline.py Клавиатуры для объявлений
services/scheduler.py Авто-удаление
handlers/__init__.py Импорт ads_router
main.py Регистрация ads_router

🚀 Как использовать

Для жильца:

  1. Создать объявление:

    /ad
    

    Далее следуй инструкциям бота.

  2. Посмотреть все объявления:

    /ads
    
  3. Удалить своё объявление:

    /ad_del 1
    

Для админа:

  1. Проверить объявления на модерации:

    /ads_moderate
    
  2. Подтвердить объявление:

    /ad_approve 1
    
  3. Удалить любое объявление:

    /ad_del 1
    

💡 Советы

Правила размещения:

Разрешено:

  • Продажа личных вещей
  • Отдача даром
  • Поиск потерянного
  • Предложение услуг соседям

Запрещено:

  • Реклама магазинов
  • Спам, мошенничество
  • Недвижимость (не относится к дому)
  • Услуги сторонних компаний

Срок действия:

  • 7 дней — стандартный срок
  • После истечения — авто-удаление
  • Можно создать новое объявление

Цена:

  • Указывайте реальную цену
  • "0" или "бесплатно" — для бесплатных вещей
  • "Договорная" — в описании

🔧 Отладка

Посмотреть объявления в БД:

cd /home/matrixhasyou/domovoy_bot
source venv/bin/activate
sqlite3 database/domovoy.db

SELECT ad_id, category, title, price, created_at, expires_at, is_active
FROM ads
ORDER BY created_at DESC LIMIT 10;

Логи:

tail -f logs/bot.log | grep -i "объявлен\|ads"

Авто-удаление (тест):

# В БД установить expires_at на вчера:
UPDATE ads SET expires_at=datetime('now', '-1 day') WHERE ad_id=1;

# Запустить очистку:
# (на следующее утро в 04:00 или вручную через scheduler)

Преимущества

Было Стало
Объявления в словах Структурированные объявления
Забывают про объявления Авто-удаление через 7 дней
Нет категорий 6 категорий с emoji
Не видно телефон Телефон в объявлении
Нет модерации Модерация для админов

Доска объявлений готова! 📢

Следующий шаг: тестирование на тестовой группе и фиксация версии v1.5