Разработка приложения каталогизатора видеофильмов «My movies collection»

NovaInfo 41, с.8-15, скачать PDF
Опубликовано
Раздел: Физико-математические науки
Просмотров за месяц: 2
CC BY-NC

Аннотация

В настоящее время существуют большие библиотеки видеофильмов и сериалов (художественные, мультипликационные и т.д.). Однако, пользователям, кроме названия, отзыва и других характеристик фильма, хочется узнать его аннотацию, это представляет наибольший интерес как при выборе фильма для просмотра, так и после просмотра.

Ключевые слова

БИБЛИОТЕКА, СЕРИАЛЫ, ВИДЕОФИЛЬМЫ

Текст научной работы

Постановка задачи

В настоящее время существуют большие библиотеки видеофильмов и сериалов (художественные, мультипликационные и т.д.). Однако, пользователям, кроме названия, отзыва и других характеристик фильма, хочется узнать его аннотацию, это представляет наибольший интерес как при выборе фильма для просмотра, так и после просмотра.

В сети Интернет существуют множество аннотированных библиотек фильмов. Для их использования необходимо постоянное подключение к сети Интернет, однако у пользователя нет возможности редактировать информацию о фильмах, добавлять свои комментарии и метки, что является существенным недостатком.

Анализируя сказанное, сформулируем задачу: разработать приложение, управляющее объектами базы данных не зависящее от системного программного обеспечения на примере базы данных фильмов и сериалов.

В ходе работы были использованы следующие программные средства: язык программирования C++ (стандарт 98/03), библиотеки Qt версии 4.8.1, Jvascript, HTML и CSS.

Архитектура приложения

Основные требования, которые предъявлялись к «My Movies Collection»:

  1. Кроссплатформенность;
  2. Возможность запуска без установки на компьютер;
  3. Пользовательские шаблоны;
  4. Система плагинов.

Ниже представлен список модулей Qt, которые использует «My Movies Collection». Все они располагаются рядом с исполняемым файлом приложения.

  1. Модуль QtCore (базовые функции Qt);
  2. Модуль QtGui (графический интерфейс пользователя);
  3. Модуль QtNetwork (функции для работы с сетью);
  4. Модуль QtSql (функции для работы с базами данных);
  5. Модуль QtWebKit (функции для работы с браузерным движком WebKit).

Первым этапом разработки приложения был этап проектирования и реализации графического интерфейса главного окна (рис. 1).

Главное окно приложения
Рисунок 1. Главное окно приложения

На данном этапе было реализовано меню с поддержкой клавиатурных сокращений, панели инструментов, которые можно перемещать и закреплять как угодно.

Были реализованы следующие виджеты:

  • виджет списка с названиями фильмов, а также контекстное меню к нему, в котором содержатся основные действия, выполняемые над фильмом;
  • виджет дерева, который группирует названия фильмов по выбранному параметру. Этот виджет также имеет контекстное меню, как и виджет списка фильмов;
  • виджет области информации о фильме. Он представляет собой браузер, основанный на движке WebKit. Имеет свое контекстное меню для доступа к часто используемым функциям. Он позволяет отображать произвольный html-код, так что пользователь может писать свои шаблоны для отображения.

Также была реализована статусная строка, которая отображает информацию о типе сортировки, об общем количестве фильмов в базе и о количестве отображаемых в списке на текущий момент фильмов.

База данных

Следующим этапом является создание базы данных. База данных состоит из шести таблиц: movies, genres, images, filters, labels и seasons.

Главной таблицей базы данных является таблица movies. В ней содержится вся основная информация о фильме или сериале. В базе не может содержаться два фильма с одинаковым названием, это проверяется на этапе ввода информации пользователем через графический интерфейс и на этапе выполнения SQL-запроса на добавление информации в базу.

Таблица genres хранит информацию о жанрах для каждого фильма из таблицы movies. Она связана с таблицей movies внешним ключом movie_id. В базу нельзя добавлять свои жанры, она работает с 22 жанрами. Если поле жанра, например comedy, хранит значение true, то название этого жанра отобразится в области информации о фильме.

Таблица images хранит скриншоты для каждого фильма из таблицы movies. Она связана с таблицей movies внешним ключом movie_id. Данные в images хранятся в бинарном виде. Конкретнее, это изображения в формате PNG, представленные в виде массива байт.

Таблица filters хранит пользовательские фильтры (поисковые запросы). Она не связана с другими таблицами. Ее задача заключается только в сборе и хранении поисковых запросов. Поле filter_name хранит название фильтра, чтобы пользователь мог его использовать в приложении. Поле filter_string хранит сам поисковой запрос.

Таблица labels хранит все метки, добавленные пользователем. Она не связана с другими таблицами. Ее задача совпадает с задачей таблицы filters, только контентом являются пользовательские метки.

Таблица seasons хранит информацию о сезонах и сериях для всех сериалов из таблицы movies. Она связана с таблицей movies внешним ключом movie_id. Хранит номер сезона первым полем и информацию о сериях вторым.

Карта фильма и интернет-поиск

На данном этапе сначала реализовывалось окно «Карта фильма» (рис. 2). В дополнение к нему было реализовано окно выбора жанров (рис. 3) и окна выбора (рис. 4) и управления метками (рис. 5).

Окно «Карта фильма»
Рисунок 2. Окно «Карта фильма»

В окне выбора жанров пользователь проставляет галочки на нужных ему жанрах и нажимает «Применить». После этого в окно «Карта фильма» передается список с выбранными жанрами. Из него формируется строка жанров.

Окно выбора жанров
Рисунок 3. Окно выбора жанров

