Django Stickers Bot — это Telegram бот, предназначенный для удобного поиска стикеров, связанных с курсом веб-разработки на Django от Яндекс.Лицея.
Этот бот предоставляет пользователям возможность находить стикеры, основываясь на текстовом содержимом.
- Поиск по тексту: поиск стикеров на основе текста, находящегося на стикере. Также доступен inline режим
- Анализ текста на стикерах: с использованием EasyOCR бот анализирует текст на стикерах и сохраняет его в базе данных (только для админов)
- Гибкий поиск: PostgreSQL с расширениями
pg_trgmиbtree_gin. Совпадение по словоформе ищет полнотекстовый индекс, а опечатки вытягивает триграммное сходство слова — достаточно любого из двух
- Python и Django 5.2 — используется как ORM
- aiogram — асинхронная работа с API Telegram, режим long polling
- PostgreSQL — хранение и полнотекстовый поиск с морфологией, плюс триграммный поиск для запросов с опечатками
- OCR — распознавание текста на стикерах. Запускается отдельным процессом только на время распознавания
Добавьте бота в Telegram и просто отправьте текст, и бот найдет подходящие стикеры из базы данных.
(Чуть подробнее появится позже, щас пока так)
cp .env.example .envи заполнить: токен бота, ваш Telegram ID вBOT_ADMIN_USER_IDS, доступы к базеdocker compose up -d --build— поднимутся PostgreSQL и сам бот. База хранится каталогомfor_docker/postgres_dataна диске (не удалять)- Пустую базу можно наполнить готовым набором стикеров:
docker compose exec django_stickers_bot python manage.py loaddata fixtures/stickers.json. Наборы в фикстуре принадлежат пользователю с номером 1, поэтому сначала должен отработатьinit_admins— он его и создаёт изBOT_ADMIN_USER_IDS.