Блог Рагимова Романа

 

Aspen Player 2.0 и AspenDB 0.1

AspenDB

Как я уже писал, Kinobaza перестала удовлетворять меня в качестве источника информации о фильмах. После долгих и мучительных поисков альтернативы, стало понятно, что в российском сегменте удовлетворяющих моим требованиям ресурсов (с достаточно большой базой, постоянно обновляющихся и имеющих открытый API) в принципе нет, а у иностранцев практически полностью отсутствуют данные о наших местных новинках. Это печально…

Так как хотелось сделать все по уму, я решил запустить собственную небольшую базу фильмов и сериалов, специально для работы с Aspen Player. На данный момент в базе около 70.000 наименований фильмов и более 150.000 эпизодов сериалов. Обновления сериалов происходят раз в два-три дня, фильмов — еженедельно. В процессе добавление описаний серий в самые популярные сериалы (сейчас эти данные доступны, например, для сериала «Игра престолов»).

Открывать API я пока не готов, но если вам очень нужно, не насилуйте базу, вытащив данные доступа из исходников приложения, а лучше напишите мне на почту или в комментариях, попробуем договориться о передаче данных в виде дампа.

AspenPlayer

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

Основной список изменений приведен в changelog, здесь я опишу мелкие улучшения, которые не имеет смысла добавлять в список изменений.

Похожие фильмы и сиквелы Окно похожих фильмов

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

Интерфейс скачивания файлов Окно выбора источника для загрузки

Если вы помните, в оригинальном VOMP загрузка происходила после выбора пункта «Загрузить» в контекстном меню источника. В этом же контекстном меню находился пункт «Ссылка», открывавший окно со ссылками на источник для загрузки с помощью третьей программы. Немного поразмыслив над решаемыми этим меню задачами, я пришел к выводу, что данный способ далеко не интуитивен и, возможно, многие пользователи вообще не знали о подобной функции программы.

Результатом размышлений об оптимизации и популяризации данной функции стало добавление двух кнопок для каждого элемента в списке источников — «Смотреть» и «Скачать». При выборе «Скачать» открывается окно, которое вы видите на скриншоте выше, позволяющее как скопировать ссылку в буфер обмена, так и начать загрузку фильма встроенными средствами Aspen Player.

Кроме этого, теперь появилась возможность выбора качества скачиваемого ролика — максимально доступное или установленное пользователем, как предпочтительное (Настройки > Качество).

Строка состояния Строка состояния Aspen Player

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

Обратная связь прямо из приложения Обратная связь из приложения

Переоценить возможность сообщить об ошибке в приложении без открытия тикета в BitBucket из приложения сложно.

На сегодня все. Надеюсь, приложение вам понравится.

Борьба с обновлением изображений во Flex Item Renderer

Очень надоедали постоянно обновляющиеся обложки альбомов в Spark List. Как выяснилось, лечится этот недуг очень просто, с помощью ContentCache (только для Flex 4.5 и старше).

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx" autoDrawBackground="false">
    <fx:Script>
        <![CDATA[
            import spark.core.ContentCache;

            [Bindable]
            public static var imageCache:ContentCache = new ContentCache();

        ]]>
    </fx:Script>
    <s:BorderContainer 
        left="0" right="0" top="0" bottom="0"
        backgroundAlpha="0" borderVisible="false">
        <s:Image 
            source="{data.image}" contentLoader="{imageCache}" />
    </s:BorderContainer>
</s:ItemRenderer>

Aspen Player и Kinobaza.tv

Я думаю, пришло время подумать об отказе от Kinobaza.tv в качестве источника информации о фильмах, т.к. со своей ролью она совершенно не справляется. Вот, что на данный момент отображается в списке эпизодов Теории Большого взрыва:

Отсутствие информации о сериале на Kinobaza.tv

А между тем, на TVRage, для уже вышедших(!) серий, доступны не только названия, но даже screencaps.

Проблема же заключается в полном отсутствии у Kinobaza конкурентов. Kinopoisk не подходит по причине отсутствия API, IMDB по той же причине + проблемы с русским языком. Да, для сериалов можно использовать API MyShows.ru, благо оно тоже бесплатное и даже, в некотором смысле, проще представленного в прошлом году официального API Kinobaza.tv. Но у MyShows есть одна проблема, которая не позволяет полностью отказаться от Kinobaza в Aspen Player — отсутствие поиска по полнометражным фильмам.

Вот и сижу я, размышляю, как бы решить данную проблему? Ну не свою же базу организовывать, в самом деле.

ActionScript3 Selector Library для Adobe AIR

Набросал некое подобие библиотеки селекторов на AS3 для использования в Adobe AIR. Фактически это означает возможность разбирать HTML документы с помощью запросов к DOM, а не длинными непонятными RegExp.

К примеру, получение всех заголовков Habrahabr выглядит так:

import com.unrarme.utils.Aquery;
private var aq:Aquery;

private function getHeaders(); {
    aq = new Aquery(new URLRequest("http://habrahabr.ru/"));  
    aq.addEventListener(Event.COMPLETE, onHTMLLoadComplete);   
}

private function onHTMLLoadComplete(e:Event):void {
    var headers:Array = aq.select("h2 a.topic");  
    for each (var header:Object in headers) { trace(header.innerText); }  
}

Достаточно просто, как мне кажется.

Библиотека дописывается «по ходу», так что не стесняйтесь писать в Issues Tracker.

Исходники на GitHub (я в курсе качества кода, но предпочитаю не париться до момента, когда низкая производительность станет критичной)

Внезапно VOMP

Совершенно случайно стал коммиттером в данном проекте.

Для тех, кто не в курсе, VOMP это AIR приложение позволяющее искать и просматривать видео с VKontakte не в браузере, а в обычном «плейером» формате.

Выглядит это примерно вот так.

Основной экран проигрывателя VOMP

← Старое