В окне выбора меток пользователь выбирает нужные ему метки и нажимает «Применить». После этого в окно «Карта фильма» передается список с выбранными метками.

Окно выбора меток
Рисунок 4. Окно выбора меток

Кроме выбора, есть возможность и управления метками. После открытия окна управления метками, создается список с уже существующими метками. При добавлении или удалении метки удаляется элемент из этого списка, а не метка из базы. После нажатия на кнопку «Применить», к базе данных делается запрос на удаление всех меток, и последующее добавление содержимого этого списка.

Окно управления метками
Рисунок 5. Окно управления метками

Интернет-поиск является самой интересной функцией, так как дает возможность максимально быстро получать информацию из сети Интернет.

Окно интернет поиска изначально проектировалось как многостраничное с использованием менеджера компоновки QStackLayout, т.е. в пределах одного окна существует несколько представлений (view).

Наибольший интерес с точки зрения разработки вызывает написание собственных плагинов для поиска информации в сети интернет.

Возможности приложения

Разработанное приложение «My Movies Collection» позволяет:

  • Создавать, открывать, сжимать базу;
  • Добавлять, редактировать и удалять фильмы;
  • Экспортировать информацию о фильмах и сериалах в файл;
  • Импортировать информацию о фильмах и сериалах из файла;
  • Управлять собственными метками и искать фильмы по ним.
  • Осуществлять быстрый поиск по названию, либо расширенный поиск с возможностью учета до 15 параметров;
  • Показывать случайный фильм;
  • Осуществлять поиск в поисковой системе Google и на wikipedia.org;
  • Сортировать фильмы по названию, оригинальному названию, рейтингу, дате добавления и в порядке добавления (без сортировки);
  • Группировать фильмы по первой букве названия, году, жанру, стране, режиссеру, актеру и метке.
  • Осуществлять быстрый показ новых фильмов (за сегодня, за последние 7, 15, 30 дней);
  • Осуществлять быстрый показ фильмов по поисковому запросу (персональному фильтру), который был сохранен ранее.
  • Получать информацию о фильме из сети Интернет с помощью плагинов;
  • Подключать собственные плагины для поиска информации.
  • Производить смену языка (английский и русский);
  • Запускать приложение на операционных системах Windows, Linux и MacOS.
  • Просматривать постеры и скриншоты по клику на изображение;
  • Быстро менять и сбрасывать рейтинг по клику;
  • Открывать веб-страницу фильма в браузере;
  • Быстро изменять состояние просмотра серии или всего сезона сразу;
  • Быстро добавлять, удалять, сохранять на диске постеры и скриншоты;
  • Подключать собственные шаблоны для отображения данных.

Сравнительный анализ

На сегодняшний день в сети Интернет существуют день два самых популярных каталогизатора «AllMyMovies» и «ArchiVid». Однако и эти приложения не лишены недостатков. Одним из главных недостатков является то, что для использования таких библиотек необходимо постоянное подключение к сети Интернет, так как большинство из них представлено в виде веб-сайтов. Следовательно, пользователь изначально лишен возможности автономной работы с этими библиотеками фильмов. К другим недостаткам таких библиотек можно отнести то, что у пользователя нет возможности редактировать информацию о фильмах, управлять своими комментариями, метками, сохранять для последующего использования поисковые запросы и многое другое.

Базовый функционал всех каталогизаторов совпадает (добавление, удаление, редактирование, поиск, сортировка, группировка и др.), поэтому далее будут рассмотрены три веские причины, почему «My Movies Collection» лучше уже существующих.

Во-первых, «My Movies Collection» — кроссплатформенное приложение (Windows, Linux, MacOS), в то время как «AllMyMovies» и «ArchiVid» существуют только для Windows. В настоящее время для Linux нет каталогизаторов, сравнимых по возможностям с рассматриваемыми.

Во-вторых, «My Movies Collection» использует стандартное оформление операционной системы в отличие от «AllMyMovies». Причем, даже если таковое потребуется, в «My Movies Collection» легко добавить поддержку этой возможности. При этом пользователь будет волен сам его создавать. «My Movies Collection» имеет легкий и интуитивный интерфейс в отличие от «ArchiVid». Дополнительные возможности настройки добавлены в те части приложения, в которых на самом деле требуется гибкость и масштабируемость в процессе работы с приложением.

В-третьих, процесс получения информации и изображений для фильма можно полностью контролировать в отличии от «AllMyMovies». Он состоит из трех этапов получения описания, постера и скриншотов. Любой из этапов можно пропустить, либо вернуться на предыдущий этап. Также имеется возможность загрузки отдельно выбранных полей информации о фильме, например, только рейтинга и оригинального названия.

Подводя итог, можно сказать, что каталогизатор «My Movies Collection» собрал все лучшие решения и исключил худшие.

На основе «My Movies Collection» можно реализовать каталогизатор для других типов данных, например для музыки, книг, журналов или программного обеспечения.

Читайте также

Список литературы

  1. Кнут Д.Э. Искусство программирования. Т.1. Основные алгоритмы. – М.:Вильямс, 2010г.
  2. Кнут Д.Э. Искусство программирования. Т.3. Сортировка и поиск. – М.:Вильямс, 2012г.
  3. Шлее М. Qt 4.8. Профессиональное программирование на C++. – М.:БХВ-Петербург, 2012г.

Цитировать

Хасанова, С.Л. Разработка приложения каталогизатора видеофильмов «My movies collection» / С.Л. Хасанова. — Текст : электронный // NovaInfo, 2016. — № 41. — С. 8-15. — URL: https://novainfo.ru/article/4628 (дата обращения: 27.06.2022).

Поделиться