Skip to content

Repository files navigation

Django Stickers Bot

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 и просто отправьте текст, и бот найдет подходящие стикеры из базы данных.

Самостоятельный запуск

(Чуть подробнее появится позже, щас пока так)

  1. cp .env.example .env и заполнить: токен бота, ваш Telegram ID в BOT_ADMIN_USER_IDS, доступы к базе
  2. docker compose up -d --build — поднимутся PostgreSQL и сам бот. База хранится каталогом for_docker/postgres_data на диске (не удалять)
  3. Пустую базу можно наполнить готовым набором стикеров: docker compose exec django_stickers_bot python manage.py loaddata fixtures/stickers.json. Наборы в фикстуре принадлежат пользователю с номером 1, поэтому сначала должен отработать init_admins — он его и создаёт из BOT_ADMIN_USER_IDS.

About

"Django Stickers Bot" — Telegram-бот для удобного поиска стикеров, связанных с курсом веб-разработки на Django от Яндекс.Лицея

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages