Перейти к публикации

Описание Rest Api


mariman

Рекомендованные сообщения

У меня возник такой вопрос, когда берётся ЕПГ на сутки то там получается интервал по времени не с полуночи до полуночи, а другой.. Что-то типа с 22:00 одного дня до 22:00 следующего. Хочу узнать точно, какой временной интервал отдаётся при запросе ЕПГ на день?

 

Или это у меня какой-то прикол с часовым поясом?

Ссылка на комментарий
Поделиться на других сайтах

Добрый день. Что-то у вас неправильно куки работают. По запросу /logout получаем такой вот ответ Set-Cookie:MWARE_SSID=deleted; expires=Mon, 07-Feb-2011 13:50:12 GMT; path=/; domain=iptv.kartina.tv а на /login Set-Cookie:MWARE_SSID=j1nk0j55alag4gpvg4ul5u2g75; path=/

соттветсвенно запрос /logout ни какие куки не удаляет.

Ссылка на комментарий
Поделиться на других сайтах

Привет,

 

Исправьте пожалуйста ошибку в описании ответа вашего сервера на запрос /epg3

чтобы не приходилось полчаса тратить на дебаг "неработаюшей функции" когда у вас тэг пропушен, верный пример ответа сервера:

 

<?xml version="1.0" encoding="UTF-8"?>
<response>
<epg3>
<item>
  <id>2</id>
  <name>Первый</name>
  <epg>
    <item>
      <ut_start>1278944400</ut_start>
      <progname>"ХОЧУ ЗНАТЬ" с Михаилом Ширвиндтом</progname>
      <t_start>17:20</t_start>
    </item>
    <item>
      <ut_start>1278946200</ut_start>
      <progname>"ОБРУЧАЛЬНОЕ КОЛЬЦО" - многосерийный фильм Сериал.</progname>
      <t_start>17:50</t_start>
    </item>
  </epg>
</item>
<item>
  <id>3</id>
  <name>Pоссия</name>
  <epg>
    <item>
      <ut_start>1278942600</ut_start>
      <progname>"ТАЙНЫ СЛЕДСТВИЯ" - детективный сериал. В главной роли Анна Ковальчук</progname>
      <t_start>16:50</t_start>
    </item>
    <item>
      <ut_start>1278948600</ut_start>
      <progname>"КУЛАГИН И ПАРТНЕРЫ"</progname>
      <t_start>18:30</t_start>
    </item>
  </epg>
</item>
<item>
  <id>54</id>
  <name>Discovery</name>
  <epg>
    <item>
      <ut_start>1278943800</ut_start>
      <progname>"СМЕРТЕЛЬНЫЙ УЛОВ: ВРЕМЯ РАСПЛАТЫ"</progname>
      <t_start>17:10</t_start>
    </item>
    <item>
      <ut_start>1278947100</ut_start>
      <progname>"ДЕРЗКИЕ ПРОЕКТЫ: АРИЗОНСКИЕ "КАРДИНАЛЫ"</progname>
      <t_start>18:05</t_start>
    </item>
    <item>
      <ut_start>1278950400</ut_start>
      <progname>"РАЗРУШИТЕЛИ ЛЕГЕНД: СПЕЦВЫПУСК "ДЖЕЙМС БОНД". 1 часть"</progname>
      <t_start>19:00</t_start>
    </item>
  </epg>
</item>
</epg3>
<servertime>1278944765</servertime>
</response>

 

И, раз уж пришлось писать, не могу удержаться от комментария относительно сессий обсуждавшихся в данной теме, поскольку точка зрения представителя администрации сервиса, видимо человека далекого от устройства ЭВМ, сильно позабавила :)

 

- Любой просто юзер сталкивался с тем как долго открываются папки с большим количеством файлов. Даже если это SAS диск, просто прочитать список из тысяч файлов, не говоря о поиске по названию, требует времени. Не говоря о реальных ситуациях с тысячами запросов одновременно. Именно по этой причине умные люди пораскинули мозгами и создали базы данных. Да, их файы тоже лежат на дисках, только немного лучше и быстрее индексируются и читаются специально созданной для этого программой. Поэтому люди не хранят информацию в файлах php и используют не php для ее чтения, a mysql.

 

