Skip to content

cloalenka/CinemaBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloalenka Cinema Bot

Telegram-бот для поиска фильмов/сериалов и выдачи ссылок для просмотра. Работает асинхронно на aiogram v3 + aiohttp, хранит историю и статистику в sqlite.

Тег бота: @cloalenka_cinema_bot


Что умеет бот

Поиск

  • Ищет фильмы/сериалы по тексту из сообщения.
  • Основной источник: TMDb.
  • Fallback: PoiskKino (api.poiskkino.dev) — используется, если TMDb ничего не нашёл или временно недоступен.
  • Если результатов несколько — бот показывает inline-кнопки для выбора нужного тайтла.

Карточка тайтла

Показывает:

  • название
  • год
  • описание
  • рейтинг
  • постер (если есть)

Где посмотреть

Бот показывает кнопки со ссылками:

  1. сначала источники из Watchmode
  2. затем ссылки из PoiskKino

Команды

  • /start — приветствие и краткая инструкция
  • /help — справка по использованию
  • /history — последние запросы пользователя (персонально)
  • /stats — сколько раз бот показывал пользователю каждый тайтл (персонально)

Переменные окружения (.env)

Обязательные:

  • BOT_TOKEN — токен Telegram Bot API

Опциональные (рекомендуется включить все):

  • TMDB_API_KEY — API key TMDb (если не задан, TMDb отключается)
  • TMDB_LANGUAGE — язык TMDb, по умолчанию ru-RU
  • WATCHMODE_API_KEY — ключ Watchmode (если не задан, ссылки Watchmode не показываются)
  • WATCHMODE_REGION — регион Watchmode, по умолчанию US
  • POISKKINO_API_KEY — ключ PoiskKino (если не задан, PoiskKino отключается)
  • POISKKINO_BASE_URL — base URL PoiskKino, по умолчанию https://api.poiskkino.dev
  • DB_PATH — путь к sqlite базе (по умолчанию cinema.sqlite3)

Как запустить локально (без Docker)

  1. Создать и заполнить .env (можно от .env.example)
  2. Установить зависимости:
pip install -r requirements.txt
  1. Запустить бота:
python -m bot.main

Как запустить через Docker Compose

  1. Создать .env в корне проекта
  2. Запуск:
mkdir -p data
docker compose up -d --build
docker compose logs -f

База данных будет храниться в ./data/ (volume), не пропадёт при перезапуске контейнера.

Остановка:

docker compose down

Деплой (Yandex Cloud VM)

Используется VM + Docker Compose, бот работает в режиме polling (без webhook).


Как устроен проект

  • bot/main.py — точка входа: создание Bot/Dispatcher, aiohttp session, подключение sqlite, регистрация роутеров

  • bot/config.py — конфиг из переменных окружения

  • bot/routers/

    • common.py/start, /help
    • search.py — поиск по тексту, показ карточки, выбор из списка, кнопки “где посмотреть”
    • user_data.py/history, /stats
  • bot/services/

    • tmdb.py — поиск/детали в TMDb
    • poiskkino.py — поиск/линки в PoiskKino
    • watchmode.py — источники “где посмотреть” по TMDb id
  • bot/db/repo.py — слой работы с sqlite (история, тайтлы, показы)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors