вторник, 29 января 2013 г.

Обмен медиа-информацие в файл-листах

Все привет!
В серой ветке начиная с r502-build build 12742 активирован обмен с fly-server-ом и фреймом просмотра файл-листов, позволяющий видеть характеристики файлов в шарах скачанных с пользователей использующие оригинальны клиенты без поддержки расширенных тэгов mediainfo
Алгоритм работы
При открытии любого файл листа клиент:
1. Просматривает видимый список файлов в ListView справа от дерева
2. Формирует get-JSON запрос на сервер для тех файлов, которых нет у него в шаре.
{
    "array": [
        {
            "size": "367742976",
            "tth": "QPIPCPFWZSZGECKSPNRVNJ44HD3PPJMF7XMS2NQ"
        },
        {
            "size": "367640576",
            "tth": "MHRRU45RGNCNROAEVAYKJEJ4IM52ZQOT6A6DZYA"
        }
    ]
}

3. Получает ответ с сервера и дополняет информационные колонки информацией.
4. Если в видимой части есть файлы находящиеся в шаре и они содержат медиа-информацию
клиент формирует второй set-JSON запрос и предает на сервер медиа-инфу по файлам.
{
   "array" : [
      {
         "media" : {
            "fly_audio" : "43mn 17s | MPEG , 192 Kbps, 2 channels",
            "fly_audio_br" : 192,
            "fly_video" : "MPEG-4 , 1 816 Kbps, 16:9, 23.976 fps",
            "fly_xy" : "720x400"
         },
         "size" : "
367742976",
         "tth" : "
MHRRU45RGNCNROAEVAYKJEJ4IM52ZQOT6A6DZYA"
      }
   ]
}
 

5. Для экономии трафика после выполнения пункта 4 массив переданных TTH сохраняется в локальной кэш-таблице (media_db.fly_send_to_server) и более по данному файлу клиент информацию на сервер не передает.
6. При скролировании списка файлов и ожиданни в течении 2 секунд. операция с шагами 1-5 автоматически повторяется для вновь появившихся файлов.

Шлите замечания.
Кто не активировал серый канал обновления тест-версию можете скачать тут
http://flylinkdc.dyndns.org/install/last-build/test-build-for-blog


Отправить комментарий