ПХП создает свои "удобные сессии" для страничек "вэбмагазин васи пупкина, неохота самому с куками париться" в виде текстовых файлов в мусорной папке /tmp сервера на каждого юзера по десять штук (и на каждого анонима, и плюс переавторизацию) и хранит их там неделями (только за пару дней только при паре тысяч ежедневных заходов там скапливается под сотню тысяч файлов сессий, один только гугл способен нагенерить полмиллиона этого г** заходя с разных ip по пять раз в секунду, но это к слову). Nginx, конечно, побыстрее апача со статикой работает, но mysql+индекс быстрее чем пхп+файлы. На собственной практике отключение ламерских сессий в php.ini адекватно высвобождает ресурсы серьезных серверов (с использованием куки без сессий в php)

 

К тому же различные плагины несмотря на куки-авторизацию все равно умудряются совать на сервак пароль при каждом запросе канала. На днях задался целью оживить плагин для WDTV написанный тов. Jo2003 (автором vlc record) Плагин-то заработал, но инфаркт от увиденного в коде я чуть не получил. Если даже закрыть глаза на создание гигантских объектов (для "школьной олимпиады" таk старались?) и массы функций в массе файлов даже для показа 1 картинки (вместо 1 элементарного эхо), на запрос всего списка каналов с сервера на КАЖДЫЙ клик кнопкой (пока выберешь программа-день-передача плагин 3 раза запросит один и тот же xml, и по три раза один и тот же текст в трех различных функциях трижды почешет какими-то странными методами), то жестко присобаченный &protect_code=мойпасс на каждый канал меня добил. Хотя задумка с инфо в виде картинки остроумна, неплохо выглядит (если код подправить и шрифты найти, оно изначально работать не может, хидер не в том месте, видимо не тестилось вообше). Надеюсь, у вас пароль только на закрытых каналах проверяется? :lol:

Изменено пользователем volgot
Ссылка на комментарий
Поделиться на других сайтах

volgot, дык, порвал бы ты всех какой-нибудь грамотно-написаной и очень полезной софтиной, что ли.. да еще и с примерами кода, чтобы все восхищенно исходили слюной..

а то, как говорится, языком молоть - не мешки ворочать.. ;)

Ссылка на комментарий
Поделиться на других сайтах

Привет, Исправьте пожалуйста ошибку в описании ответа вашего сервера на запрос /epg3

 

Весьма признателен за замечание. Нам очень жаль что Вам пришлось "полчаса тратить на дебаг" столь очевидного досадного недоразумения.

 

относительно сессий обсуждавшихся в данной теме ... точка зрения ... сильно позабавила :)

 

Молодой человек, изучите подробнее вопрос работы файловых систем типа ext2/ext3 и их отличие от NTFS, а также работу с сессиями ADODB.Session + memcache, прежде чем затрагивать подобные темы.

 

На днях задался целью оживить плагин для WDTV написанный тов. Jo2003 (автором vlc record) ... инфаркт от увиденного в коде я чуть не получил.

 

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

 

Ссылка на комментарий
Поделиться на других сайтах

Здравствуйте.

Пролопатил всю тему и не нашел ответа на два важных вопроса:

1) Как получить через апи состояние счета абонента?

2) Есть ли возможность узнать глубину архива (на сколько по вермени можно откатится для просмотра) или она стандартная?

 

Заранее спасибо.

Ссылка на комментарий
Поделиться на других сайтах

/settings?var=<http_caching|stream_server|timeshift|timezone|bitrate>

Можно считывать как то сразу все настройки?

Например /settings?var=http_caching&var=stream_server

 

Тот же вопрос и с сохранением

Ссылка на комментарий
Поделиться на других сайтах

что значaт 'vis' и 'pass_protect' в ответе на "/vod_list"?

 

vis = 1 - служебный тег. всегда установлен в "on".

pass_protect = true если фильм закрыт для просмотра. Опция устанавливается самим пользователем по категориям.

 

Установка режима просмотра видеотеки.

 

Новая функция реализована через метод

/vod_manage?cmd=<get_rates|set_user_rates>&protect_code=<родительский пароль>

 

 

