BoxAdPlayer 1.2 Help

Структура проекта

Проект состоит из нескольких ключевых компонентов, каждый из которых отвечает за определённую задачу в системе. Все классы и файлы в проекте организованы для удобства работы и масштабируемости.

Классы и файлы

Файл config.ts

Конфигурационный файл, который содержит переменные и константы, используемые в проекте.

  • CURRENCY_DIR: Директория для хранения изображений валют.

  • CURRENCY_URL: URL-адрес для скачивания изображений валют.

  • MASTER_SYNC_INTERVAL: Интервал для синхронизации плейлиста (в миллисекундах).

  • LOG: Логер для вывода информации, ошибок и отладочных сообщений.

  • STORAGE: Директория для хранения скачанных данных.

  • Класс Log для логирования

  • Функция system для вызова команд из CLI

MediaFile

Класс для представления медиафайла с его MD5 хешем и размером.

Item

Класс, представляющий элемент (Item), который является медиафайлом с дополнительной информацией. Он включает URL для скачивания, продолжительность, и методы для скачивания и управления файлами. Наследуется от класса MediaFile.

Основные методы:

  • download(): Скачивание видео по URL. Проверяет, достаточно ли места на диске для скачивания и загружен ли файл.

  • maxSize(): Вычисление максимального размера файла, который можно скачать, основываясь на свободном месте на диске.

Playlist

Класс для представления плейлиста, который содержит медиафайлы. Позволяет читать, генерировать и конвертировать плейлист в формат m3u.

Основные методы:

  • read(): Читает данные из файла плейлиста.

  • needsNoInterruption(): Проверяет, нужно ли прерывать воспроизведение плейлиста.

  • generate(): Генерирует новый плейлист на основе данных.

Manager

Класс для управления плейлистом и воспроизведением медиа.

Основные методы:

  • start(): Запускает воспроизведение плейлиста. Записывает M3U плейлист в файл, чтобы плеер мог его подхватить.

  • stop(): Останавливает воспроизведение. Удаляет плейлист, чтобы остановить плеер.

  • playFile(): Воспроизводит файл. Если файл не существует, выбрасывает исключение.

Master

Класс, представляющий Мастер-файл - основной объект, который содержит плейлист и метаданные для файлов. Плейлист может быть загружен как локально, так и удаленно, а также синхронизирован с дисковым хранилищем.

Основные методы:

  • current(): Возвращает текущий мастер-объект (удалённый или локальный).

  • sync(): Синхронизирует локальные данные с мастер-файлом.

  • save(): Сохраняет локальные изменения в мастер-файл.

  • getPlaylistDuration(): Возвращает общую длительность плейлиста.

Player

Класс плеера, который управляет воспроизведением видео и взаимодействием с пользователем.

Основные методы:

  • call(): Запускает плеер и начинает воспроизведение видео.

PlaylistGenerator

Класс для генерации нового плейлиста. Синхронизирует мастер-файл, генерирует новый плейлист, и запускает проигрыватель.

Основные методы:

  • run(): Основной метод для запуска генерации плейлиста. Сначала синхронизирует мастер-файл, затем генерирует новый плейлист и запускает проигрыватель с новым плейлистом.

Currency

Класс для загрузки изображений валют (USD, EUR, BTC). Проверяет наличие директории для хранения изображений, скачивает изображения валют по URL и сохраняет их в нужную папку.

Основные методы:

  • download(): Скачивает изображения валют (USD, EUR, BTC).

  • downloadCurrency(type: string): Скачивает изображение валюты по типу (USD, EUR, BTC).

CurrencyShow

Класс для отображения валютных изображений на экране. Проверяет наличие изображений валют и выводит их на экран с определенной периодичностью.

Основные методы:

  • show(): Отображает валютные изображения (USD, EUR, BTC) в цикле на экране.

  • execWithTimeout(): Запускает команду с таймаутом для отображения изображения.

12 April 2025