Приложение для поиска фильмов
Приложение для поиска фильмов
Консольная утилита для поиска и экспорта данных о фильмах из базы TMDb.
Репозиторий GitHub: https://github.com/fedyaqq34356/Movie-Search-App
Приложение для поиска фильмов — инструмент командной строки для работы с базой данных The Movie Database (TMDb). Приложение позволяет искать фильмы по жанрам, получать детальную информацию и экспортировать данные в текстовые файлы. Проект демонстрирует навыки работы с REST API, модульной архитектурой, обработкой данных и логированием.
Основные возможности:
поиск по жанрам, пагинация (1 страница = 20 фильмов), экспорт данных (названия, описания, рейтинги, провайдеры), поддержка регионов, логирование операций, обработка ошибок.
Используемые технологии:
Python 3.7+, библиотеки requests, python-dotenv, logging. API TMDb v3, Bearer token. Принципы разработки: модульность, читаемость, DRY.
Структура проекта:
Movie-Search-App/
├── main.py # Точка входа и координация рабочего процесса
├── api.py # Запросы и ответы API TMDb
├── config.py # Конфигурация и переменные окружения
├── display.py # Пользовательский интерфейс и обработка ввода
├── export.py # Операции записи в файл
├── logger.py # Конфигурация логирования
├── .env # Учетные данные API (не отслеживаются)
├── requirements.txt # Зависимости Python
└── README.md # Документация
Ключевые решения:
хранение токенов в .env, задержки между запросами (0.5 сек), сбор всех типов провайдеров (подписка, бесплатные, с рекламой, аренда, покупка), многоуровневое логирование (DEBUG, INFO, WARNING, ERROR), обработка ошибок с помощью try-except и повторными попытками.
Примеры использования:
выбор жанра, ввод количества страниц, экспорт данных в файлы (названия, описания, рейтинги, провайдеры). Можно изменять регион и язык в конфиге для корректного отображения провайдеров.
Производительность:
1 страница (20 фильмов) ~1 секунда, 10 страниц ~10 секунд, 50 страниц ~50 секунд. Надежность и масштабируемость обеспечены, поддержка до 500 страниц, эффективная память, минимальная нагрузка на API.
Возможные улучшения:
краткосрочные — экспорт в JSON, аргументы CLI, поддержка сериалов, кэширование жанров; долгосрочные — GUI, база данных SQLite, параллельные запросы, обертка для REST API, юнит и интеграционные тесты.
Установка:
git clone https://github.com/fedyaqq34356/Movie-Search-App.git
cd Movie-Search-App
pip install -r requirements.txt
Ссылки:
GitHub https://github.com/fedyaqq34356/Movie-Search-App
Лицензия:
GNU General Public License v3.0. Проект свободный, можно использовать, модифицировать и распространять согласно условиям GPL v3.
Консольная утилита для поиска и экспорта данных о фильмах из базы TMDb.
Репозиторий GitHub: https://github.com/fedyaqq34356/Movie-Search-App
Приложение для поиска фильмов — инструмент командной строки для работы с базой данных The Movie Database (TMDb). Приложение позволяет искать фильмы по жанрам, получать детальную информацию и экспортировать данные в текстовые файлы. Проект демонстрирует навыки работы с REST API, модульной архитектурой, обработкой данных и логированием.
Основные возможности:
поиск по жанрам, пагинация (1 страница = 20 фильмов), экспорт данных (названия, описания, рейтинги, провайдеры), поддержка регионов, логирование операций, обработка ошибок.
Используемые технологии:
Python 3.7+, библиотеки requests, python-dotenv, logging. API TMDb v3, Bearer token. Принципы разработки: модульность, читаемость, DRY.
Структура проекта:
Movie-Search-App/
├── main.py # Точка входа и координация рабочего процесса
├── api.py # Запросы и ответы API TMDb
├── config.py # Конфигурация и переменные окружения
├── display.py # Пользовательский интерфейс и обработка ввода
├── export.py # Операции записи в файл
├── logger.py # Конфигурация логирования
├── .env # Учетные данные API (не отслеживаются)
├── requirements.txt # Зависимости Python
└── README.md # Документация
Ключевые решения:
хранение токенов в .env, задержки между запросами (0.5 сек), сбор всех типов провайдеров (подписка, бесплатные, с рекламой, аренда, покупка), многоуровневое логирование (DEBUG, INFO, WARNING, ERROR), обработка ошибок с помощью try-except и повторными попытками.
Примеры использования:
выбор жанра, ввод количества страниц, экспорт данных в файлы (названия, описания, рейтинги, провайдеры). Можно изменять регион и язык в конфиге для корректного отображения провайдеров.
Производительность:
1 страница (20 фильмов) ~1 секунда, 10 страниц ~10 секунд, 50 страниц ~50 секунд. Надежность и масштабируемость обеспечены, поддержка до 500 страниц, эффективная память, минимальная нагрузка на API.
Возможные улучшения:
краткосрочные — экспорт в JSON, аргументы CLI, поддержка сериалов, кэширование жанров; долгосрочные — GUI, база данных SQLite, параллельные запросы, обертка для REST API, юнит и интеграционные тесты.
Установка:
git clone https://github.com/fedyaqq34356/Movie-Search-App.git
cd Movie-Search-App
pip install -r requirements.txt
Ссылки:
GitHub https://github.com/fedyaqq34356/Movie-Search-App
Лицензия:
GNU General Public License v3.0. Проект свободный, можно использовать, модифицировать и распространять согласно условиям GPL v3.