при /vod_manage?cmd=get_rates возвращается следующий массив

 

<?xml version="1.0" encoding="UTF-8"?>
<response>
<result>
  <item>
    <id_rate>1</id_rate>
    <rate_name>blood</rate_name>  [кровавые сцены]
    <action>pass</action>
  </item>
  <item>
    <id_rate>2</id_rate>
    <rate_name>violence</rate_name>  [насилие]
    <action>pass</action>
  </item>
  <item>
    <id_rate>3</id_rate>
    <rate_name>obsence</rate_name>  [маты, нецензурщина и пахабщина]
    <action>pass</action>
  </item>
  <item>
    <id_rate>4</id_rate>
    <rate_name>porn</rate_name>  [порно]
    <action>hide</action>
  </item>
</result>
<servertime>1330354248</servertime>
</response>

 

установка настроек

/vod_manage?cmd=set_user_rates&<blood|violence|obsence|porn>=<show|pass|hide>

 

 

на данный момент рассматривается необходимость ввода еще одной категории - horror (ужасы)

 

Готовится и в ближайшее время выйдет нормальный полноценный Developer Guide по API.

 

/settings?var=<http_caching|stream_server|timeshift|timezone|bitrate>

Можно считывать как то сразу все настройки?

Например /settings?var=http_caching&var=stream_server

 

Тот же вопрос и с сохранением

 

можно получить при логине /login?...&settings=all

Ссылка на комментарий
Поделиться на других сайтах

  • 3 weeks спустя...
/settings?var=<http_caching|stream_server|timeshift|timezone|bitrate>

Можно считывать как то сразу все настройки?

Например /settings?var=http_caching&var=stream_server

 

Тот же вопрос и с сохранением

 

можно получить при логине /login?...&settings=all

 

А нельзя доработать апи? Думаю у всех есть задача показать пользователю все установленные настройки, для чего собственно и надо считать их все.

Также с сохранением- куда более удобно сразу передать все настройки или все измененные пункты для сохранения. Со стороны сервера это сделать просто и займет не более 2 часов при разработке. Зато в дальнейшем упростит многим программистам жизнь.

 

Плюсы такого варианта: уменьшение количества запросов на сервер; проще разработка клиентской части для изменения настроек.

 

Заранее спасибо.

 

Ссылка на комментарий
Поделиться на других сайтах

Мне хотелось бы уточнить пару моментов.

1. В описании файла есть поле <size> - размер файла. Это поле установлено в 0. Каким образом я могу получить реальный размер файла? Это нужно для работы seek на некоторых плеерах.

2. Например, программа получает описание всех фильмов и файлов каждые 12 часов. Можно ли один раз в 12 часов получать для всех фильмов урлы для проигрывания? Какое время жизни урл для проигрывания фильма?

3. Есть ли возможность сделать seek по фильму через REST API? Либо при запросе урл установить смещение по файлу?

Изменено пользователем Realman
Ссылка на комментарий
Поделиться на других сайтах

Предложение по доработке апи:

при вызове списка фильмов и видео в ответ добавить флаг favorit, который бы указывал добавлен ли данный элемент в избранное.

 

Заранее спасибо.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks спустя...

Ребята то с юмором работают!

На запрос архива в будущее получил ответ: nexnax

 

запрос:

GET http://iptv.kartina.tv/?m=channels&act...;gmt=1333839000 HTTP/1.1

ответ:

HTTP/1.1 200 OK
Server: nginx
Date: Sat, 07 Apr 2012 22:13:43 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.3.5
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 6

nexnax

Ссылка на комментарий
Поделиться на других сайтах

привет всем!

 

У меня тут проблемка небольшая. на запрос /settings?var=timezone возвращает value=0 и никакого листа возможных значений. У меня в профаqле стоит GMT+2. Есть идеи ?

 

димка

Изменено пользователем dimka
Ссылка на комментарий
Поделиться на других сайтах

А нельзя доработать апи? Думаю у всех есть задача показать пользователю все установленные настройки, для чего собственно и надо считать их все.

Также с сохранением- куда более удобно сразу передать все настройки или все измененные пункты для сохранения. Со стороны сервера это сделать просто и займет не более 2 часов при разработке. Зато в дальнейшем упростит многим программистам жизнь.

 

Плюсы такого варианта: уменьшение количества запросов на сервер; проще разработка клиентской части для изменения настроек.

 

Заранее спасибо.

 

Предложение принято. Будем рассматривать.

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

 

З.Ы. нельзя передавать параметры вида var=http_caching&var=stream_server ... на сервер придет только последний переданный var.

Ссылка на комментарий
Поделиться на других сайтах

nexnax

Сей запрос не является запросом к API, поэтому вот такой вот ответ ;)

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

 

привет всем!

 

У меня тут проблемка небольшая. на запрос /settings?var=timezone возвращает value=0 и никакого листа возможных значений. У меня в профаqле стоит GMT+2. Есть идеи ?

 

димка

 

 

Разбираемся.

 

Предложение по доработке апи:

при вызове списка фильмов и видео в ответ добавить флаг favorit, который бы указывал добавлен ли данный элемент в избранное.

 

Заранее спасибо.

 

 

Пожелание принято.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks спустя...
Сей запрос не является запросом к API, поэтому вот такой вот ответ ;)

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

 

сей запрос был сфабрикован картиновским вебплэйером

 

Ссылка на комментарий
Поделиться на других сайтах

  • 2 weeks спустя...
Также предлагаю доработать апи и устанавливать поле <size> в актуальный размер видео файла, а не в 0.

@mariman

Так почему нельзя это сделать?

Ссылка на комментарий
Поделиться на других сайтах

  • 3 weeks спустя...

Замечания и пожелания:

 

У некоторыь переменных в API можно было бы скорректировать имена:

 

<need_bandwidth>[рекомендуемый битрейт канала]<need_bandwidth>
     required bandwidth / needed bandwidth

в данном случае слово "need" подразумевает тип bool.

-------------------------

<have_archive>[флаг имеет ли канал архив 0/1]</have_archive>
     has_archive
     
канал - единственное число, третье лицо

-------------------------
     
E_TOO_ENOUGH_DATA 
         
TOO_ENOUGH совсем не по-английски: NOT_ENOUGH_DATA или MISSING_LOGIN_INFO к примеру намного лучше.

-------------------------
все NEED на MISSING (нужен на отсутствие)

define('E_NEED_XXX    >>>    E_MISSING_XXX
     
-------------------------

define('M_FAVORITE_SETS', 2);    >>>    'M_FAVORITE_SET'

 

Есть еще одно пожелание - тэг <item> и <message>. Желательно вообще от <item> избавиться, чтоб не было несколько тэгов с одинаковым именем означающих разные элементы, к примеру у "group" и "channel" в одном и том же респонде есть "item". Если бы такого не было, то не надо было бы вручную парсить xml, а создать схему и по ней создавать объекты.

 

К примеру, поменять вот так:

       from:
       <groups>
           <item>
       to:
       <groups>
           <group>
       --------------------------
       from:
       <channels>
           <item>
       to:    
       <channels>
           <channel>
       --------------------------
       from:
       <stream_params>
           <item>
       to:    
       <stream_params>
           <stream_param>
       --------------------------
       from:
       <epg>
           <item>
       to:    
       <epg>
           <epg_program>
       ---------------------------
       from:
       <favorites>
           <item>
       to:    
       <favorites>
           <favorite>
       ---------------------------
       from:
       <settings>
       <name>timeshift</name>
       <value>3</value>
       <list>
           <item>
           
       to:
       ...
       <list>
           <setting>
       ---------------------------
       from:
       <rows>
           <item>
       
       to:
       <rows>
           <row>
       ---------------------------
       from:
       <videos>
           <item>
       
       to:
       <videos>
           <video>
       ---------------------------
       from:
       <genres>
           <item>
       
       to:    
       <genres>
           <genre>

 

<message> используется в <response> и <error>

 

<response>
    <message>M_LOGOUT_OK</message>

<response>
    <error>
        <message>An error message</message>

переименовать <error><message> 
в <error><text> или в <error><error_message>

Изменено пользователем tridy
Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...